Skip to content

Writing

Notes on engineering, life, and faith

Writing on engineering, the homelab, personal stories, and reflections on faith — 182 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 · 5 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
  4. + 2 more

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

PHP2Shell: Two Critical RCEs in PHP Core, and What to Do Today

CVE-2026-109618 and CVE-2026-109619 are unauthenticated remote code execution flaws in PHP core, both rated CVSS v4.0 9.2. Fixed in PHP 8.5.12, 8.4.27, 8.3.36 and 8.2.35, released 21 October 2026. What the bugs are, who is at risk, and a patch-day checklist.

faith

Jehovah Jireh Does Not Always Mean More Money

The LORD Will Provide is a name Abraham gave on a mountain where he almost lost his son — not in a season of surplus. Genesis 22:14 on what God actually provides, and why the provision often looks nothing like cash.

faith

You Cannot Impart What You Do Not Possess

You cannot lead people where you have never been. You cannot preach with power what you are not practicing with integrity. Ezra 7:10 on why the order — study, obey, then teach — is everything.

engineering

How Do Two Servers Never Pick the Same ID?

Auto-increment works right up until you add a second writer. The story of how distributed systems mint unique IDs without asking each other permission — ticket servers, UUIDs and the birthday math, Snowflake and ULID, and the one idea underneath all of them: who owns which slice of the ID space.

engineering

ReBAC: When Permissions Become a Graph

Google's Zanzibar modeled access as relationship tuples — editor of the folder that contains the doc. When your ABAC policies turn into chains of relationship-walking, ReBAC (OpenFGA, SpiceDB) is the tool built for it. What it buys, what it costs, and the seam that keeps you free to adopt it later.

Archive

2026 79 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