Writing
SubscribeHow I Built a RAG Tutor That Can't Hallucinate
Most 'AI on your course' features bolt a generic chatbot onto a sidebar and let it make things up. Here's how I built a tutor that only answers from the course's own videos - and gates retrieval on enrollment in the same query.
Why I Used Two Queues Instead of One
One worker pool, two very different jobs - a slow CPU-bound video transcode and a fast I/O-bound embedding call. Put them in the same queue and they starve each other. Here's why I split them, and the systems lesson underneath it.
Docker: Single-Stage vs Multi-Stage Builds
One Dockerfile ships a 1.2GB image, the other ships 180MB - same app. Here's the difference between single-stage and multi-stage builds, and why multi-stage is almost always the right default.
Building an API Client for the Express Backend
A small fetch wrapper that keeps API calls predictable—handling JSON, errors, and cookies in one place.
How I Built Elo-Based Matchmaking for a Real-Time Chess App
Building fair matchmaking is harder than the math. Here's how I implemented Elo ratings and a dynamic queue in PlayChess - K-factors, range expansion, and the edge cases that bit me.
How I Built and Published an npm CLI Tool
BuildElevate started as a personal frustration with repetitive project setup. Here's the full story - architecture, mistakes, lessons, and what it took to publish my first npm package.
Agentic Coding > Vibe Coding
Both put AI at the keyboard, so they get lumped together. Here's why agentic coding - plan, context, review, verify - beats vibing your way through code you'll have to maintain.
Building Production-Ready Auth with Better Auth
Most auth tutorials stop at sign-in and sign-up. Here's how I built the full thing - email verification, Google OAuth, TOTP 2FA, rate-limited emails, and account linking - using Better Auth in a Next.js monorepo.
How Apps Check If a Card Number Is Valid
Ever typed a wrong card number and the form caught it instantly - before even hitting a server? Here's the elegant algorithm behind that.
How Apps Know Your Password Is Weak
That red 'password too weak' warning didn't come from nowhere. Here's the logic behind password strength checkers - entropy, dictionary attacks, pattern detection, and breached password lists.
What Is a Monorepo? A Simple Explanation
Multiple apps, one repository. Here's what a monorepo actually is, why teams use them, and how Turborepo makes them fast enough to be worth it.
A Practical Git Workflow for Modern Teams
A concise Git workflow to help teams collaborate efficiently and keep the codebase clean.
REST API Design Principles That Age Well
Practical REST API principles for building clear, maintainable, and predictable services.
Hello World
My first blog post.