Design Philosophy
How I think about
system design
Constraints first
Before a single line of code, I establish the non-negotiables: latency budget, data residency, team size, and the most likely scaling axis. A B2B SaaS with 500 enterprise accounts has different architecture needs than a DTC brand doing 50k daily sessions.
Edge by default
Static where possible, edge where necessary, server where required. Vercel's Edge Network and Cloudflare Workers have made global sub-50ms response times accessible at mid-market budgets. I design for this by default.
Observable from day one
Logging, tracing, and error boundaries are architectural decisions, not post-launch additions. Every system I build ships with Sentry for errors, Posthog for product analytics, and structured logging before the first user hits it.
Type safety end-to-end
TypeScript + tRPC + Zod means a database schema change propagates as a compile error, not a runtime 500. The investment in type safety pays back 10:1 in systems that are live for more than six months.
01 — Full-Stack Applications
Production apps,
real constraints.
Each project below is either live in production or was delivered to a paying client. No side projects dressed as case studies.
Meridian Analytics Platform
Multi-tenant analytics dashboard for HR teams. Real-time data pipeline handling 2M+ events/day with sub-200ms query response at P99. Built with Next.js App Router, Supabase, and a custom React query layer.
Edge → API Routes → Supabase Realtime → React Query
Stack
Volta Commerce Engine
Rebuilt a $3M/yr DTC storefront from a bloated Shopify theme to a headless Next.js architecture. Custom cart engine, predictive search with Algolia, and a CDN-first image pipeline via Cloudinary.
CDN → Edge Cache → Storefront API → Incremental Static Regen
Stack
Pulse CRM Internal Tool
Custom CRM built for a 12-person sales team that outgrew HubSpot. Role-based access control, real-time deal pipeline with WebSocket updates, and a Slack integration for automated deal stage notifications.
Clerk RBAC → Drizzle → PlanetScale → WebSocket → Slack Webhook
Stack
02 — Automation Workflows
Humans do the work
machines can't.
Every workflow below eliminates a recurring manual task. The design principle: automate the handoffs, not the judgment.
Content Production Pipeline
When a content brief is marked 'Ready' in Notion, the workflow: pulls the brief, calls GPT-4o for a structured first draft, runs a brand-voice check, notifies the editor in Slack, and creates a Google Doc — all within 90 seconds.
Lead Enrichment & Routing
Inbound form leads are enriched via Apollo.io, scored against ICP criteria, and routed: enterprise leads go to the founder's calendar (Calendly auto-create), SMB leads receive a personalized Resend sequence, unqualified leads are tagged and archived.
E-commerce Re-engagement
Churn prediction model flags at-risk customers (90-day no-purchase). A server-side cron queries Supabase, builds a personalised cohort, generates tailored win-back offers using product affinity data, and fires a multi-step email sequence via Resend.
03 — AI Integrations
AI that ships,
not prototypes.
Every AI integration below is in production. Each one has error handling, fallbacks, cost controls, and observability baked in from day one.
Full Stack
The complete
toolchain.
Weekly thinking
One idea, every Sunday.
Web architecture, marketing systems, and going independent — one idea per issue. No filler. Real numbers from the build-in-public arc.
No spam. Unsubscribe any time. Free.