Notes on building software.
Technical notes on product engineering, system design, and the lessons that follow shipping real software.
Moving Four Apps to Drizzle: Queries, Permissions, Migrations, and Performance
How I moved Portfolio, Studio, Admin, and Auth to Drizzle while preserving APIs and permissions—and why fewer round trips and regional placement mattered alongside the ORM.
- Drizzle
- PostgreSQL
- Supabase
- Next.js
Black October: What Happened, What the Numbers Mean, and What Developers Should Do
October’s security headlines span runtime vulnerabilities, compromised certificate keys, and malicious software releases. Here is what the evidence shows, what the numbers mean, and how developers can respond.
- Cybersecurity
- Software Engineering
- Supply Chain
- Node.js
How I Made a Four-App Monorepo Work in GitHub Codespaces
How I made Portfolio, Studio, Admin, and Auth reproducible in one private Codespace with cached setup, scoped secrets, and per-app dev commands.
- GitHub Codespaces
- Developer Experience
- Monorepo
- Next.js
How I Made a Public Portfolio Discoverable to Agents
How public metadata and discovery catalogs help agents understand the Portfolio, its content and its authentication boundaries.
- Agent Discovery
- DNSSEC
- Next.js
- SEO
How I Turned Cloudflare Analytics Into a Public Portfolio Feature
How I exposed aggregate Cloudflare traffic and field performance through a server-only Next.js boundary, then shaped it into a privacy-conscious dashboard with global reach, clear chart semantics, and country-level interaction.
- Cloudflare
- Next.js
- Data Visualization
- Web Vitals
How I Cut Key Interaction Latency by Up to 53%
Tracing the full click-to-database path exposed duplicate auth, extra queries, and UI waits—then measurement proved what improved.
- Performance
- Supabase
- PostgreSQL
- Optimistic UI
How I Cut Initial JavaScript Without Cutting Features
A measured Next.js performance pass that moved optional code out of initial routes and added budgets to keep the improvements from regressing.
- Next.js
- Turbopack
- Bundle Analysis
- Web Performance
The CMS Behind My Portfolio: From Edit to Public Page
How one content record moves through capability-gated Admin editing, shared contracts, Supabase RLS, and the public Portfolio renderer.
- Content Management
- Supabase
- PostgreSQL
- Next.js
How I Split One Next.js App into Four Products
The architecture decisions that separated Portfolio, Studio, Admin, and Auth while keeping shared contracts and one clear data model.
- Architecture
- Next.js
- Monorepo
- System Design
What Product Ownership Looks Like in Practice
Six decisions that turn a feature into a dependable product: problem, trust, data, experience, failure handling, and operations.
- Product Ownership
- Full Stack
- System Design
- Delivery
Why I Build Beyond the Ticket
How field work, full-stack engineering, and independent products shaped the way I think about complete systems—not isolated features.
- Journey
- Product Engineering
- Independent Work