About

I build things that actually ship

I'm a full-stack engineer who builds real products — not the kind that looks great in demos then breaks when actual users show up. My stack covers frontend, backend, deployment, and everything in between. CS degree with an AI major from Taylor's University (CGPA 3.42). I started with code, broke things in production, fixed them, and got progressively better at not breaking them in the first place.

When something is harder than it needs to be, I treat it as a design problem. Clean code isn't an aesthetic preference — it's how you avoid debugging at 2am. I've been there. It's not great.

Take a break

Need a moment? Try not to die:

Duck Game
Space or tap to jump

War stories

Bugs I've met and survived

Real problems from real projects. Click any card to read the full story.

Built an AI chatbot for an e-commerce platform. WebSocket connection worked great — until it didn't. Messages would randomly appear twice. I spent a day convinced the AI model was hallucinating duplicates. Turned out: React's StrictMode mounts components twice in dev, creating two WebSocket connections to the same room. In production, rapid re-renders during streaming were doing the same thing. Fix: moved the socket to a singleton ref, deduped by message ID. One line of logic that took a full day to earn.

Built an inventory management platform that used OCR to scan barcodes and product labels. Seemed fine — until someone noticed stock counts were wildly off. Investigation revealed: our OCR was confusing the letter 'O' with the number '0' in product codes like 'P0012' vs 'PO012'. They mapped to completely different items. Thousands of units misattributed. The fix was a post-processing regex to normalize ambiguous characters based on code schema patterns. But first I had to explain to a warehouse manager why the computer couldn't read the letter O. That was a fun meeting.

Built a restaurant booking system. Everything worked perfectly — until Daylight Saving Time happened. Reservations stored as UTC were being displayed without accounting for the DST offset switch. Customers got confirmation emails saying 7 PM, showed up at 7, and their table wasn't ready until 8. The restaurant was not happy. The fix was straightforward (use a proper timezone library, always store with timezone context, never do manual UTC offset math). The lesson: never assume a timestamp is just a number. It is a political statement about what time zone a government decided to observe in 1978.