Ask me about him. I'll answer and take you there.

Ask your own question
← Back to the page

The full story · Oct 2026 to now · the mobile app and admin are Gowrish's; the backend is mine

UniNeeds

The backend behind a live college app, built so the app never noticed.

7services behind one gateway
1,373tests, 826 of them on real Postgres and Kafka
0changes needed in the app
0production incidents since it went live

The hard parts

Matching what the app silently relied on

Problem
The app was already in students' hands, could not change, and also reads the database directly.
What I did
I listed the traps first: Firestore number types, which handler Express really runs, how JavaScript prints numbers and dates. Tests compare the stored documents byte for byte, not just the responses.

One order's events, in order

Problem
Two copies of the event relay could send updates for the same order out of order.
What I did
The database hands events out strictly in sequence for each order, while different orders still flow in parallel. Consumers ignore repeats.

Also in it

  • The app covers food ordering, ride pools, rentals, gadget repairs, a campus store and chat
  • A gateway plus identity, payment, store, food, rental, chat and notification services
  • Each service owns its own Postgres schema and database role
  • Events through a transactional outbox on Kafka, with read models instead of cross-service queries
  • Firebase, Razorpay and email integrations
  • Packaged with Docker and Helm, monitored with Prometheus and Grafana

Built with

GitAutomated testingJavaRESTDockerSQLSpring BootMicroservicesDocker ComposeRedisBashTransactional outboxPostgreSQLKafkaJUnitTestcontainersGrafanaSpring Cloud GatewayJPA / HibernateHelmFlywayContract testingWireMockPrometheus