I design and build scalable distributed systems, AI-powered applications, and production-grade full-stack platforms — with a strong focus on architecture, performance, and reliability.
About
I'm a software engineer who ended up specializing in distributed systems mostly by chasing the same question across every project I've built: what actually breaks when this has to serve a thousand people at once instead of one? That question is why I care more about what happens at the queue, the cache, and the database index than about the framework of the week.
Most of my recent work sits at the intersection of backend architecture and AI infrastructure — building RAG pipelines that don't fall over under document ingestion load, multi-tenant systems where one noisy customer can't degrade everyone else's latency, and real-time platforms where the hard part isn't sending a message, it's agreeing on where every socket lives right now. I like this kind of problem because the constraints are unforgiving and the tradeoffs are concrete — consistency versus latency, throughput versus cost, simplicity versus flexibility — and getting them right is the actual craft.
I also spend a lot of time on the un-glamorous half of engineering: performance. Cutting an AI chatbot's reply time from five seconds to under two, or a Lighthouse score from 62 to 84, isn't a rewrite — it's profiling, finding the two or three things actually responsible, and fixing exactly those. That discipline of measuring before optimizing is probably the single habit that's saved me the most time in production.
Outside of the resume line items, I'm just someone who enjoys system design as a craft in its own right — sketching an architecture on a whiteboard before writing a line of code, and being a little too willing to explain why a particular caching strategy is the interesting part of a project.
Experience
Every role below shipped something that had to survive real traffic. Expand a card for the problem/architecture/solution/impact behind it.
A 5–7s reply time with no incremental feedback felt broken for an interactive research tool.
Context-aware session memory plus token-by-token streaming, paired with route-based code splitting and WebP-driven LCP improvements platform-wide.
Profiled the Lighthouse report to target the exact metrics dragging the score down instead of broad optimization.
Latency cut to ~1.5s; Lighthouse score up 25% (62 → 84).
Traders needed order books, feeds, and balances to stay accurate to the second, with a secure path to act on that data.
A WebSocket market-data layer plus a custom API client, with JWT-based session management for authenticated trading actions.
Client-side reconciliation applied incremental order-book updates instead of re-fetching full state on every tick.
An integrated workflow for strategy creation, automated execution, and real-time PnL monitoring.
Serving many tenants' knowledge bases from shared infrastructure without one tenant's crawl job degrading another's chat latency.
Kafka-based crawl/ingestion/embedding workers, Redis caching and distributed locking, pgvector per-tenant retrieval, stateless API tier.
Tenant ID scoped into every cache key and lock name from day one; workers scale independently of the API tier.
Minimized request latency and maximized throughput while supporting horizontal scaling across tenants.
Per-request Google Sheets API calls triggered 403 rate-limit failures under real event traffic from 2,500+ attendees.
Redis-backed cache as the sole read path, with a scheduled sync worker replacing live per-request API calls.
K6 load testing proved the bottleneck before the redesign, and again validated the fix against the 1,000+ concurrent user target.
Eliminated rate-limit failures and significantly reduced lookup latency at scale.
Legacy dashboards were slow and hard to maintain for real-time geospatial data.
Interactive dashboards and real-time data visualization built with Apache ECharts.
Refactored legacy code alongside the new dashboards to improve maintainability.
Faster, more maintainable analytics with real-time visualization.
Scattered API calls across the frontend caused redundant requests and heavy boilerplate; invoice PDF rendering lagged the UI.
TanStack Query for centralized data fetching, caching, retries, and background sync; PDF rendering moved to the backend.
Standardized API interaction patterns across the frontend instead of per-component fetch logic.
Fewer redundant network requests, less boilerplate, and a faster, lag-free invoice generation experience.
No centralized way to track application-wide user actions and system events made auditing and debugging slow and reactive.
A centralized activity-log pipeline feeding an admin dashboard, with Grafana/Prometheus/Loki providing metrics and log aggregation.
Structured logging and dashboards that surface system events in one place instead of scattered across services.
Improved troubleshooting efficiency and minimized application downtime.
Projects
Each project below is a full write-up — problem, architecture, tradeoffs, and what I'd do differently next time.
Architecture Case Studies
The four architectures I've gone deepest on — requirements through failure recovery, with diagrams.
Skills
Impact, in numbers
Resume
Distributed systems, backend architecture, AI infrastructure, and performance engineering — condensed into one document.
GitHub
Pulled live from GitHub where available.
Writing
Long-form breakdowns of the architectures above — some live, some still being written.
Beyond the resume
Contact
Bangalore, India · Open to Software Engineering roles, remote or on-site.