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.
Building
Right now I'm building Litmus, a place to practice system design. Most courses hand you the finished diagram. Litmus gives you the requirements and an empty canvas, then grades every box as you add it: green if it's right-sized, yellow if it's over-built, red if it's about to fall over. The design that's perfect at 1k requests a second breaks at 100k.
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.com / Visualize geohashes in bulkWriting
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) Spot Optimizer ≠ Spot Fleet: decide smart, then launch View all →