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: I Raised Concurrency Until the Queue, Not the CPU, Told Me to Stop

48-Hour Field Notes: I Raised Concurrency Until the Queue, Not the CPU, Told Me to Stop

Comments
6 min read
48-Hour Field Notes: My Client Timed Out, the Server Finished the Work, and My Batch Ran Twice

48-Hour Field Notes: My Client Timed Out, the Server Finished the Work, and My Batch Ran Twice

Comments
5 min read
My Laptop and the Free Server Disagreed About Which Day It Was

My Laptop and the Free Server Disagreed About Which Day It Was

Comments 1
6 min read
The Prompt Canary: Catching Silent Input Truncation Before Your Nightly Job Ships Bad Output

The Prompt Canary: Catching Silent Input Truncation Before Your Nightly Job Ships Bad Output

Comments
6 min read
My Retry Wrote the Row Twice, and the Idempotency Key Was the Bug

My Retry Wrote the Row Twice, and the Idempotency Key Was the Bug

Comments 1
6 min read
48-Hour Field Notes: My Resume Saved a Position Instead of a Record, and Nine Inputs Went Missing

48-Hour Field Notes: My Resume Saved a Position Instead of a Record, and Nine Inputs Went Missing

Comments
6 min read
48-Hour Field Notes: My Per-Call Timeout Was Longer Than the Job Window Itself

48-Hour Field Notes: My Per-Call Timeout Was Longer Than the Job Window Itself

Comments
5 min read
48-Hour Field Notes: My Readiness Check Returned 200, Then the Batch Hit a Cold Model Server

48-Hour Field Notes: My Readiness Check Returned 200, Then the Batch Hit a Cold Model Server

Comments
6 min read
48-Hour Field Notes: I Built a Replay Harness Before Trusting a Free Model in a Nightly Job

48-Hour Field Notes: I Built a Replay Harness Before Trusting a Free Model in a Nightly Job

Comments
5 min read
Nine Probes I Run Before a Model-Backed Batch Job Leaves My Laptop

Nine Probes I Run Before a Model-Backed Batch Job Leaves My Laptop

Comments
5 min read
48-Hour Field Notes: I Compared Two Runs Across Two Days Without Checking Which Model Served Them

48-Hour Field Notes: I Compared Two Runs Across Two Days Without Checking Which Model Served Them

Comments
6 min read
48-Hour Field Notes: The Retry Loop Cost More Than the Model Did

48-Hour Field Notes: The Retry Loop Cost More Than the Model Did

Comments
7 min read
My Worker Exited 0 With Jobs Still Marked "Running", and Nothing Retried Them

My Worker Exited 0 With Jobs Still Marked "Running", and Nothing Retried Them

Comments
6 min read
48-Hour Field Notes: My Output File Looked Complete Because I Streamed Straight Into It

48-Hour Field Notes: My Output File Looked Complete Because I Streamed Straight Into It

Comments
6 min read
48-Hour Field Notes: I Ran a Tiny AI Code-Review Job on Free Model Access and a Free Server

48-Hour Field Notes: I Ran a Tiny AI Code-Review Job on Free Model Access and a Free Server

Comments
6 min read
48-Hour Field Notes: My Chunker Cut JSON in Half, and Every Retry Made It Worse

48-Hour Field Notes: My Chunker Cut JSON in Half, and Every Retry Made It Worse

Comments 1
7 min read
48-Hour Field Notes: Every Unparseable Alert Became 'Low' and Nothing Paged Me for 48 Hours

48-Hour Field Notes: Every Unparseable Alert Became 'Low' and Nothing Paged Me for 48 Hours

Comments
6 min read
Two Duplicate Rows in 48 Hours: My Unique Index Treats NULL as a New Value

Two Duplicate Rows in 48 Hours: My Unique Index Treats NULL as a New Value

Comments
5 min read
48-Hour Field Notes: My Latency Numbers Were Wrong Because I Started the Clock in the Wrong Place

48-Hour Field Notes: My Latency Numbers Were Wrong Because I Started the Clock in the Wrong Place

Comments
7 min read
48-Hour Field Notes: My 30-Second Timeout Didn't Cancel Anything, and the Server Logged Three Requests

48-Hour Field Notes: My 30-Second Timeout Didn't Cancel Anything, and the Server Logged Three Requests

Comments
6 min read
48-Hour Field Notes: My Homemade Eval Set Was Scoring My Prompt, Not the Model

