Hi, I’m TS (Not Typescript)

A software engineer who tries to document problems I run into and what I learn from them (hopefully it is useful to you too).

From binary heap to hierarchical timer wheel

Demystifying Tokio's Timer Wheel: How Async Rust Keeps Time at Scale

A deep-dive learning journal tracing a single tokio::time::sleep() from registration to wakeup, and how Tokio achieves O(1) timer management with bitwise math, intrusive lists, and cooperative drivers.

October 25, 2026 · 21 min · Tay Tzu Shieh

What I Got Wrong About Wakers: Building an Async Executor in Rust

Building a custom Rust async runtime from scratch reveals why preemptive mindsets break cooperative executors and how Wakers actually target the correct OS thread.

September 20, 2026 · 5 min · Tay Tzu Shieh

Building a Low-Volume Batch Worker Without a Database: Using S3 as Task Storage

ETags for compare-and-set, an inverted ULID for newest-first ordering, a zero-byte marker as a polling index — turns out that’s enough for a real task queue, no database or queue service needed.

June 23, 2026 · 10 min · Tay Tzu Shieh