I’m a senior data engineer at Citi in Bengaluru, with 8+ years of building and fixing data systems. Most of my days go into Spark. I’m usually the one who gets pulled in when a job is slow, expensive, or failing every night, and I’ve cut resource usage on some of those by up to 90%. Then I build the tooling so nobody has to dig through those logs by hand again.
Before Citi, I spent four years at Sahaj Software owning terabyte-scale ad-tech pipelines on AWS EMR and Airflow, and before that, three years at TCS building real-time pricing APIs for Cummins.
Outside work, I’ve contributed to Apache Airflow, was a maintainer at CRI-O and DuckDuckGo, and did Google Summer of Code with TEAMMATES at NUS. When a problem annoys me enough, I turn it into a tool, like spot-optimizer (11k+ downloads) or uv-bundler, and I write about Spark internals, databases, and functional programming.
Always happy to talk data, open source, or side projects. Say hello on GitHub, Medium, or LinkedIn.
Currently building
Litmus
System design practice that judges your decisions, not your diagram. Each problem gives you real requirements and an empty canvas. Every box you add gets a verdict: right-sized, overkill, or about to break, with the reason why.
Pass, and a Deep Dive raises the bar, just like an interviewer would: more traffic, users worldwide, a database node that dies. Your design has to keep up. Stuck? Get a hint first, then watch the reference design built box by box.
Try Litmus →Work
Lore / Decision memory for Claude Code uv-bundler / Linux-ready Python builds from any machine Spot Optimizer / Picks the cheapest stable AWS Spot instances GeohashViz / Visualize geohashes in bulkWriting
We're Putting AI Everywhere Before It's Sustainable Your AI Agent Forgets Everything. Lore Fixes That. Functors and Monads: Wrapping Your Data (Not Your Head) Around Them Currying and Partial Application: Shaping Intent Choosing Functional Python (Without Forcing It) View all →