48-Hour Field Notes: My Homemade Eval Set Was Scoring My Prompt, Not the Model

Comments
6 min read
48-Hour Field Notes: I Ramped Worker Threads From 1 to 12 and Watched Throughput Fall Off a Cliff at 8

48-Hour Field Notes: I Ramped Worker Threads From 1 to 12 and Watched Throughput Fall Off a Cliff at 8

Comments
6 min read
48-Hour Field Notes: I Crash-Tested My Resumable Batch Job Before Trusting a Free Box

48-Hour Field Notes: I Crash-Tested My Resumable Batch Job Before Trusting a Free Box

Comments
6 min read
48-Hour Field Notes: My Queue Drained to Zero and the Work Wasn't Done

48-Hour Field Notes: My Queue Drained to Zero and the Work Wasn't Done

Comments
6 min read
48-Hour Field Notes: My Prompt Budget Was in Characters, and the Overflow Never Raised

48-Hour Field Notes: My Prompt Budget Was in Characters, and the Overflow Never Raised

Comments
5 min read
48-Hour Field Notes: I Batched Two Items Per Call and Lost Track of Which Answer Belonged to Which Input

48-Hour Field Notes: I Batched Two Items Per Call and Lost Track of Which Answer Belonged to Which Input

Comments
5 min read
48-Hour Field Notes: The Model Was Fast — My Connection Setup Was the Queue

48-Hour Field Notes: The Model Was Fast — My Connection Setup Was the Queue

Comments
5 min read
48-Hour Field Notes: My Overnight Batch Forecast Used the Mean and Ignored the Restart Tax

48-Hour Field Notes: My Overnight Batch Forecast Used the Mean and Ignored the Restart Tax

Comments
5 min read
48-Hour Field Notes: My Free Box Looked Slow Until I Logged the Gap Between Requests

48-Hour Field Notes: My Free Box Looked Slow Until I Logged the Gap Between Requests

Comments 1
6 min read
48-Hour Field Notes: I Gated a Free-Model Batch Job on Agreement Rate, Not on Schema

48-Hour Field Notes: I Gated a Free-Model Batch Job on Agreement Rate, Not on Schema

Comments
4 min read
48-Hour Field Notes: My Stream Died Mid-Object and I Re-Asked the Model — That Was the Bug

48-Hour Field Notes: My Stream Died Mid-Object and I Re-Asked the Model — That Was the Bug

Comments
5 min read
48-Hour Field Notes: The Free Box Restarted, So I Made Every Model Call a File on Disk

48-Hour Field Notes: The Free Box Restarted, So I Made Every Model Call a File on Disk

Comments
6 min read
My Model Picker Only Checked That the Name Existed. Three Probes Said Otherwise.

My Model Picker Only Checked That the Name Existed. Three Probes Said Otherwise.

Comments
7 min read
48-Hour Field Notes: My Job Had 30 Seconds. I Gave the Model 8 and Kept the Rest.

48-Hour Field Notes: My Job Had 30 Seconds. I Gave the Model 8 and Kept the Rest.

Comments
6 min read
48-Hour Field Notes: One Timeout Value Hid Two Different Failures

48-Hour Field Notes: One Timeout Value Hid Two Different Failures

Comments
7 min read
48-Hour Field Notes: My Oldest Answer Won the Cache Because I Trusted Arrival Order

48-Hour Field Notes: My Oldest Answer Won the Cache Because I Trusted Arrival Order

Comments
5 min read
48-Hour Field Notes: I Built a Boot Beacon Because My Free Server Never Said Goodbye

48-Hour Field Notes: I Built a Boot Beacon Because My Free Server Never Said Goodbye

Comments
6 min read
48-Hour Field Notes: Every Restart Restarted My Batch Job, So I Added Leases

48-Hour Field Notes: Every Restart Restarted My Batch Job, So I Added Leases

Comments
6 min read
48-Hour Field Notes: The Job Died at Minute 47 — Now It Leaves a Heartbeat Ledger

48-Hour Field Notes: The Job Died at Minute 47 — Now It Leaves a Heartbeat Ledger

Comments
6 min read
48-Hour Field Notes: A Crash Mid-Batch Proved My Queue Had No Memory

48-Hour Field Notes: A Crash Mid-Batch Proved My Queue Had No Memory

Comments
6 min read
48-Hour Field Notes: I Stopped Asking "Did It Finish?" and Started Hashing Inputs

