- PR Lead — IETE Students' Chapter, SIES GST
- Open to Business Analyst · Product · Business Intelligence · Technology Consulting roles
- Learning where automation stops being a novelty and starts being a process decision
- Contributing documentation fixes to Grafana, Superset, Airflow, Metabase and dbt — see below
💛 TwoEnds · open it → · Android APK →
"Who is actually enforcing the rule?"
A free app for two people — every question pack, widget and game that comparable apps put behind a subscription, permanently free. In daily use by real couples, which is where most of the interesting bugs came from.
The core mechanic is you cannot see their answer until you've written your own. A client that receives both answers and declines to render one has implemented a delay — and anyone with dev tools can skip a delay. So the rule lives in a Postgres row-level-security policy instead, with a security definer function to break the recursion a policy querying its own table causes.
Location sharing follows the same principle: off by default, per person, coarsened to a grid by a database trigger, and withdrawing consent re-coarsens the partner's stored row without them opening the app. The widget is handed two finished strings, never a number it could turn back into a position.
Home-screen widgets are the core feature rather than a bonus — a version of this without them is a chat app with extra steps.
TypeScript React Supabase Postgres RLS Capacitor Jetpack Glance PWA
Each framed by the question it started from rather than the stack it ended up with.
🎮 LifeRPG"What happens when you refuse to add a server?" An offline-first habit tracker for Android and web. No account, no sync, no backend — and each of those is a decision with consequences documented in the repo, not an omission. Ships with
|
🛡️ PhishGuard"How do you hand someone an answer, not 22 numbers?" A URL risk-scoring platform. The modelling was the easy half; the real problem was turning a continuous probability into a decision a non-technical person can act on. Resolved with a 4-tier classification — Safe / Low / Medium / Critical — mapped to thresholds, plus evidence shown only above the high-risk line.
|
"Why do verification workflows stall?" A case-management system for reporting and tracking missing persons. Mapped the lifecycle from public submission through admin verification to status updates, then built the approval gate at the point where cases were actually going stale. Role-based access separates submission, community input, and approval.
|
Documentation and correctness fixes in tools I use, in repos where a wrong claim gets caught by someone who wrote the code.
The method is the same every time: read the source before writing a word, and say so plainly when the issue as filed is wrong.
| Project | Contribution | ||
|---|---|---|---|
| ✅ | Apache Superset | 74k ★ | #43109 — documented an undocumented zstd prerequisite that stops the dev server at startup. Corrected two claims in the issue after reading the dependency's source. |
| 🔄 | Grafana | 76k ★ | #131333 — a deprecation notice promising an archive date three months past, on a repo still shipping commits. Declined to invent a replacement date. |
| 🔄 | Metabase | 49k ★ | #80578 — documented background task statuses, including that a run is only "success" when every task succeeded, and that two statuses carry no stack trace to read. |
| 🔄 | Apache Airflow | 47k ★ | #71984 — db downgrade reverts schema but not row content, because the compatibility shim only runs forward. Narrowed the issue's claim rather than repeating it. |
| ✅ | dbt docs | #9757 merged, five more open — including a backfill diagram that was arithmetically impossible, and a flag whose paths resolve somewhere the docs never mentioned. |
Two of these corrected the issue that prompted them. One I closed myself when a maintainer's PR landed the same fix first, with a note on why their version was better than mine.
|
Before the code I write the problem down before the solution — who owns the decision, what "done" means, and what we're explicitly not building. Every project here ships with a |
Verify, then claim I read the source before describing behaviour. Four of my open-source contributions corrected the issue that prompted them — including one where I proved a documented diagram was arithmetically impossible, not just unclear. |
|
Enforce it where it can't be skipped If a rule matters, it belongs somewhere the client can't bypass. In TwoEnds that meant moving the reveal into a Postgres policy — a UI that hides an answer it already received has built a delay, not a rule. |
Say what's still unknown I flag the parts I couldn't confirm rather than rounding them up. In a Grafana PR I removed a stale date and told the maintainers I wasn't going to invent the replacement, because I had no way to know it. |
Analysis & BI
Build
Platform & process
| AWS Academy Graduate — Cloud Foundations | Amazon Web Services · Sep 2025 |
| Automate with n8n | Somaiya Machine Learning Research Association · Jan 2026 |
| API Fundamentals Student Expert | Postman · Feb 2024 |
| Web & Application Security Workshop | IETE Students' Forum · Sep 2024 |
Recognition — Top 20 Performer, Google Gen AI Study Jams · Winner, TECHlekh Technical Writing Competition · 3rd Prize, Cognition Project Presentation
Most of what I care about isn't in the commit history — it's in the PRODUCT.md files.
