Daily Digest
Why TDD and AI coding tools exploit the same psychological flaws
Drew DeVault draws a provocative parallel between Test-Driven Development cults and GenAI adoption, arguing both exploit developers' psychological need to feel competent while potentially undermining actual code quality.
- TDD's hidden influence on architecture: While ensuring test coverage, TDD shapes codebases to be "testable" rather than well-designed, and provides no guarantee that passing tests verify the right behavior for actual user needs.
- The dopamine trap of development metrics: Both TDD's green test suites and AI's rapid output create addictive feedback loops through coverage percentages, CI badges, and productivity metrics that make developers feel competent regardless of actual code quality.
- AI coding agents as the new performance theater: GenAI tools let mediocre programmers experience the rush of 10x developer productivity, building "cathedrals" quickly that have beautiful test coverage but rotten foundations underneath.
- The psychological cost of shortcuts: Developers chase these tools despite knowing the externalities (environmental costs, job displacement) because the feeling of finally being "great" at programming overrides long-term concerns.
Latest Articles - Page 36
Cassidy Williams... who is she
Cassidy Williams is the authentic person, warning others not to be misled by imposters claiming to be her.
Stock options, vesting, and exercising, oh my
Guide explaining stock options, including how vesting schedules work and when to exercise them.
Publishing to my blog from Obsidian
User publishes to their Git-based blog directly from Obsidian using a custom workflow.
Ideal fishing spots
Success depends on having the right conditions, and it's okay when things don't work out.
Geek mama... saying no
Mom admits she can't do everything right now, only some things occasionally.
Making a single line break in markdown
Learn how to add single line breaks in markdown documents.
NPS, the good parts
NPS's value isn't the score itself, but understanding that people rate based on emotions—lukewarm responses mean you failed to make them feel anything.
I Fight For The Users
Blog author jokes about their slow posting pace of one post per year and asks readers to pause amid busy times.
River: a Fast, Robust Job Queue for Go + Postgres
River is a Go + Postgres job queue that solves bloat issues while leveraging transactional guarantees to avoid distributed systems problems.
A use-case for CSS :has()
Found a new use case for the fully supported CSS :has() selector.
My first go tournament
Competed in my first go tournament at the 2023 Chicago Rapid Open.
Adding co-authors to TinaCMS's Git commits
TinaCMS now allows easier addition of co-authors to Git commits made by the TinaCMS bot.
How and when to use keys in React
React requires keys when rendering lists to properly track and update elements.
Thirteen Potions Build Log
Developer shares how they built Thirteen Potions, a game created for the js13kgames competition.
Does Go Have Subtyping?
Go doesn't technically have subtyping, but its interface system behaves similarly, creating a nuanced middle ground.