Open to Java / Spring Boot backend roles — Pune
Twelve years across Google Play Protect, JP Morgan Chase and Walmart platforms — places where a design mistake isn't a bug ticket, it's a security incident or a payment that went out twice.
That shapes how I build services. Transaction boundaries reasoned about rather than annotated out of habit. Idempotency assumed, not bolted on after the first duplicate charge. The degraded path designed before the happy path is finished. Most production incidents I've watched weren't clever failures — they were the ordinary case nobody drew on the whiteboard.
My current focus is backend: designing and deploying Spring Boot microservices into production. Behind that sits a decade of Android at platform scale, which is where I learned lifecycle, state and layering the hard way.
50+ apps shipped to the Play Store. Team lead on Foot Locker and Torrid. Platform security work at Google Play Protect.
I build with coding agents daily and I've shipped agent tooling into a team's workflow — automated PR review agents at JP Morgan Chase. The interesting part isn't the generation; it's knowing which output to throw away.
Employed by Cognizant, SwiftWIN and Capgemini; the household names below are the clients I delivered for.
| Employer | Client / Programme | Role |
|---|---|---|
| 🟠 Cognizant | Walmart — global retail platform | Senior Software Developer · backend services |
| 🟠 Cognizant | JP Morgan Chase | Senior Developer · enterprise banking under regulatory and audit constraints |
| 🟠 Cognizant | Google — Play Protect | Infra Technology Specialist / Team Lead · security infrastructure at Android-platform scale |
| 🔷 SwiftWIN | Foot Locker, Torrid | Android Team Lead |
| 🔷 Capgemini | — | Senior Consultant |
Recruiter note: the through-line is high-scale, heavily-governed systems — banking, platform security, global retail. Same problem shape as most enterprise backend work.
1. Define the failure mode first → What does "wrong" cost? That sets the whole design.
2. Correctness at the boundary → Validate at the edge; never let bad input reach the database.
3. One error contract → Every failure the same shape. RFC 7807, not ad-hoc JSON.
4. Migrations own the schema → Flyway writes it, Hibernate only validates it.
5. Design for the retry → Idempotency keys and unique constraints, not hope.
6. Test against the real thing → Testcontainers over mocks wherever the database has an opinion.
Order management microservice — Spring Boot 3 · Java 21 · PostgreSQL
- Idempotent writes —
Idempotency-Keyenforced by a unique constraint, with race recovery in a separateREQUIRES_NEWtransaction so a constraint violation can't poison the recovery read - Domain-owned lifecycle — legal status transitions live in the entity, so no service can move an order backwards
- One error contract — RFC 7807 problem documents everywhere, trace ids on the unexpected ones
- Flyway migrations ·
ddl-auto: validate· optimistic locking ·open-in-view: falsewith@EntityGraph - JUnit 5 + Mockito units, plus an integration suite against a live PostgreSQL container
- Multi-stage Docker · Compose · GitHub Actions CI
Retrieval-augmented assistant over internal documentation — FastAPI · pgvector · Docker · CI/CD
- Retrieval pipeline over a pgvector store, containerised and deployed through CI
- Answer quality measured with a Ragas evaluation harness rather than eyeballed
- Built to a rule I'd keep: if you can't measure whether retrieval got better, you're guessing
Notes app in Jetpack Compose + Clean Architecture — Room, Coroutines, Navigation, MVVM
Structured Android curriculum I wrote and taught to engineering batches
- ☕ Building out the backend portfolio — an event-driven service with Kafka, then a microservices setup with gateway and service discovery
- ☁️ AWS for Java workloads — ECS, RDS, SQS, and the observability to run them
- 📖 Distributed-systems fundamentals: consistency, retries, the outbox pattern
- ✍️ FutureProof Engineer — writing and video on engineering careers; author of FutureProof Android
✅ Java / Spring Boot backend engineering — Pune
✅ Microservices and distributed systems
✅ Regulated or high-scale domains: banking, retail, platform



