Vector Clocks, Explained With a Budget
Why timestamps can't tell which edit came first across machines, how vector clocks can, and the bugs I hit wiring them in.
Writing
Professional insights on software architecture, DevOps, and full-stack development, drawn from real systems built for enterprise clients across banking, compliance, and public sector.
Why timestamps can't tell which edit came first across machines, how vector clocks can, and the bugs I hit wiring them in.
Config, auth, logging and Docker for a small Go app. Each one failed in a way no tutorial warned me about.
Why I'm building a household budget that syncs across a desktop, a laptop and a VPS, and what this series will cover.
Audit, PDF export, cost rollup, compliance check, running new operations across a job card structure without modifying a single job card class. The final episode of the FixIt Pro design patterns series.
Every FixIt Pro inspection follows the same sequence, but the steps differ per trade. Learn how the Template Method locks the algorithm structure while letting subclasses fill in the details, in C# and TypeScript.
Fixed Rate, Hourly Rate, Emergency Surcharge, Contract Rate, with swappable pricing algorithms chosen at runtime without a single conditional. Learn the Strategy pattern in C# and TypeScript.
Draft → Assigned → InProgress → PendingReview → Closed. Learn how the State pattern makes each state responsible for its own valid transitions, and kills the giant switch statement, in C# and TypeScript.
When a job card status changes, the homeowner, supervisor, and billing system all need to know automatically. Learn how the Observer pattern decouples event publishers from subscribers in C# and TypeScript.
Saving and restoring job card state without exposing internals. Learn how the Memento pattern enables undo, snapshots, and state rollback, in C# and TypeScript.