DEV Community

Taylor Wang profile picture

Taylor Wang

Exploring the intersection of AI and web development.

Location Sydney, Australia Joined Joined on 
48-Hour Field Notes: load_dotenv Returned True. The Stale Export Still Won.

48-Hour Field Notes: load_dotenv Returned True. The Stale Export Still Won.

Comments
8 min read
48-Hour Field Notes: APFS Treated Utils.py as utils.py. Linux Did Not.

48-Hour Field Notes: APFS Treated Utils.py as utils.py. Linux Did Not.

Comments
7 min read
48-Hour Field Notes: The Timeout Fired Early. Wall Time Had Stepped.

48-Hour Field Notes: The Timeout Fired Early. Wall Time Had Stepped.

Comments
6 min read
Field Notes: The JSON Parsed on My Laptop Because a Shell Helper Ate the Fences

Field Notes: The JSON Parsed on My Laptop Because a Shell Helper Ate the Fences

Comments
8 min read
48-Hour Field Notes: The Log Was UTF-8. open() Still Used ASCII.

48-Hour Field Notes: The Log Was UTF-8. open() Still Used ASCII.

Comments
7 min read
48-Hour Field Notes: The Shard Map Looked Stable. hash() Salted Every Process.

48-Hour Field Notes: The Shard Map Looked Stable. hash() Salted Every Process.

Comments
7 min read
48-Hour Field Notes: DATABASE_URL Was Empty. setdefault Never Ran.

48-Hour Field Notes: DATABASE_URL Was Empty. setdefault Never Ran.

Comments
7 min read
48-Hour Field Notes: os.replace Looked Atomic Until the Server Raised EXDEV

48-Hour Field Notes: os.replace Looked Atomic Until the Server Raised EXDEV

Comments
8 min read
48-Hour Field Notes: ZoneInfo Resolved America/New_York Only on My Laptop

48-Hour Field Notes: ZoneInfo Resolved America/New_York Only on My Laptop

Comments
7 min read
The Linux Pool Minted Four Identical Tokens. My Laptop Used Spawn.

The Linux Pool Minted Four Identical Tokens. My Laptop Used Spawn.

Comments
8 min read
48-Hour Field Notes: The Child Had the Token. PATH Never Left the Parent.

48-Hour Field Notes: The Child Had the Token. PATH Never Left the Parent.

Comments
7 min read
48-Hour Field Notes: The Pool Hung After Fork. My Laptop Used Spawn.

48-Hour Field Notes: The Pool Hung After Fork. My Laptop Used Spawn.

Comments
7 min read
48-Hour Field Notes: SIGTERM Stopped the Container. atexit Never Touched the Lockfile.

48-Hour Field Notes: SIGTERM Stopped the Container. atexit Never Touched the Lockfile.

Comments
7 min read
48-Hour Field Notes: localhost Resolved. The Listener Never Saw ::1.

48-Hour Field Notes: localhost Resolved. The Listener Never Saw ::1.

Comments
8 min read
48-Hour Field Notes: The Benchmark Timed My Laptop, Not the API

48-Hour Field Notes: The Benchmark Timed My Laptop, Not the API

Comments
8 min read
48-Hour Field Notes: json.loads Never Flagged the Duplicate Key

48-Hour Field Notes: json.loads Never Flagged the Duplicate Key

Comments
8 min read
User Site-Packages Passed Every Import. The Clean Server Had None.

User Site-Packages Passed Every Import. The Clean Server Had None.

Comments
10 min read
48-Hour Field Notes: The Set Snapshot That Only Agreed With My Laptop

48-Hour Field Notes: The Set Snapshot That Only Agreed With My Laptop

Comments
6 min read
The Worker Rejected Zulu Time. My 3.12 Laptop Never Saw the ValueError.

The Worker Rejected Zulu Time. My 3.12 Laptop Never Saw the ValueError.

Comments
7 min read
The Directory Listing Showed café.json. Python Still Raised FileNotFoundError.

The Directory Listing Showed café.json. Python Still Raised FileNotFoundError.

