Bulk Merchant Migration
Moving merchants between platform configurations was manual and one at a time. I wrote the spec, designed a batch backend with validation gates and audit trails, and built the frontend. Shipped end to end.
Senior backend engineer at Razorpay. I take ambiguous, cross-cutting problems from spec to production, raise the bar for the engineers around me, and ship products on weekends that people actually pay for.

per month in revenue leakage prevented at Rakuten
quarterly GMV from a feature I owned end to end
mean time to resolve, after unified observability
Newsio downloads in week one, 4.8-star rating
Payments infrastructure, internal AI tooling, and features owned from PRD to production.
Led a telecom revenue-assurance platform across a 12-service Go and Java ecosystem.
Backend systems for enterprise web platforms in Java.
Co-founded an AI short-news app during the pandemic and led a team of 7.
Moving merchants between platform configurations was manual and one at a time. I wrote the spec, designed a batch backend with validation gates and audit trails, and built the frontend. Shipped end to end.
Incident triage burned senior hours on the same loop: pull logs, check dashboards, find the runbook, guess. I built agents wired into observability that query logs and metrics, walk runbooks, and draft root-cause analyses.
Razorpay had no public way to discover its integration partners. I built the directory: search, filters, rich partner profiles, and the onboarding workflow behind it. Live on the internet.
Visit the directoryAt telecom volume a fraction of a percent of mismatched billing events is real money. I led a 12-service Go and Java platform with a Kafka pipeline that cross-checks every charge before it leaks.
Fragmented logs and metrics across twelve services made every incident a scavenger hunt. I unified tracing, metrics, and structured logging with OpenTelemetry and Prometheus so the first alert already tells you where to look.
AI-generated news summaries in regional languages, built with a team of seven students during lockdown. Shipped in three months to real users who kept coming back.
No meetings, no tickets, no roadmap. Just a problem I ran into during the week, a blank repo on Saturday morning, and something real people can use by Sunday night.
Coffee, then a blank repo. Pick the one annoying problem from the week worth fixing for everyone.
Ship the ugliest version that works. Deploy to a real domain before lunch so there is no backing out.
A LeetCode problem or two to keep the fundamentals sharp. 250+ and counting.
Read what the AI labs released this week and write it up for AI Brief.
Polish, SEO, and the boring parts users actually feel. Then switch one of my six languages on and go outside.
Ship useful work, understand the system around it, and leave enough signal for the next person to run it safely.
There is no perfect solution, only the right one for the constraints in front of you. Write down the why so the next person inherits context, not just code.
Treat every system as if you will be woken up for it at 3 AM. That changes how you handle observability, errors, runbooks, and documentation.
Sustainable velocity beats bursts followed by firefighting. Feature flags, gradual rollouts, real tests, automated rollbacks.
Components are easy. The complexity lives in the interactions, bottlenecks, and failure cascades between them.