Singleton

Singleton is one of the simplest patterns but the canonical anti-pattern debate. The decision to bundle single-instance guarantee with global access into one pattern causes tight coupling and test difficulty. DI is the general alternative that separates the two intents.

January 28, 2024 · 5 min read

Dependency Injection — The Hierarchy of DIP, IoC, and DI

DIP (principle), IoC (pattern), and DI (technique) sit at different levels of abstraction. The hierarchy must be clear before framework features and design principles can be told apart.

January 25, 2024 · 6 min read

Cache Refresh Optimization Retrospective

How I reduced network costs and enabled instance downscaling by switching from full cache refresh to incremental refresh for campaign configuration data.

January 15, 2024 · 3 min read

Optimistic and Pessimistic Locking

A transaction gives atomicity, a lock gives serialization — they aren’t substitutes. How pessimistic and optimistic locking cover the Lost Update that an isolation level’s plain reads don’t, and how to choose between them.

October 1, 2023 · 6 min read

What Isolation Levels Actually Prevent

A transaction isolation level is a policy choice about which anomalies to allow. The anomalies each ANSI level prevents, and how InnoDB’s MVCC and Repeatable Read behave differently from the standard.

September 15, 2023 · 7 min read

What RDB Transaction ACID Actually Guarantees

What each of the four ACID properties actually guarantees in an RDB transaction. A/C/D are relatively clear guarantees, but only I has ’levels’ — the gateway to the correctness vs. concurrency trade-off.

September 1, 2023 · 4 min read

Two-Layer Control Loop for Ad Budget Pacing — Retrospective

A retrospective on moving ad budget pacing from a fixed-rule scheme to a two-layer control loop — per-campaign learning sets the baseline, real-time correction absorbs drift.

August 21, 2023 · 3 min read

rust-server

A record of implementing the multithreaded HTTP server from Rust Book Chapter 20, experiencing how ownership and concurrency safety are enforced at the type level.

March 13, 2022 · 4 min read

TCP and UDP

Two transport protocols that backend developers encounter constantly. A summary of TCP and UDP — connection establishment, reliability guarantees, flow/congestion control mechanisms, and selection criteria.

March 1, 2022 · 9 min read