Skip to content
S

Engineering notes

Writing

Start with a series if you want a guided path, pick a topic for a broad area, or use tags when you're looking for something specific.

Start here

Series

Connected posts in a deliberate reading order. Best when you want to follow an idea from start to finish.

Browse all series →
In progress

2 published parts

Building PulseOps

See why IMemoryCache breaks down across multiple app instances, then move shared cache state to Redis and wire it with .NET Aspire.

4 published parts

Production Systems

Event-driven systems can drop messages while every component reports success. How acknowledgment boundaries hide loss, and where to put them.

2 published parts

Safe Repository Maintenance Agents

Build a permission-gated repository maintenance agent in .NET with GitHub Copilot and Microsoft Agent Framework.

5 published parts

Home Lab

Build a Kubernetes home lab from old laptops with Ubuntu Server and k3s, including networking, node setup, and cluster verification.

3 published parts

Streaming APIs

Learn what Transfer-Encoding: chunked means in HTTP/1.1, inspect hexadecimal chunk sizes with curl --raw, and see how HTTP/2 and HTTP/3 differ.

5 published parts

gRPC

What gRPC is, how Protocol Buffers and HTTP/2 fit together, and when it beats REST or WebSockets for service-to-service calls.

Broad areas

Topics

Use topics when you know the general engineering area, such as .NET, Kubernetes or distributed systems.

Browse all topics →

Specific labels

Tags

Tags cut across topics and series. They're useful for technologies and narrower ideas like Redis, caching, retries or observability.

Browse all tags →

The notebook

Latest writing

Stay in the loop

Practical engineering notes, without the inbox noise.

Notes on distributed systems, resilient software, and engineering in the real world - usually once or twice a month.

Unsubscribe anytime. See what you get, or prefer a feed? Subscribe via RSS.