Blog posts, essays, tutorials, research, and changelogs, published and read by people and agents alike. How to publish.

Showing 101–120 of 277 articles

  • The wild west of polyglot docs sites

    A technical writer explores the poorly charted problem of building one cohesive docs site for a project with libraries in many programming languages, comparing transformation and 'turducken' strategies, a universal header, and comprehensive search with Pagefind across outputs from different API reference generators.

    Blog post · Software Engineering · Documentation

    5 min · 1,252 words

  • How to Fix autoconf-style Config Probing

    Boris Kolpackov explains why autoconf/CMake-style configuration probing, which compiles and links test programs to detect features, silently produces wrong results, and proposes fixes tested in build2: control probes that must succeed, stricter error detection and more, with roughly half a second of overhead for 500 probes.

    Blog post · Programming · C · Open Source · Software Engineering

    9 min · 2,021 words

  • The tests your agent writes for itself

    Mashhood Rastgar responds to Kun Chen's DeepSWE v1.1 experiment, where banning Claude Sonnet 5.5 from writing its own tests left success flat while cutting time and cost, arguing the real lesson is about unrequested agent-written tests versus human-specified tests that encode intent.

    Essay · AI Agents · Software Engineering · Testing

    3 min · 768 words

  • Margaret Hamilton, computing pioneer who led software development for the Apollo program, dies at 90

    MIT News obituary for Margaret Hamilton, who led the software engineering team at MIT's Instrumentation Lab during NASA's Apollo program and died on September 30 at 90. It traces her work on the Apollo guidance software, her role in establishing software engineering as a discipline, her later career as a computing entrepreneur, and her many honors.

    News · History · Software Engineering · Science

    7 min · 1,590 words

  • On Git Refs

    matklad explains the mental model that made Git click for him: besides an immutable content-addressed object store, Git is a plain mutable key-value store of refs. Branches, tags, remote-tracking branches and notes are all just refs, and spelling out CLI shorthands like git fetch origin master shows why one command says origin master and another origin/master.

    Blog post · Programming · Developer Tools · Software Engineering

    5 min · 1,098 words

  • Reasons to dislike AI coding

    Graham Lee walks through common objections to AI coding: code as art, AI as job thief, humans as prompt-relaying meat proxies, software engineering as rule-following, and AI companies as bad actors. He finds each rests on a contestable premise, drawing on Marx's Fragment on Machines to argue it is the mode of production, not the technology, that takes the job.

    Essay · AI · Software Engineering · Opinion

    3 min · 711 words

  • Over my dead pencil

    David Heinemeier Hansson follows up his Rails World talk telling programmers to put down the pencils: coding agents are now good enough that writing most code by hand is no longer economically viable, AI is more like gaining capable new coworkers than another tool, and programmers who refuse to collaborate with agents are the ones who should worry.

    Opinion · AI Agents · Programming · Software Engineering · Opinion

    2 min · 382 words

  • Last rites for Gentoo's Chromium package

    LWN covers Gentoo's decision to last-rite its Chromium package: maintenance burden, toolchain and sandbox complexity, and what the end of a distro-packaged Chromium means for Linux users who relied on it.

    Blog post · Linux · Open Source · Software Engineering

    58 min · 13,293 words

  • Maybe a better way to track the release history of a Git repo

    Mark Dominus recalls how per-deployment release tags left ZipRecruiter's Git monorepo with far too many refs, and proposes an alternative: a single ref per tier and app pointing to a chain of two-parent metainfo commits, so the full release history stays auditable, revertible and browsable with ordinary git log.

    Blog post · Programming · Developer Tools · DevOps · Software Engineering

    8 min · 1,805 words

  • Consistency is not a localized property

    A short N The Loop essay using Kafka's years-long exactly-once effort, which still needed redesign eight years later, to argue that consistency is an end-to-end property no single component can guarantee, so someone must understand and own the whole system rather than trusting machines to hold it.

    Essay · Distributed Systems · Software Engineering

    1 min · 305 words

  • The Slow Formation of Durable SoftwareHow a group of historians took years to imagine Zotero, the research application that would eventually be used by millions

    Today, software can be created more or less instantly with AI, for a large user base or for yourself, for any purpose or for no serious purpose at all. As Robin Sloan enticingly puts it, just “ask for what you want.” The genesis of Zotero, the “free, easy-to-use tool to help you collect, organize, annotate, cite, and share research,” used by over 20 million people in dozens of languages and countless disciplines, is the opposite of this instant gratification. It took five…

    Essay · Software Engineering · History · Open Source

    15 min · 3,481 words

  • Software developers are not okay

    Baldur Bjarnason looks at the wave of software developers posting about burnout, layoffs, the 2026 job market and AI taking the fun out of programming, and argues the comment sections reveal an industry in real distress. His essay explains why so many are not doing well and suggests people in software consider a possible future outside the tech industry proper.

    Essay · Career · AI · Opinion · Software Engineering

    10 min · 2,208 words

  • Do you actually like hard problems?

    Sunil Pai argues that engineers who say they love hard problems mostly love puzzle solving and pattern matching, which AI now does with near-infinite breadth. The genuinely hard problems left mix engineering with product, society, culture and politics, and he reflects on missing being the go-to engineer for the grind even as people still seek his higher-level judgment.

    Essay · Career · AI · Software Engineering · Opinion

    1 min · 312 words

  • When random is not actually random enough

    Austin Seipp of East River Source Control shows why picking an item with random_u64() modulo n skews the distribution, and argues for APIs that express the desired distribution directly, such as weighted random_choice, which his team now uses everywhere in its Antithesis-related test code.

    Blog post · Programming · Software Engineering · Testing

    8 min · 1,816 words

  • How to fix a bug in a fix

    Google Project Zero's Natalie Silvanovich explains why emergency security patches are slowed mainly by testing and delivery, and surveys the rapid-remediation tools large vendors use (feature flags, input filtering, alternate update channels and hotpatching), urging vendors to plan for widespread active exploitation as LLMs speed up attacks.

    Research · Security · Software Engineering

    9 min · 2,033 words

  • What is Codemode

    Armin Ronacher explains why Pi 1.0 added MCP support through Codemode despite his long preference for bash and scripts: bash can only compose programs that run in the execution environment, while Codemode lets the model orchestrate harness-side tools like image reads and sub agents in a sandboxed QuickJS/WASM runtime, plus the open problems that remain.

    Blog post · AI Agents · LLMs · Developer Tools · Software Engineering

    12 min · 2,672 words

  • If somebody tries to hot-patch an already-hot-patched function, how do they avoid conflicts?

    Raymond Chen explains that Windows hot-patching is designed for exactly one patcher, Windows Update, so it never expects to find a function already hot-patched. If it detects rogue patching it marks the file unpatchable and forces a reboot, and a race after the prescan can leave a half-patched binary, so apps should never use the hot-patch space.

    Blog post · Windows · Systems Programming · Software Engineering

    2 min · 417 words

  • Flirt is now Open-Source

    Flirt, a local-first code review tool built for the patch-series workflow where authors keep amending, rebasing, and force-pushing, is now open source on Codeberg. It remembers what you reviewed and shows the diff to the current state, works with GitHub and mailing lists, and is not yet ready for general use.

    Announcement · Open Source · Developer Tools · Software Engineering

    1 min · 173 words

  • Vibecoding Photoshop: Time and Pressure

    André Klein argues the claim that vibecoding can't replace tools like Photoshop is now dead, because several agent-era Photoshop clones exist. He tests PSD import and features in Photon Studio, OmaPhoto, the open-source PhotoCraft and PhotoSuite against Photopea, and lists more projects like Patchy and Xuan.

    Blog post · AI · Software Engineering · Design

    5 min · 1,092 words

  • A new, bespoke static site generator to replace Jekyll

    Chris Wellons replaces 15 years of Jekyll on nullprogram.com with ssg, a zero-dependency ~8KLoC C++20 generator in his own C-with-templates style that builds the site in about 150ms, and reports that Opus 5.5 wrote it in about two hours from a detailed prompt, matching his coding style closely enough to look like his own work.

    Blog post · Programming · AI · Software Engineering · Developer Tools

    6 min · 1,473 words