Skip to content
Open to backend roles

Backend & AI-Focused Full-Stack Engineer

The polish isn't the last 10%. It's the difference

I'm Chirag, a backend-focused full-stack engineer with 3.5+ years of experience, working primarily with Java, Spring Boot, PostgreSQL, Redis, and Kafka.

I care deeply about correctness in financial systems, working with double-entry ledgers, transactional outbox patterns, and event-driven architecture.

Spring BootKafkaPostgreSQLRAGAWSReact NativeNext.js
Chirag Chatwani — backend software engineer

~/building

What I'm building

Vyay is the current focus — with one or two more projects close behind, including some genuinely cool AI engineering.

Vyay running on an Android phone
Vyay home — balances at a glance
Vyay groups overview
Group balances in Vyay
Group activity feed in Vyay
Recording an expense
Suggested settlement plan
Per-member balances
Historical spending totals
Contacts in Vyay
Vyay login
Creating a Vyay account
Sign-up — profile details
Sign-up — preferences
OTP verification
Logout confirmation

~/projects/vyay

Vyay

in active development

Vyay is a modern expense-sharing app for friends, roommates, couples, and teams — one place to record who paid, split it fairly, and settle up, with multi-currency support built in from the start.

The mobile side is a clean, theme-driven React Native experience; behind it, a Spring Boot platform treats money like an engineering problem — every balance change flows through a single chokepoint into a tamper-evident, HMAC-signed ledger, serialized on database row locks so concurrent expenses can never corrupt a balance.

Four split strategies with deterministic rounding, settlement plans that resolve a group in the fewest possible transfers, and UUIDv7 identifiers end to end — with UPI payment initiation, OCR receipt capture, and RAG-powered spending summaries next on the roadmap.

Still under active development. A test build (APK) and demo account credentials are landing on the website shortly, so you can put the platform through its paces end to end without signing up.

~/projects/vyay/architecture

Kafka at the heart, core as the only writer

Follow one request through the target shape of the platform split: in over HTTP through a JWT-only gateway, written once by core, published through the transactional outbox — then insights and notification consume the event in parallel, and notification delivers over FCM and email.

mobile-appReact Native · theme-driven UI
api-gatewayJWT verification only · zero domain logic
coresole writer · transactional outbox
kafkadomain events · outbox-published, never lost, never phantom
insightsall read surfaces · vector search
notificationevent → template → channel
fcmpush · Firebase Cloud Messaging
mail-senderemail delivery

an event is never published for a transaction that rolled back — and never lost for one that committed

~/testimonials

Kind Words

Recommendations received on LinkedIn.

Kandarp Satuniya — Senior Solutions Architect, MobiFin
Nikunj Darji — AVP - Fintech Product Development, Panamax Inc.
Nikunj Dhamat — Team Lead, Bankai Infotech

Kandarp Satuniya

Senior Solutions Architect · MobiFin

It is my genuine pleasure to recommend Chirag Chatwani - one of the most talented and driven engineers I have had the privilege of working with… Very few developers at any level are doing work like this with Spring AI today. 

~/stack

Technology

Tools chosen for reliability first. Depth over breadth.

languages

JavaPythonJavaScriptSQL

backend

Spring BootSpring SecuritySpring AIJPA / HibernateREST APIsJWT

databases & cache

PostgreSQLRedis

messaging

Apache Kafka

testing

JUnit 5MockitoTestcontainers

devops & cloud

DockerDocker ComposeAWS (EC2, S3)GitHub Actions

frontend / mobile

React Native (Expo)React

tools

GitGradleFlywayOpenAPIHashiCorp Vault

~/dsa

DSA Journey

Consistently sharpening my problem-solving skills across multiple platforms.

Last Updated • 12 August 2026

~/contact

Have a backend problem worth solving?

I'm open to backend roles and interesting systems work. The fastest way to reach me is email.