1 published part
Building PulseOps
See why IMemoryCache breaks down across multiple app instances, then move shared cache state to Redis and wire it with .NET Aspire.
Engineering notes
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
Connected posts in a deliberate reading order. Best when you want to follow an idea from start to finish.
1 published part
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
Event-driven systems can drop messages while every component reports success. How acknowledgment boundaries hide loss, and where to put them.
2 published parts
5 published parts
3 published parts
See how HTTP/1.1 frames streaming responses into chunks, inspect the raw bytes with curl, and understand what changes in HTTP/2 and HTTP/3.
5 published parts
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
Use topics when you know the general engineering area, such as .NET, Kubernetes or distributed systems.
Specific labels
Tags cut across topics and series. They're useful for technologies and narrower ideas like Redis, caching, retries or observability.
The notebook

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

A production-only SVG failure exposed a hidden Sharp dependency, a broken fallback, and why I replaced the rasteriser with resvg WASM.

Three replicas raced the same Prisma migration. A PostgreSQL advisory lock coordinator fixes it when your platform cannot run a pre-deploy Job.

Running agent jobs in parallel is not free. Measuring the real memory, process and shared-state costs of concurrency in an agentic coding SDK.

Giving an AI agent access to a repository takes only a few lines of code. Giving it useful access without silently approving every command is the real…

In the .NET tutorial, we built a repository agent that could inspect a checkout, propose a one-line repair, run its tests, and report the result…

Seven years, 56 posts and 463,000 pageviews. Which articles actually earned the traffic, what the numbers hide, and what I would do differently.

Shadow reads, a normalized comparison and a staged cutover: how to replace a data path in production without a single big-bang release.