
Backend / Full Stack Engineer · Hyderabad, India
Building AI pipelines for climate-tech in London, remotely
Working as a backend and full stack engineer for about three years, mostly with startups spread through India, then later Germany and the UK. Much of the time spent handling dense data tasks, shaping databases that stay strong when traffic spikes hit. Systems built to run in steps without blocking each other, moving fast even when loads grow. Taking artificial intelligence tools all the way from idea to live deployment was part of it too.
Starting something from nothing excites me. Where I do best is when I step into a role before much exists, building each piece myself: design, structure, how it runs. Problems that need real precision draw my attention: systems handling money, rules-heavy workflows, large-scale machine learning setups.
Outside of work I founded Screenr which is an agentic hiring platform with 6 paying clients, and which I still run and maintain on the side.
Remote · London, UKLune helps logistics and supply chain companies track and report carbon emissions. The core challenge is pulling clean, structured data out of messy real-world documents like invoices, receipts, and shipping records, then turning it into numbers that feed into regulatory compliance reports. Getting it wrong has legal consequences, so accuracy is really the only constraint that matters here.
Remote · Hamburg, GermanyGryn is a carbon-logistics platform handling CSRD reporting and emissions compliance at scale. The data layer was struggling: analytics queries were competing with transactional workloads on the same database and production was timing out. I joined to fix it.
solo-founded · active SaaSThe idea: what if a candidate's claims could be verified against actual work they've done? Strong candidates get an advantage, recruiters stop drowning in noise. So I built it, an agentic hiring platform that screens, verifies, and ranks candidates autonomously, while I was working at Gryn full-time.

Founding Engineer · HyderabadORUPhones is a C2C marketplace for used smartphones. Joined as founding engineer in the scaling phase with no existing backend to inherit. First task was designing and building the ranking engine, a composite scoring system that weighted price competitiveness, seller trust signals, and demand patterns.
Four years figuring out what I actually cared about. Turned out it was building systems that handle real data, at real scale, with real consequences when they break.

A decentralized identity and demographic verification system using The Graph and Push Protocol. Built in 48 hours with strangers over Discord. Verifies name, age, gender, and location on-chain without a central authority.
ethglobal.com/showcase/india3 ↗Building a Conversational AI Assessment Agent: What I Learned From Screenr
From "Why Bother?" to "I'll Never Write It the Other Way": DI, Repository Pattern & Adapter Layers in TypeScript
Stop Reaching for Kafka. Your Postgres Is Already a Queue.
Why Rust Disables Integer Overflow Checks in Release Mode
Ethereum's Pectra Upgrade
EIP-2771 — New Era of Transactions
Things I build to learn, to scratch an itch, or because something didn't exist yet.
A drop-in SDK that intercepts OpenAI and Anthropic API calls at the library level. Zero code changes required. Captures token usage, latency, cost, and duplicate prompts automatically. The duplicate-prompt problem turned out to be bigger than expected; users in production reported up to 70% cost reduction. Also surfaces model downgrade suggestions when a cheaper model would produce the same output.
Personal knowledge base with a RAG backend. Started as a 50-line prototype to understand the core concepts, then pushed toward production quality. Hybrid retrieval (dense semantic search + sparse BM25) with cross-encoder reranking. The reranking step alone pushed accuracy from 70% to 85% on structured documents with tables. Ingestion runs async via Celery so the API returns immediately. Supports text, PDF, and URL sources.
Database migration engine that replaces the standard numbered-file approach with a content-addressed DAG. The problem it solves: two feature branches both create 004_*.sql and they conflict at merge time. With a DAG, migrations are identified by a SHA-256 of their content, so branches merge like git commits. Works with Drizzle, Prisma, and TypeORM. CI gate detects schema drift and exits non-zero on issues.
Scans GitHub repositories and websites for broken links. Useful in CI pipelines to catch dead documentation links before they ship.
A CLI that speeds up repetitive Git commands. Shortcuts for the workflows you run 20 times a day.
A CLI tool that answers one question: "Is my dev environment sane right now?" It checks versions, env vars, running services, and missing dependencies.
I'm drawn to problems where data correctness actually matters: compliance pipelines, financial systems, AI at scale. The interesting work is rarely the happy path; it's the edge cases, the partial failures, the systems that have to keep running while you fix them.
I like taking ownership. Not just shipping features but understanding the problem, making the architectural calls, and being accountable for what runs in production. The work I've been proudest of came from situations where the scope was undefined and someone had to figure it out.
On the technical side: AI pipelines and LLM infrastructure, distributed systems, async data processing, and anything that sits at the boundary between software and real-world consequences. I write TypeScript, Python, and Go day-to-day. Rust has become a genuine preference for performance-critical or correctness-first work.
When I'm not at the keyboard, I'm usually at the gym. Lifting weights is where I decompress. There's something satisfying about a problem with clear metrics and direct feedback. I also play cricket regularly, which is basically the opposite: slow, situational, and deeply team-dependent. Both make me better at the other.