Comments
7 min read
The Task Said Scheduled for 48 Hours. The Event Loop Only Held a Weak Reference.

The Task Said Scheduled for 48 Hours. The Event Loop Only Held a Weak Reference.

Comments
8 min read
Field Notes From a 48-Hour Fight With ThreadPoolExecutor and contextvars

Field Notes From a 48-Hour Fight With ThreadPoolExecutor and contextvars

Comments
9 min read
The Payload Looked Like JSON for 48 Hours. Then a Strict Parser Hit NaN.

The Payload Looked Like JSON for 48 Hours. Then a Strict Parser Hit NaN.

Comments
7 min read
I Trusted lru_cache for 48 Hours. The Rotated Token Never Left Hour Zero.

I Trusted lru_cache for 48 Hours. The Rotated Token Never Left Hour Zero.

Comments
7 min read
The Probe Stayed Green for 48 Hours. The Pool Had Been Dead Since Boot.

The Probe Stayed Green for 48 Hours. The Pool Had Been Dead Since Boot.

Comments
7 min read
I Trusted the IDE Import for 48 Hours. sys.path[0] Was an Empty String.

I Trusted the IDE Import for 48 Hours. sys.path[0] Was an Empty String.

Comments
9 min read
The Deadline Used time.time(). Then the Laptop Slept.

The Deadline Used time.time(). Then the Laptop Slept.

Comments
9 min read
I Trusted open() for 48 Hours. The Remote Locale Still Spoke ASCII.

I Trusted open() for 48 Hours. The Remote Locale Still Spoke ASCII.

Comments
8 min read
I Trusted urljoin for 48 Hours. Every Request Lost the /v1 Prefix.

I Trusted urljoin for 48 Hours. Every Request Lost the /v1 Prefix.

Comments
6 min read
Field Notes: 48 Hours of Green Tests, One Clean Interpreter, and a Shadowed Import

Field Notes: 48 Hours of Green Tests, One Clean Interpreter, and a Shadowed Import

Comments
9 min read
The Poller Was Fine on My Laptop. The Deadline Was Reading the Wrong Clock.

The Poller Was Fine on My Laptop. The Deadline Was Reading the Wrong Clock.

Comments
8 min read
I Trusted the Generated Client for 48 Hours. extra=allow Hid the Schema Drift.

I Trusted the Generated Client for 48 Hours. extra=allow Hid the Schema Drift.

Comments
8 min read
I Trusted os.replace for 48 Hours. The Dest Path Lived on Another Mount.

I Trusted os.replace for 48 Hours. The Dest Path Lived on Another Mount.

Comments
7 min read
I Sorted One Assertion for 48 Hours. The Cache Key Still Followed Set Order.

I Sorted One Assertion for 48 Hours. The Cache Key Still Followed Set Order.

Comments
8 min read
I Trusted curl for 48 Hours. Python Dialed ::1 Anyway.

I Trusted curl for 48 Hours. Python Dialed ::1 Anyway.

Comments
7 min read
I Blamed the Silent Worker for 48 Hours. The Logging Lock Survived fork()

I Blamed the Silent Worker for 48 Hours. The Logging Lock Survived fork()

Comments
8 min read
I Padded sleep() for 48 Hours. The Event Loop Never Saw the Event

I Padded sleep() for 48 Hours. The Event Loop Never Saw the Event

Comments
8 min read
48-Hour Field Notes: connect() Hung Because getaddrinfo Handed Me IPv6 First

48-Hour Field Notes: connect() Hung Because getaddrinfo Handed Me IPv6 First

Comments
9 min read
I Trusted hash() for 48 Hours. Two Workers Never Shared a Cache Key.

I Trusted hash() for 48 Hours. Two Workers Never Shared a Cache Key.

Comments
8 min read
I Raised ulimit for 48 Hours. TIME_WAIT Had Already Eaten the Port Range

I Raised ulimit for 48 Hours. TIME_WAIT Had Already Eaten the Port Range

Comments
8 min read
I Blamed Sticky Sessions for 48 Hours. The Pool Still Held the Old Socket.

