Skip to main content -
The Urgent Bug Report That Was Two Years Old
-
The Whole Feature Was Built and Verified in Sandbox, Then Prod Said E00044: CIM Not Enabled
-
The Ambient-Global Bug: When "Current Account" Is a Mutable Global Your Whole App Reads
-
314 broken stats pages and one bad cursor
-
Edit a label, get " back: the HTML-entity round-trip bug
-
A three-pass AI code review that kept finding real bugs
-
I overwrote a live production mailer because I assumed an ID was free
-
The Button Clicked and Nothing Happened: IIS Ate My JSON Error and Handed Back HTML
-
Why Request.Form Is Empty: FormData vs URLSearchParams in Classic ASP AJAX
-
An Index Seek Can Still Read Far More Than You Expect
-
The reuse story died, so I shipped a new cart instead
-
Avoid Unnecessary Date String Round Trips
-
A var EDIT_DATABASE = false Sat in a Branch for 2.5 Years. Then We Shipped It.
-
The compile gate nobody wrote down
-
The bug was wearing a trench coat
-
I had to stop letting the package tier pretend it was the product
-
A 25-Second Admin Screen Meant We Trusted the Wrong Query
-
The bug wasn't the upload, it was the URL contract
-
The bug wasn't the upload, it was the URL contract
-
The Create-Event Dialog Had to Die
-
The Real Fix Was Starting Over With a Smaller Blast Radius
-
The Bug Was Not in the Mobile UI
-
The Fastest Legacy Hotfix Is Often a Diagnostic
-
The Pricing Rewrite Only Got Real When I Wrote the Gates
-
Classic ASP Doesn't Care That It's a Comment: The Script-Delimiter Collision
-
Why schedules broke around March 4, 1973: a getTime() digit-count sort bug
-
A `?prototype=1` Flag and 23 Commits: Prototyping a Redesign in Production Code
-
I Almost Built an Entitlement System for a Feature That Was Already a Page
-
The Banner Wasn't a Safari Bug, It Was an Empty Frame
-
The Page Was Performing a Ceremony, Not a Job
-
The CSS Bug That Was Actually a Delete Bug
-
The new door was already in the building
-
The feature was fine. First-time state was the real bug.
-
A 47,490-line JavaScript file and what it tells you about a profitable legacy app
-
The ambient-global bug: when \"current account\" is a mutable global 100 call sites read
-
The ambient-global bug: when current account is a mutable global your whole app reads
-
GetAccountFilter and the Case for an Explicit Context You Can Override
-
Hand-rolled hydration: passing server state to the browser with no framework
-
A New Feature Is the Best Fuzz-Tester for Your Existing Data Model
-
Carry Your State in the URL, Then Actually Carry It: The Dropped Query Param
-
A Client Tree-Walk That Was Really a Server Business Rule
-
The Duplicated-Derivation Bug: One Fragile Expression in Four Queries
-
Teaching the AI to Find the Real Source File: .cursor/rules as a Compiled-Asset Map
-
'Newest First' Is a Re-Priority Problem, Not an ORDER BY
-
PayPal Pay-Later Messages Won't Re-Render, So Destroy the Node and Recreate It
-
Shipping a Whole Analytics Suite Into a Legacy ASP Admin
-
Six Production Releases in One Day: Anatomy of a Hotfix Train
-
A Tiptap Editor That's Invisible Until You Add ProseMirror's Base CSS
-
clipboard.js Named Its Global 'Clipboard'. So Did the Browser. Boom.
-
Cache-Busting With No Build Pipeline: Date-Stamped Asset Filenames
-
A fluent DOM builder for legacy ASP: modernize without a rewrite
-
Response.Redirect Blew Up the Error Page. Server.Transfer Didn't.
-
Server-Side JavaScript on Classic ASP in 2026: Prototype Pages and the DB Helper Pattern
-
Stripe Needs a Post-Back, Authorize.Net Doesn't: One Page, Two Flow Shapes
-
A Trusted Gateway POST Is Still a Public Endpoint
-
x_trans_id Is Not Your Invoice Number: An Authorize.Net Direct-Post Bug
-
A code-first schema audit: keeping a 1,477-line ASP file in sync with a 14,536-column DB
-
N Drifting Copies Share One Bug: The Legacy Consolidation Thesis