logging

  • The test that had been quarantined since 2023

    A quarantine list with a deadline, three extensions, and one test covering a payment path that had been skipped for three years.

  • Reusable skills and agent definitions, and what they are actually for

    turkerdev/ai-skills and turkerdev/ai-agents, and eighteen months of retyping the same instructions. Context is per-session and knowledge is not.

  • Deleting a module

    A module built in 2022 for a product line discontinued in 2024. Eight thousand lines, a database schema and two scheduled jobs, all still running.

  • The exception I stopped catching

    A catch block added in 2021 for an error that has not occurred since, swallowing a different one. A catch of Throwable is a decision that every possible…

  • PSR-3 context, and the field that was finally queried

    A structured logging field added in 2023, never queried, and the one week it was the only thing that helped. A field with no queries against it for…

  • Building an MCP server for a database

    turkerdev/mysql-mcp, and what a protocol for tool access actually requires. The authorisation model is the host’s problem, which means it is all yours.

  • An outage resolved before anybody woke up

    Four mechanisms built between 2023 and 2025, and the first incident where all of them were exercised at once. The absence alert is the one that did the…

  • Alerting on absence, for every integration

    An alert per integration that fires when it stops doing anything, which is the category nobody adds. Every alert we had was for a value being too high…

  • A consumer that appeared in the usage log and nowhere else

    An API key making four hundred requests a day, belonging to nobody we had a record of. A key labelled “test” making four hundred production requests a day…

  • The integration that outlived the integrator

    A supplier acquired and shut down, and an endpoint returning 200 with an empty body for eleven weeks.