I Blamed Sticky Sessions for 48 Hours. The Pool Still Held the Old Socket.

Comments
9 min read
I Blamed urllib for 48 Hours. A Local http.py Was Sitting on sys.path.

I Blamed urllib for 48 Hours. A Local http.py Was Sitting on sys.path.

Comments
7 min read
I Trusted json.dumps for 48 Hours. The Idempotency Hash Followed Insertion Order.

I Trusted json.dumps for 48 Hours. The Idempotency Hash Followed Insertion Order.

Comments
7 min read
I Trusted Git for 48 Hours. Python Still Imported the Wheel.

I Trusted Git for 48 Hours. Python Still Imported the Wheel.

Comments
7 min read
The Watcher Raised ENOSPC for 48 Hours. df Still Showed Free Blocks.

The Watcher Raised ENOSPC for 48 Hours. df Still Showed Free Blocks.

Comments
6 min read
I Debugged a Silent Collector for 48 Hours. inotify Still Owned the Old Inode.

I Debugged a Silent Collector for 48 Hours. inotify Still Owned the Old Inode.

Comments
6 min read
I Chased a Missing Fixture for 48 Hours. Linux Stored NFC. My Mac Stored NFD.

I Chased a Missing Fixture for 48 Hours. Linux Stored NFC. My Mac Stored NFD.

Comments
8 min read
I Chased a Hung Fetcher for 48 Hours. getaddrinfo Waited on AAAA.

I Chased a Hung Fetcher for 48 Hours. getaddrinfo Waited on AAAA.

Comments
9 min read
48-Hour Field Notes: The Patch Passed Locally Because TZ Lived in My Shell

48-Hour Field Notes: The Patch Passed Locally Because TZ Lived in My Shell

Comments
7 min read
I Blamed the CSV for 48 Hours. The Clean Box Still Spoke POSIX.

I Blamed the CSV for 48 Hours. The Clean Box Still Spoke POSIX.

Comments
7 min read
I Trusted /health for 48 Hours. The Worker Still Held the Lock.

I Trusted /health for 48 Hours. The Worker Still Held the Lock.

Comments
9 min read
48-Hour Field Notes: The Helper Worked in My Terminal. /bin/sh Was dash.

48-Hour Field Notes: The Helper Worked in My Terminal. /bin/sh Was dash.

Comments
9 min read
I Debugged a Green Suite for 48 Hours. fork Had Already Copied the Mock.

I Debugged a Green Suite for 48 Hours. fork Had Already Copied the Mock.

Comments
8 min read
48-Hour Field Notes: Parent Health Stayed Green After Fork Copied a Held Lock

48-Hour Field Notes: Parent Health Stayed Green After Fork Copied a Held Lock

Comments
7 min read
I Blamed ZoneInfo for 48 Hours. The Slim Box Had No tzdata.

I Blamed ZoneInfo for 48 Hours. The Slim Box Had No tzdata.

Comments
7 min read
I Chased an Empty Log for 48 Hours. lsof Showed a Deleted Inode.

I Chased an Empty Log for 48 Hours. lsof Showed a Deleted Inode.

Comments
7 min read
48-Hour Field Notes: Golden-File Tests Against an LLM Endpoint Never Stopped Drifting

48-Hour Field Notes: Golden-File Tests Against an LLM Endpoint Never Stopped Drifting

Comments
7 min read
Field Notes From 48 Hours of SQLITE_BUSY: The Deferred Transaction Was the Lock Fight

Field Notes From 48 Hours of SQLITE_BUSY: The Deferred Transaction Was the Lock Fight

Comments
7 min read
48-Hour Field Notes: Catching a Flake That Only Fails on Someone Else's Machine

48-Hour Field Notes: Catching a Flake That Only Fails on Someone Else's Machine

Comments
5 min read
48 Hours Chasing a Duplicate Nightly Job: SIGTERM Was Landing on the Wrapper

48 Hours Chasing a Duplicate Nightly Job: SIGTERM Was Landing on the Wrapper

Comments
6 min read
loading...