Skip to content
View Ravinnpawar's full-sized avatar

Block or report Ravinnpawar

Block user

Prevent this user from interacting with your repositories and sending you notifications. Learn more about blocking users.

You must be logged in to block users.

Content in all repositories owned by your account will be closed.
Maximum 250 characters. Please don’t include any personal information such as legal names or email addresses. Markdown is supported. This note will only be visible to you.
Report abuse

Contact GitHub support about this user’s behavior. Learn more about reporting abuse.

Report abuse
ravinnpawar/README.md

🧠 12+ Years Building Production Systems Where Correctness Is the Requirement

LinkedIn Gmail GitHub

Open to Java / Spring Boot backend roles — Pune


👨‍💻 About

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.


🛠️ Stack

Backend — where I work now

Java Spring Boot Spring Security Hibernate PostgreSQL Flyway Kafka Redis AWS Docker Kubernetes JUnit5 Testcontainers

Mobile — 12 years of it

Kotlin Android Jetpack Compose Clean Architecture MVVM

50+ apps shipped to the Play Store. Team lead on Foot Locker and Torrid. Platform security work at Google Play Protect.

AI-assisted engineering — how I work day to day

Claude Code Copilot Codex Gemini

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.


🏢 Experience

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.


📐 How I Build a Service

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.

📌 Featured Work

Order management microservice — Spring Boot 3 · Java 21 · PostgreSQL

  • Idempotent writesIdempotency-Key enforced by a unique constraint, with race recovery in a separate REQUIRES_NEW transaction 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: false with @EntityGraph
  • JUnit 5 + Mockito units, plus an integration suite against a live PostgreSQL container
  • Multi-stage Docker · Compose · GitHub Actions CI

🤖 AI Knowledge Assistant

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


📊 GitHub


🌱 Currently

  • ☕ 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

🤝 Open To

✅ Java / Spring Boot backend engineering — Pune
✅ Microservices and distributed systems
✅ Regulated or high-scale domains: banking, retail, platform

📫 Contact

📧 Email · 💼 LinkedIn


Profile Views

Pinned Loading

  1. ANDROIDMVVM ANDROIDMVVM Public

    mvvmdemo android

    Java 1

  2. JetNoteApp JetNoteApp Public

    Jetpack Compose notes app with Clean Architecture—create, edit, and delete notes backed by Room, Coroutines, and Navigation Compose.

    Kotlin 1 1

  3. VirginMoneyDemo VirginMoneyDemo Public

    Kotlin 1 1

  4. AndroidTraining AndroidTraining Public

    AndroidTraining is a comprehensive repository dedicated to providing practical and hands-on training materials for Android app development. The repository covers a wide range of Android concepts an…

    Kotlin

  5. BajajTrainingDemo BajajTrainingDemo Public

    Kotlin

  6. Batch3Java Batch3Java Public

    Java