Build in Public

What I'm building, what broke, what I learned. AI agents, full-stack systems, and the messy reality of shipping software.

·4 min read

How I Redesigned a Meal Planning App UX: From Panel to Modern Food-First Design

A step-by-step breakdown of how competitor research, UX heuristics, and a 9-wave design system approach transformed an AI meal planning app from a utilitarian admin panel into a modern, accessible, food-first experience.

build-in-publicux-redesigndesign-systemnextjsshadcn-uimeal-planning-app
·4 min read

Building an AI Content Engine for a Gov Contracting Platform

We shipped a full AI-powered blog system for GovChime — Claude API for generation, approval queues, email campaigns, social distribution, and SEO. 311 files, 46K lines, one PR.

build-in-publicai-agentsgovtechcontent-systemsclaude-api
·5 min read

Rebranding a Live Product to Melio: 250 String Replacements, Zero Downtime

How I renamed a multi-package monorepo from three inconsistent brand names to one — plus a comprehensive mobile-first audit that caught blank pages, broken layouts, and hardcoded colors.

rebranduxmobile-firstmeal-plan-aimelioi18n
·5 min read

Day Detail UX Overhaul: PDF Export, Shopping Lists, and Killing Duplicate Components

How I unified three duplicate meal card implementations, built a full PDF export pipeline with clickable table of contents, and added shopping lists to the MealPlan AI day detail view.

reactnextjsuxpdfrefactoringmeal-plan-ai
·5 min read

PostgreSQL + ClickHouse: The Dual-Database Pattern That Made 70M-Row Dashboards Instant

Running analytics on 70M+ rows in PostgreSQL made our dashboards unusable — queries took seconds, joins killed performance. Here's the dual-database architecture I built at GovChime that cut query times by 100-300%.

postgresqlclickhousearchitectureperformancebackend
·5 min read

Agent Builders Are Changing How I Ship Code — Here's My Actual Workflow

I've been shipping production features as a solo engineer on a complex multi-service codebase. The secret isn't working harder — it's building custom AI agents that know my architecture. Here's the exact setup I use with Claude Code.

claude-codetoolsarchitecturecareerai
·5 min read

Why I Moved AI Out of NestJS and Into a Dedicated Python LangGraph Service

Our NestJS AI chain hit a wall — unreliable outputs, no observability, zero crash recovery. Here's how I replaced it with a 5-node LangGraph StateGraph in Python FastAPI, and why splitting AI into its own service was the right architectural call.

ailangchainarchitecturenestjs
·1 min read

Hello World — Welcome to My Blog

First post on my new blog. Here I'll share thoughts on software engineering, AI development, and lessons learned building products.

introblog