01 / Jun 2025 — PresentBangalore, India
Beneathatree
Full Stack Developer
Speak2 connects people in senior living communities with their families, the staff and their caregivers. The same message has to reach an app, a website, an Alexa unit in the room and the TV in the lobby. That audience changes what counts as a bug: a missed notification is not a defect in a dashboard, it is a family that did not hear something. Also on the analytics side, where I moved the warehouse layer to a faster engine without breaking a single existing query.
Speak2 FamilyUpliftBeneathatree
- —Feature work across the stack on Next.js and Express: the communication flows, service requests and content delivery that residents and staff use daily
- —One set of APIs behind four surfaces (web, mobile, Alexa and the facility TVs) on Lambda, SES and VPC. Four clients off one contract, so a change lands everywhere or nowhere
- —Kept the signage pipeline feeding live content to the TVs in every building. It has no user to complain when it stalls, which is exactly why it needed monitoring more than the parts people can see
- —Added bounce monitoring and retry handling to the transactional email path on SES. Delivery failures are silent by nature, and a notification system people stop trusting gets ignored, at which point the feature may as well not exist
- —Debugging live production on a platform elderly residents and their families depend on, where a bad deploy is not an inconvenience, it is somebody not reaching their family
- —Serverless APIs on Lambda and API Gateway for the analytics side, plus the Next.js work in front of them. Event-driven and spiky, which is what made serverless the right shape rather than the fashionable one
- —Ran a warehouse migration onto a faster query engine, with the BI layer re-pointed on top of it. Speed was the reason it was funded; the requirement I actually cared about was that no existing query broke and nothing went offline. That is the only version of a migration a business will agree to
Next.jsNode.jsExpress.jsAWS LambdaAWS SESAPI GatewayVPCS3EC2Socket.IORedisPostgreSQLServerlessDocker
02 / Mar 2025 — Jun 2025Remote, India
Simmature
Full Stack Developer
Profiles, feeds, connections and messaging for a professional networking platform. Messaging was the part with a real constraint: a thousand people talking at once across more than one process means a socket on one instance has to reach a socket on another. Redis Pub/Sub between them was the simplest thing that worked, and simple mattered because encryption and voice calling sat on the same path.
- —Around 30 backend endpoints on Node, MongoDB and Redis covering profiles, feeds, connections and interactions
- —Messaging on Socket.IO with Redis Pub/Sub between instances, holding 1,000+ concurrent with end-to-end encryption and voice calling on the same path
- —JWT with Google and LinkedIn sign-in and 2FA on top; exponential backoff on Twilio and SendGrid to 99% delivery, a verification code that arrives late is worse than useless. The person has already tried again
Node.jsMongoDBRedisJWTSocket.IOAWS S3TwilioSendGridOAuth 2.0
03 / Oct 2024 — Nov 2024Remote, India
Unified Mentor
Full Stack Developer Intern
An education platform was showing every student the same static list of recommendations. I replaced that logic with a model reading the individual profile, so the suggestions changed per person and moved as the profile did. Also took about a quarter off the frontend load, and built the chat.
- —Replaced a static recommendation list with a model reading the individual profile, so what a student saw changed per person and moved as their profile did
- —Took about 25% off the React load through lazy loading, code splitting and memoisation; built the chat, which held 500+ concurrent
React.jsOpenAI APINode.jsMongoDBWebSocketsTailwind CSS
04 / Sep 2024 — Oct 2024Bangalore, India
Exposys
Full Stack Developer Intern
A travel marketplace with two thousand listings, deployed on EC2 behind auto-scaling. It was an internship and I am not going to inflate it. It was the first time I owned the deployment as well as the code, and finding out what auto-scaling does not do for you was more instructive than the application.
- —A travel marketplace with 2,000+ listings on Node, Express and MongoDB, with MapBox, accounts and reviews, on EC2 across five auto-scaled instances at 99.9% uptime
React.jsNode.jsExpress.jsMongoDBAWS EC2MapBox