Skip to content

Writing

Notes on engineering, life, and faith

Writing on engineering, the homelab, personal stories, and reflections on faith — 172 posts since 2011.

Series

The Thirteen Full-Stack Layers

Complete · 14 parts

From the browser tab to the 3am backup — one post per layer of a production web stack, and the gap between a vibe-coded demo and a real product.

  1. 0 Vibe-Coded vs Production-Ready: 3 Layers or 13?
  2. 1 Frontend Foundations: The Layer Users Actually Touch
  3. 2 APIs and Backend Logic: Where the Rules Live
  4. + 11 more

View series →

Git for Working Devs

Complete · 14 parts

A sequential mini-course in Git for people who ship — fundamentals and conventional commits, then the branching, review, and collaboration workflows that hold a team together.

  1. 1 Conventional Commits, End to End
  2. 2 A .gitmessage Template and Commit Hooks That Enforce It
  3. 3 git rebase -i Without Fear
  4. + 11 more

View series →

System Design for Working Devs

Complete · 13 parts

A field guide to system design for the engineer who has to make the call and ship it — no FAANG-scale hand-waving. The five axes of every tradeoff, the CAP theorem without the folklore, idempotency, caching, designing for failure, and a full worked design at the end.

  1. -1 System Design from Zero
  2. 0 How to Think About System Design
  3. 1 Latency, Throughput, and Napkin Math
  4. + 10 more

View series →

Authorization in Practice

Ongoing · 3 parts

Who can do what, and how you prove it — roles vs attributes, policy tests that hold the line, multi-tenant isolation, audit trails, and what happens when permissions become a graph.

  1. 1 RBAC vs ABAC: Roles, Attributes, and Where Each One Breaks
  2. 2 Testing Authorization Policies Like the Boundary They Are
  3. 3 Multi-Tenant Authorization: One Database, Many Customers, Zero Leaks

View series →

Agentic Engineering with Claude

Ongoing · 6 parts

A working dev's field guide to coding agents — what "agentic" actually means, Claude Code in the terminal, the feedback loops and guardrails that make it trustworthy, and shipping real features from prompt to deploy.

  1. 1 What "Agentic" Actually Means
  2. 2 Claude Code in the Terminal
  3. 3 Designing the Feedback Loop
  4. + 3 more

View series →

Latest

engineering

Multi-Tenant Authorization: One Database, Many Customers, Zero Leaks

In a SaaS, the worst bug class is the cross-tenant leak — customer A seeing customer B's rows. Global scopes that make the leak impossible by default, why tenancy is not authorization, and the escape hatches that bite: queues, commands, and reports.

engineering

How to Efficiently Structure a Medium Scale Vue 3 Project

The awkward middle: too big for a flat src/, too small for micro-frontends. How I lay out a Vue 3 + Vite + Pinia app by feature module instead of by file type — a router split per module, colocated stores, one Axios client, composables that stay near their feature, and the Tailwind-vs-Vuetify call. The same modular instinct as my Laravel Module Maker, on the frontend.

engineering

How One Server Holds a Million Connections

A million open connections on a single box sounds impossible until you stop thinking one-thread-per-client. The story of C10K, why an idle connection is almost free, the four walls you actually hit, and the napkin math that makes a million fit in RAM.

engineering

Testing Authorization Policies Like the Boundary They Are

A policy bug isn't a bug, it's an incident. Table-driven Pest tests over the attribute grid, feature tests that prove the 403 is actually wired, and the Gate::before mistake that silently kills every policy you have.

faith

You Cannot Worship God Properly if You Don't Know How to Praise Him

Modern culture blurs praise and worship into two tempos of music, but Psalm 100 maps them as a path — thanksgiving at the gates, praise in the courts, worship in the sanctuary — and you cannot reach true worship without first learning to praise.

Archive

2026 69 posts

2025 24 posts

2024 12 posts

2023 12 posts

2022 12 posts

2021 12 posts

2020 12 posts

2019 12 posts

2018 6 posts

2011 1 post