Writing
Notes on software, chess, design, and the things that connect them. Begin with an ordered path, then browse by subject or time.
Guided paths
Ordered series for questions that need more than one entry to answer.
-
Go Patterns
A practical reading order for concurrency in Go: how work starts, moves, stops, and stays bounded.
See the 10-part reading order → -
TDD & Software Design
A path through tests, boundaries, and the design decisions that make code safer to change.
See the 5-part reading order → -
UX Japan
Japanese interfaces as a lens for attention, density, context, and cultural design choices.
See the 3-part reading order → -
Projects
Notes from building production tools: the trade-offs, constraints, and questions each project exposed.
See the 4-part reading order →
The archive
All published writing, in time order.
2026
22 entries №35 22 Jul 3 Lessons from The Code of the Extraordinary Mind Notes on practice
· 5 min
№34 21 Jul DDD Aggregate Boundaries and Persistence in TypeScript Software design & testing
· 1 min
· Series · TDD & Software Design №33 18 Jul OpenTelemetry Go Compile-Time with otelc Go & concurrency
· 1 min
№32 16 Jul Repository Updates in TypeScript: Locks and Optimistic Concurrency Software design & testing
· 1 min
· Series · TDD & Software Design №31 10 Jul Beyond Unicorn: Why I Code-Gen Instead of Emulating Projects
· 1 min
· Series · Projects №30 8 Jul Go Concurrency Patterns: A Practical Reading Order Go & concurrency
· 1 min
· Series · Go Patterns №28 7 Jul TypeScript DDD Aggregates & Repositories Software design & testing
· 1 min
· Series · TDD & Software Design №29 7 Jul Building a Native x64-to-C# Transpiler: Why I Built Alicorn Projects
· 1 min
· Series · Projects №26 4 Jul Context and Cancellation in Go: Stopping Work That Shouldn't Have Started Go & concurrency
· 1 min
· Series · Go Patterns №27 4 Jul Go Goroutines vs C# async/await: Who Carries the Cognitive Load? Go & concurrency
· 1 min
· Series · Go Patterns №25 30 Jun Value Objects & Entities in TypeScript: Building Blocks That Can't Break Software design & testing
· 1 min
· Series · TDD & Software Design №24 24 Jun Beyond PGN: Designing an Ultra-Efficient Chess Storage Format Chess & study
· 1 min
№23 19 Jun Beyond Minimalism: A Japanese-Inspired UX for the Web Design & culture
· 1 min
· Series · UX Japan №21 5 Jun How to Merge PGN Files in F#: Streaming, Performance, and Discriminated Unions Projects
· 1 min
· Series · Projects №22 5 Jun What Western UX Can Learn from Japanese Web Design Design & culture
· 1 min
· Series · UX Japan №20 31 May Why Japanese Websites Look Overloaded: Density, Tokyo, and Trust Design & culture
· 1 min
· Series · UX Japan №19 24 May TDD Isn't About Bugs — It's Your Permission to Refactor Software design & testing
· 1 min
· Series · TDD & Software Design №18 4 May Docker 29 Broke Traefik — Here's the Fix (and Why It Happened) Systems & tooling
· 1 min
№17 30 Apr Why I Built ZaString Projects
· 1 min
· Series · Projects №16 27 Apr Generic Methods Coming to Go Go & concurrency
· 1 min
№15 26 Apr I Write, I Code, I Explore — Why Verbs, Not Nouns Notes on practice
· 1 min
№14 24 Apr Go Pipeline Pattern: Turning Streams into Useful Data Go & concurrency
· 1 min
· Series · Go Patterns
2024
8 entries №13 12 Dec Flexible Approaches to Worker Pools in Go Go & concurrency
· 1 min
· Series · Go Patterns №12 10 Dec Mastering the Worker Pool Pattern in Go Go & concurrency
· 1 min
· Series · Go Patterns №11 8 Dec Advanced Generator Pattern: Consuming and Testing Data Streams Go & concurrency
· 1 min
№10 6 Dec Advanced Generator Pattern in Go: Test Data Generation Go & concurrency
· 1 min
№09 3 Dec Mastering the Generator Pattern in Go Go & concurrency
· 1 min
· Series · Go Patterns №08 2 Dec Producer-Consumer in Go: Beyond the Basics Go & concurrency
· 1 min
· Series · Go Patterns №07 30 Nov Understanding the Producer-Consumer Pattern in Go Go & concurrency
· 1 min
· Series · Go Patterns №06 17 May My Experience at the Karen Asrian Memorial Tournament Chess & study
· 1 min
2023
4 entries №05 9 Aug Solving the Sum of Squares Problem: Optimizing Performance Go & concurrency
· 1 min
· Series · Go Patterns №04 28 Apr Upgrading to dnf5: A step-by-step guide for Fedora users Systems & tooling
· 1 min
№02 11 Jan Merge Sort using Goroutines Go & concurrency
· 1 min
№03 11 Jan Goroutine vs Simple function Go & concurrency
· 1 min