48-Hour Field Notes: I Stopped Asking "Did It Finish?" and Started Hashing Inputs

Comments
5 min read
48-Hour Field Notes: Same Prompt, Same Code, Different Answer — So I Built a Replay Cassette

48-Hour Field Notes: Same Prompt, Same Code, Different Answer — So I Built a Replay Cassette

Comments
7 min read
48-Hour Field Notes: My JSON Check Passed Every Run — Then I Counted the Keys

48-Hour Field Notes: My JSON Check Passed Every Run — Then I Counted the Keys

Comments 1
7 min read
48-Hour Field Notes: I Put a Gate in Front of AI-Suggested Patches — Four Failures It Caught

48-Hour Field Notes: I Put a Gate in Front of AI-Suggested Patches — Four Failures It Caught

Comments
6 min read
48-Hour Field Notes: I Made My Batch Job Ask Permission Before Touching a Free Model Endpoint

48-Hour Field Notes: I Made My Batch Job Ask Permission Before Touching a Free Model Endpoint

Comments
8 min read
48-Hour Field Notes: The Free Model Returned Valid JSON, and My Schema Said Nothing

48-Hour Field Notes: The Free Model Returned Valid JSON, and My Schema Said Nothing

Comments
7 min read
48-Hour Field Notes: My Replay Cassette Kept Passing While the Live Call Failed

48-Hour Field Notes: My Replay Cassette Kept Passing While the Live Call Failed

Comments 1
5 min read
48-Hour Field Notes: My Stream Ended Without [DONE] and the Client Called It Success

48-Hour Field Notes: My Stream Ended Without [DONE] and the Client Called It Success

Comments
5 min read
48-Hour Field Notes: Exit Code 137, a Zero-Byte Output File, and the Pipeline That Swallowed Both

48-Hour Field Notes: Exit Code 137, a Zero-Byte Output File, and the Pipeline That Swallowed Both

Comments 1
5 min read
48-Hour Field Notes: I Built a Token Ledger Before Trusting Any Free Tier

48-Hour Field Notes: I Built a Token Ledger Before Trusting Any Free Tier

Comments
5 min read
48-Hour Field Notes: Exit Code 137 at Hour 31 Was Not a Bug in My Code

48-Hour Field Notes: Exit Code 137 at Hour 31 Was Not a Bug in My Code

Comments
6 min read
48-Hour Field Notes: The Batch Worker Vanished and My Re-Run Redid Every Item

48-Hour Field Notes: The Batch Worker Vanished and My Re-Run Redid Every Item

Comments 1
6 min read
48-Hour Field Notes: My p95 Looked Healthy Because I Averaged Four Percentiles

48-Hour Field Notes: My p95 Looked Healthy Because I Averaged Four Percentiles

Comments
7 min read
48-Hour Field Notes: My Race Condition Vanished on a Free Server — It Was Just Slower

48-Hour Field Notes: My Race Condition Vanished on a Free Server — It Was Just Slower

Comments
5 min read
48-Hour Field Notes: My Batch Job Trusted Local Disk, and a Restart Re-Bought Every Token

48-Hour Field Notes: My Batch Job Trusted Local Disk, and a Restart Re-Bought Every Token

Comments
6 min read
48-Hour Field Notes: My Free Server Kept the Process Alive and Quietly Dropped the State

48-Hour Field Notes: My Free Server Kept the Process Alive and Quietly Dropped the State

Comments
6 min read
48-Hour Field Notes: `kill -0` Said My Batch Job Was Alive. The PID Belonged to Someone Else.

48-Hour Field Notes: `kill -0` Said My Batch Job Was Alive. The PID Belonged to Someone Else.

Comments
5 min read
48-Hour Field Notes: My Stream Ended at [DONE] and the File Was Still Half a Function

48-Hour Field Notes: My Stream Ended at [DONE] and the File Was Still Half a Function

Comments
6 min read
48-Hour Field Notes: It Passed Locally and Died Remotely — Eight Environment Facts I Now Diff First

48-Hour Field Notes: It Passed Locally and Died Remotely — Eight Environment Facts I Now Diff First

Comments
8 min read
48-Hour Field Notes: I Benchmarked a Cold Endpoint and Called It Compute

48-Hour Field Notes: I Benchmarked a Cold Endpoint and Called It Compute

Comments 1
6 min read
loading...