Senior Backend Engineer | Java, Spring Boot, event-driven systems
I'm a backend engineer based in Mumbai, India, with 10+ years of experience across Java and Python services, microservices, data processing, and cloud deployments. I'm open to remote senior backend engineering roles.
My work includes Kafka and Debezium CDC pipelines, transactional outbox workflows, Redis caching and atomic Lua operations, and containerized services on AWS. I focus on data consistency, failure handling, and making production systems easier to operate.
LinkedIn · Accepted contributions · Open pull requests
Status checked on 15 October 2026. Pull request links show the latest review and merge status.
| Project | Contribution | Status |
|---|---|---|
| Apprise | Fixed Matrix rich-text title/body separation and matching message-size accounting; added regression coverage for direct and encrypted notifications. | Merged |
| Kroxylicious | Replaced deprecated Java Operator SDK APIs, migrated operator metrics, and documented metric-name and PromQL changes. Verified 118 focused operator tests. | Open; ready for review |
| Kroxylicious | Fixed Kafka share-group cleanup so a missing group cannot mask a consumption failure. Verified 486 module tests on Linux and five additional share-consumer runs. | Open; ready for review |
| Failsafe | Proposed a fix for circuit breaker statistics after inactivity, with deterministic clock-based tests and a regression for the failure threshold. | Open; awaiting review |
| ThingsBoard | Quoted and escaped PostgreSQL timeseries partition identifiers; verified generated DDL and TTL paths against PostgreSQL. | Draft; full build validation pending |
| JHipster | Corrected a Bootstrap Sass example that failed to compile; verified import order against generator templates and compiled the example. | Open; ready for review |
| Apprise | Proposed optional YAML support for embedded applications, with isolated interpreter tests and branch coverage for disabled/missing YAML. | Closed; not merged |
Read the Failsafe case study: diagnosing a sliding-window circuit breaker bug.
For REA's SQLite snapshot size-limit issue, I implemented a typed, non-retryable resource-limit error with exact byte counts and CLI/MCP regression coverage. Linux validation passed 122 tests with three conditional skips, plus static and documentation checks. I also verified the compiled CLI against a real 270 MB database. The tested patch and evidence were shared for reuse in an overlapping contribution; I did not submit a separate PR.
- EZCONTACTS, Apr 2024-present: backend modernization with Spring Boot, Kafka/Debezium CDC, transactional outbox, Redis, AWS ECS, and centralized logging.
- JUSTDIAL, Aug 2020-Apr 2024: Java/Python APIs, large-file ingestion, asynchronous processing, database optimization, and cloud delivery.
- Earlier roles: backend APIs, automation, payments, reporting, and production delivery across Java, Python, and PHP systems.
| Area | Technologies |
|---|---|
| Backend | Java, Spring Boot, Python, Flask, REST APIs |
| Messaging and consistency | Kafka, Debezium CDC, transactional outbox, RabbitMQ |
| Data | PostgreSQL, MySQL, Redis, Lua |
| Deployment and operations | AWS, Docker, Kubernetes, CI/CD, ELK, Prometheus, Grafana |
I'm interested in backend reliability, event-driven architecture, and practical distributed systems engineering.