Skip to content

Blog

48 posts

Long-form articles and short thoughts on AI, product, and engineering.

Product4 min read

Metrics That Matter Early Stage

Vanity metrics vs. real signal. What I track for AssessAI and why most startup dashboards are performance art.

AI & LLM5 min read

The Context Window Trap

1M token context windows don't mean you should use them. When to chunk, summarize, or restructure instead of stuffing everything in.

System Design9 min read

System Design: Distributed Job Scheduler

Designing a cron-at-scale system — priority queues, exactly-once execution, retry with dead letter queues, and the monitoring that keeps it honest.

Thoughts1 min read

Remote work is a skill

Working across Japan, USA, and India taught me that async communication is everything.

Software Dev4 min read

Git Workflow for Solo Founders

Trunk-based dev, feature branches, conventional commits. What works when you're the only person pushing code.

AI & LLM6 min read

LLM Evaluation Is Hard

Building LLM-as-a-Judge for AssessAI taught me why automated evaluation needs human calibration — and where it breaks down.

Product5 min read

Building AssessAI: Why Coding Tests Are Broken

Most companies still use LeetCode to hire senior engineers. In 2026. When AI does 70% of the coding. Here's what I built instead.

AI & LLM5 min read

Voice AI in Production

What it takes to deploy conversational Voice AI that handles real phone calls. Latency budgets, failure modes, and lessons from Avoca.

Tools3 min read

My Claude Code Setup: 68 Commands, 15 Agents, 86 Skills

How I turned Claude Code into a complete engineering team in a terminal.

Product4 min read

Solo Founder Stack 2026

Next.js + Supabase + Vercel + Claude Code. The stack that lets one person ship like five.

System Design9 min read

System Design: File Storage Service

Designing S3-like object storage — chunking, deduplication, CDN integration, and the metadata layer that ties it all together.

AI & LLM4 min read

Embedding Models Compared: Cost, Quality, Latency

OpenAI ada-002 vs text-embedding-3 vs Cohere vs local models. Real benchmarks from production retrieval systems.

Thoughts1 min read

Model size is a vanity metric

Ran Kokoro-82M on my MacBook for TTS. 337MB. Broadcast-quality speech. Zero cost.

Tools5 min read

Supabase for Everything

Auth, database, edge functions, realtime, storage. One service replacing five. Here's how I use Supabase as my entire backend.

Software Dev4 min read

My Code Review Checklist

What I look for when reviewing code: correctness, edge cases, naming, testing. Lessons from leading a team at Blinq.

Thoughts1 min read

AI won't replace engineers

It'll replace engineers who can't use AI. Different thing.

AI & LLM5 min read

AI Coding Tools Ranked: What I Actually Use

Claude Code vs Cursor vs Copilot vs Windsurf. Ranked by someone who uses them all for real work, not demos.

System Design8 min read

System Design: Distributed Cache

Consistent hashing, eviction policies, cache stampede prevention, and the Redis vs Memcached decision you'll actually face in production.

Tools3 min read

Local TTS at Zero Cost

Kokoro-82M: 337MB model, broadcast-quality speech, runs on a MacBook, costs nothing. Here's how to set it up.

Software Dev4 min read

Docker for Developers, Not Ops

Dev containers, multi-stage builds, compose for local dev. The Docker knowledge that actually matters when you're writing code, not managing infrastructure.

AI & LLM4 min read

Fine-Tuning Is Usually Wrong

A decision framework for when to fine-tune, when to prompt engineer, and when RAG is the right call. Most teams pick fine-tuning too early.

System Design8 min read

System Design: Payment System

Idempotency, double-entry bookkeeping, webhook handling, and PCI compliance — the system where bugs cost real money.

Product4 min read

Product Thinking vs. Coding

Why the best engineers think about users first. The skill gap companies don't test for.

AI & LLM5 min read

Claude vs GPT for Code Generation

An honest comparison from daily use. Where each model wins, where each fails, and what I actually reach for.

Thoughts1 min read

The best code is no code

Before writing a function, check if a library does it. Before a library, check if you need it at all.

System Design8 min read

System Design: Search Engine

Inverted indexes, query parsing, BM25 ranking, and autocomplete — designing an Elasticsearch-like search system from scratch.

Software Dev4 min read

Debugging Production Like a Detective

Log correlation, structured traces, and the debugging stories that taught me how to find bugs in production without adding console.log.

Tools4 min read

Automating Everything with Hooks

Claude Code hooks: auto-format, auto-test, auto-commit, auto-sync. My full setup for turning manual chores into background processes.

AI & LLM5 min read

Multi-Agent Orchestration Lessons

What I learned building a 23-agent system. When to split agents, when to merge them, and why most multi-agent architectures are over-engineered.

Product5 min read

Shipping Zero to One in 8 Weeks

Tactical breakdown of building AssessAI from nothing to 200+ source files, 630+ tests, and a working product. Architecture decisions and what I'd change.

System Design8 min read

System Design: News Feed

Fan-out on write vs read, ranking algorithms, and the caching strategy behind Facebook and Twitter's news feeds.

Software Dev4 min read

Testing Strategy for Solo Devs

When you're the only engineer, you can't test everything. Here's where to invest your testing time for maximum confidence.

AI & LLM5 min read

Building AI Agents That Don't Hallucinate

Grounding, tool use, and verification loops. What it took to ship agents that users actually trust.

System Design8 min read

System Design: Real-Time Chat System

Designing a WhatsApp/Slack-scale chat system — WebSockets, message ordering, presence indicators, and read receipts.

Thoughts1 min read

Most startups over-engineer

Postgres + Vercel + a single Next.js app covers 90% of use cases.

Software Dev4 min read

Next.js App Router Gotchas

Caching, revalidation, loading states, parallel routes. The things that bit me after 200+ source files on Next.js 15.

Tools5 min read

MCP Servers Explained

Model Context Protocol: what it is, how I use 9 servers daily, and a practical guide to connecting AI tools to everything.

AI & LLM4 min read

Prompt Engineering Is Dead

Structured outputs, function calling, and system-level constraints killed the artisanal prompt. Good riddance.

System Design7 min read

System Design: Notification System

Push, email, SMS — designing a multi-channel notification system with priority queues, delivery guarantees, and template engines.

Software Dev4 min read

React 19 Was Worth the Wait

Server components, the use() hook, Actions — what actually changed in practice after shipping a full product on React 19.

AI & LLM5 min read

Local LLMs Are Good Enough

Running Llama 3, Mistral, and Phi-3 on a MacBook. When cloud APIs are overkill and local inference makes more sense.

Tools4 min read

The Terminal Is My IDE

Claude Code as a primary development environment. 68 commands, tmux sessions, and why I rarely open VS Code anymore.

System Design7 min read

System Design: Distributed Rate Limiter

Token bucket, sliding window, and the Redis scripts that make distributed rate limiting actually work at scale.

Product4 min read

Why I Left My Job to Build AssessAI

The moment I decided, the problem I couldn't ignore, and what the first week looked like.

Thoughts1 min read

Hiring is broken

LeetCode interviewing in the AI era is cargo cult hiring.

AI & LLM4 min read

RAG Patterns That Actually Work

Vector search is the easy part. Here's what matters after you've embedded your documents.

Software Dev4 min read

TypeScript Patterns I Use Daily

Discriminated unions, branded types, const assertions, and satisfies. The patterns that actually make TypeScript worth it.

System Design6 min read

System Design: URL Shortener

Designing a bit.ly-scale URL shortener — Base62 encoding, redirect latency, analytics, and the caching layer that makes it fast.