Theme
Running the work
How a small team decides, plans, writes things down, supports customers and keeps work from being lost.
62 posts by DX, in two lanes: plain-language stories and the technical build log.
Everyday lane
Plain-language stories. No jargon. 19 posts.
Start here
Why the Activity Log Was the Wrong First Screen
A busy screen can show every recent activity and still leave people unsure where to start. A useful work view puts the next point of human attention ahead of the activity log.
Dashboards and status that answer one question
-
What Four Commits and a Collapsible Details Section Did to Our Task List
A crowded list became easier to use when four gray labels were replaced by one sentence about what needed attention.
-
165 Lines Added, 145 Removed, and the Page Barely Changed
A crowded item page became easier to use when its first screen answered the one question people came to ask.
-
Two Readers Were Hiding Inside Every Status Note I Wrote
We reread a comment we'd written ourselves and had to stop and decode it. We had written it for the wrong reader.
-
Why Our Flagged Items Queue Grew Every Single Week
A pile of things flagged for review only counts as trustworthy once it's empty. When the people running it are short on time, that rule turns into a second job nobody can finish.
Keeping work lists and statuses honest
-
Why Our Queue Looked Busy While Most Active Items Were Already Done
A task list can create stress long after its labels stop reflecting what is actually happening. Before asking AI to prioritize work, make sure the underlying signals still mean what you think they mean.
-
Filing Systems That Make Everyday Saves Harder
If people need to debate where a note, decision, or piece of work belongs, the organization system is asking them to solve the same problem over and over.
-
Why the Activity Log Was the Wrong First Screen
A busy screen can show every recent activity and still leave people unsure where to start. A useful work view puts the next point of human attention ahead of the activity log.
-
When a Familiar Screen Makes a Simple Job Harder
Repeated fixes can be a sign that the work has outgrown the way it is being presented. Before improving another detail, ask whether the process still fits the task people need to complete.
-
Why the existing title style already had the controls we needed
A request for a more distinctive title was solved by revealing a trusted option that already existed instead of building a separate one.
Deferring, triaging and recording decisions
-
Why a Polished AI Note Looked Approved Before Anyone Approved It
A useful explanation can still be hard to act on if the decision, owner, and next step are buried in conversation instead of made visible to the people who need them.
-
What a Handoff Note Needs Before Someone Signs Off
When a project pauses, the next person should not have to reconstruct the last decision from old messages and half-finished notes. A useful handoff turns restarting into a lookup.
-
Stop Making People Rebuild Context Before They Decide
When relevant information lives in separate places, a simple work decision becomes an investigation. Bring the evidence together so the responsible person can review it without losing the thread.
Turning conversations into a backlog
-
What 270 proposed tasks looked like when we read our chat back
We ran a whole venture out of a chat channel. The plan was never missing. It was just sitting there unshaped, and the answer to 'where are we' was always to scroll.
-
What the Checker Caught First in a 355-Session Backfill
Breaking 355 past work sessions into 1,748 separately tracked pieces of work replaced a weekly habit of trying to remember what sounded worth reporting.
-
The money logic review that happened in the wrong place
A reviewer answered the hardest questions correctly in a ticket comment instead of the structured tool built for exactly that job. The tool wasn't broken. It just wasn't where the answer was already happening.
-
The Wrong Address Variant Nobody Had Typed Until Launch Week
Two people had a plan, a shared folder, and a lot of good conversation. None of that answered whether the thing they were building actually worked yet.
Measuring real progress versus the story
-
The Stale Audit Figure Hiding in a 4 AM Restart Document
A months-old figure went into a new planning document as settled truth. It read exactly as current as a number checked five minutes earlier, until we checked.
-
Memory Ceiling Dropped from 40.91 GB to 36.66 GB After Reboot
A maintenance plan said about three minutes, then twenty to forty-five. The real run was two restarts of about two minutes each, and the second one was not in the plan at all.
-
Our Yearly Total Sat Near 900 Until Something Arrived
A late-night look at four years of saved changes showed that the biggest change was not simply getting more done.
Technical lane
The build log: the logs, the code, the fix. 43 posts.
Start here
Three labels for 113 technical posts, and what each one decides
We thought the bottleneck was source data. The missing piece was a plain-language layer for business owners and early AI adopters.
Writing posts that include every reader
-
Three labels for 113 technical posts, and what each one decides
We thought the bottleneck was source data. The missing piece was a plain-language layer for business owners and early AI adopters.
-
Why Rewriting a Draft Twice Left Us With the Same Forty-Five Lines
Two rewrites in, the post still had a forty-five line code block in it, and it still read like documentation.
-
Two Posts About 956 Certificates Sat in the Pipeline Together
One post about a 956-certificate migration was already live. A second post about the same migration, under a different title, was sitting in review behind it.
-
When Yesterday's Design Decision Kills Today's Work
Our dashboard said 366 of our 757 published posts had no plain-language retelling, so we asked an assistant to build a nightly job for the blog.
Dashboards and status that answer one question
-
What a Row Showing Types, Domain, Value Badge and Timestamp Cost Us
We deleted four metadata badges from a list row and replaced them with one state-aware sentence like 'Waiting on you'. A list view serves one decision per row.
-
A 165 Added, 145 Removed Diff That Barely Changed the Line Count
Four commits in two hours to hide a wall of fields behind one Details seam. Progressive disclosure is a convergence you iterate into, not a one-time call.
-
Two readers, one status field, and a decoding tax
We were scanning a ticket we'd worked days earlier when we hit our own comment: "Starting Phase 1 (scaffold + dry-run on 1 thread per provider). Spend gate holds for the full run." We wrote that.
-
Every action endpoint returns HTTP 200 and carries its failure in the body
AI made ticket analysis nearly free, which exposed the cost of a read-only backlog page. Inline verbs turned tab-thrash into one-click decisions.
-
Sessions Scoring Under 0.6 Pile Up Forever Without One Rule
The reconciliation queue was another model's idea before it became our problem. Low-confidence classification, a parser that choked on an odd export, a session tagged to the wrong epic.
-
We Almost Rebuilt Phase 0 Scaffolding That Was Already on Disk
"Where do we stand on the migration?" We opened the epic to answer that, and its own phase table said Not started across every phase. Phase 0, Phase A, all of it. Not started.
-
Grouping Open Items by Creation Source Changed Our Total
On 2026-09-23 a design review counted every item our work tracker had ever created. 3,096 of 3,144 were ticket mentions, not work. Only 48 had been written on purpose.
-
What nudge_top1_count Tells You That a Status Field Can't
The queue said ten items. Four of them were real.
-
Ranking 75 Tickets on Story Points and customfield_10104
82 tickets sat in "Highest" in the JIRA queue for a legacy SaaS product, assigned to us, unresolved. When we pulled the full history on them, 75 had been re-stamped to Highest on the same day.
-
Turning One Night of Ticket Sorting Into /queue groom
A teammate's queue had 22 tickets on it. Five were small and ready to pull. The other 17 had been sitting in Inbox long enough that nobody remembered why they were still there.
-
Why 889 of 927 JIRA Comments Never Needed a Human Reader
The hooks went in clean. The 927 tickets didn't.
Keeping work lists and statuses honest
-
When a Priority Marker Pretended to Be a Status Field
A priority label can become a history marker. The fix is restoring a clear difference between work in progress, planned work, and the links that keep unfinished work findable, not a bulk cleanup.
-
One mixed QA ticket can slow down every independent fix
A single QA report may contain several different kinds of work. Splitting independent findings gives each one a clear owner, scope, verification path, and release decision, provided the parent retains an auditable map.
-
A VARCHAR(64) Column and a Week of Clean Architecture
The kernel's v3 reached production with 201 passing tests and a clean architecture. A non-technical user invalidated the interaction model in ten minutes.
-
3 Hours 40 Minutes Into a Prototype Nobody Asked For
Three hours and 40 minutes into an event Accounts-tab prototype, we had a working branch that deserved to be deleted.
-
Why a distinctive title needed fewer options, not another display mode
A feature request can look like a request for a new branch of the product. Often it is a request to expose a capability that already has a trusted save path, visibility rule, and user interface.
-
Nothing on the Screen Said the Setting Was Stored
The settings form had no Save button, and support kept hearing the same question: was the change saved?
Deferring, triaging and recording decisions
-
What a deferred decision needs besides a threshold
Defer a reversible capability with a named, measurable trigger. Pull a decision forward when waiting expands security, privacy, compliance, data-integrity, contractual, or migration risk. Good timing is an explicit policy, not a hunch.
-
Why Our Deferred and Waiting Items Shared a Single Status
A single backlog label hid two different conditions: deliberate deferral and an external dependency. Making next-action ownership, follow-up, review timing, and rationale explicit produced a more truthful queue and reduced repeated context reconstruction.
-
The dormant-project tripwire: make the unknown visible
A small project inventory stopped repositories and leftover automation from disappearing from view. The important choice was simple: unclassified work had to show up as a decision, not an omission.
-
What a Backlog Triage Session Spent Before Judging Anything
A backlog becomes hard to manage when every decision requires rebuilding context across disconnected tools. A focused decision surface can reduce that friction, provided its actions remain authorized, auditable, reversible where possible, and grounded in current evidence.
-
Where a Git Repository Stops Being Enough for Publishing
A folder of Markdown remains a good source of truth for many publishing workflows. As concurrent contributors, approvals, structured review, traceability, and governed automation grow, an explicit state model and scoped authority become more important than the storage technology itself.
-
What a Review Brief Needs Before Anyone Reads the Draft
A second review adds value when its scope, evidence, limitations, recommendations, dissent, risk acceptance, follow-up owners, and re-review triggers are explicit. AI can assist with bounded analysis, but it does not replace independent evidence or accountable human judgment.
-
When the System Cannot Know Intent, Make the Decision Explicit
Some write actions have more than one legitimate outcome, but the deciding fact is not in the data. A trustworthy system does not silently guess: it explains the conflict, offers only authorized and supported choices, validates the decision on the server, and records the result.
-
What Happens When a Shared Identifier Becomes the Junk Drawer
A name that many external systems will copy is not a cosmetic decision. The useful review asks whether the identifier is durable, clear in the moment of use, scoped to one purpose, and unlikely to collide with future work.
Turning conversations into a backlog
-
190 Units Became 17 Tasks and 6 Epics From Chat History
We run a shared venture out of a Discord channel. Decisions get made there, ideas get dropped there, someone asks a question and three tangents follow before anyone answers it.
-
Revision 13 to revision 40 in one evening of group chat
A day of group chat turned into board state instead of a summary. A new idea landed with its own evidence. Two research questions got answered before the next conversation even started.
-
git branch -d Refused a Merged Branch and Git Was Right
One manual ticket close surfaced seven papercuts, and each one became a hardcoded default or halt condition in the tool. A friction list is a spec.
-
Why Our Beats Table Never Shipped Without Distributions and Outcomes
The outcomes table ships in wave one of our content pipeline, because you cannot backfill revenue attribution for posts published before it existed.
-
We Stopped Guessing Categories and Read Them Off Our Own Product
The alert was a number: 82 tickets, 382 comments, and nobody had read all of them. We opened the epic planning to work through it top to bottom and closed it inside a minute.
-
12 Unanswered Questions and a Review Tool Nobody Opened
At 6:56 p.m., we had 12 unanswered design questions and a review tool we had built so another developer would not have to answer them in a ticket comment.
Measuring real progress versus the story
-
What a Second Unannounced Restart Twenty Minutes Later Revealed
A maintenance window ran exactly once, against a real production box, and the written plan turned out wrong in four separate places.
-
Our scoreboard dropped to 44% while the bookkeeping loop went uncounted
A five-day review said infrastructure's share of our commits fell from 81% to 44%, and the real problems were in work that commits never record.
-
The Nightly Job That Filed TLS Cert Renewal as Internal Work
Five customer-facing tickets ended up on the internal board because our classifier filed them by repo. Fixing the rows did not fix the rule.
-
Our Guard on the Create Command Missed Nine Business Findings
Three of the ten tickets we had closed the night before were open again the next morning, and nine new ones sat next to them.
-
125 passing tests and a seat gate nobody had checked at runtime
Twenty commits landed on day one of the lane managers, and none of them closed a ticket.
More in this theme
-
We Wrote Platform-First Goals, Then Drifted
An audit of 689 sessions in September put 56.5 percent of them in the agent system, the part we wrote down as a multiplier. Nothing at the point where work gets picked was enforcing the goal.
-
Rules Only Stick If They're Lived: The Retroactive Cleanup We Never Started
One ticket had a dozen small updates stacked in the comment thread, and scrolling past them cost you the actual status.
-
Fourteen Hours Building an Infra Page, Then an Audit of the Code
Building the Infra page took 14 hours 44 minutes, and reading the client's code afterward corrected several stale facts.
Hitting one of these walls in your own codebase or your own machine? Start an assessment or talk to us.