Verification-Driven Development (VDD) via Iterative Adversarial Refinement - method.md
Dear students of Computer Science,
A look at the ever-present drive to make software delivery faster and how it might break down various activity loops in organizations.
Clarkesworld Science Fiction and Fantasy Magazine: Wire Mother by Isabel J. Kim
How to win the war for the soul of the internet, and build the Web We Want.
When I started this project, I knew deep in my heart that we could get an LLM plus tool-usage to solve arbitrarily complex workflows. I still believe this is possible, but I’m no longer convinced this is actually a good solution. Some problems are just vastly simpler, cheaper, and faster to solve with software. This post talks about our approach to supporting both code and LLM-driven workflows, and why we decided it was necessary.
Trump has staged an unscheduled, midair rapid disassembly of the global system of trade. Ironically, it is this system that prevented all...
When Best Practices Are Best
We analyzed 470 open-source GitHub pull requests, using CodeRabbit’s structured issue taxonomy and found that AI generated code creates 1.7x more issues.
I am an AI hater. This is considered rude, but I do not care, because I am a hater.
A collection of bad practices in HTML, copied from real websites.
Exploring the tension between engineering perfectionism and pragmatic delivery. Discover why striving for the perfect solution often prevents us from shipping valuable improvements and how to find the balance.
Building a lightweight Go app on the Jetstream
Words about Go and software
Bluesky’s mission is to drive the evolution from platforms to protocols. The conceptual framework we've adopted for meeting this objective is the "self-authenticating protocol."
The companies building AI are spending billions to acquire engineers, not replace them. Here's why your job is safer than you think.
BYOIP on AWS: a PDS case study This is a document detailing how I acquired an IPv6 block from APNIC, and then began hosting pds.lizthegrey.com off it. (Chances are a relay pulled this very essay via IPv6!) I elected to not acquire an IPv4 block just for the purposes of my PDS, after an offer to pu...
one of those whom cold makes wild
The satellite, experimental technology has become the mainstream, foundational tech. (At least in developer tools.)
“To flash conviction on the mind.”
programming isn't a competition
Enjoy the videos and music you love, upload original content, and share it all with friends, family, and the world on YouTube.
How we pwned X (Twitter), Vercel, Cursor, Discord, and hundreds of companies through a supply-chain attack - writeup.md
Poor Cloudflare! It was less than a month ago that they suffered a major outage (I blogged about that here), and then, yesterday, they had another outage. This one was much shorter (~25 minutes versus ~190 minutes), but was significant enough for them to do a public write-up. Let's dive in! Trying to make it…
A deep dive into why cold restarts fail, how hidden dependencies break recovery, and what it takes to design resilient systems that can truly come back after a full outage.
I recently stumbled upon this screenshot while researching social media on the train. Of course, it was followed by a cascade of spiteful comments, criticizing this fresh programmer’s attempt to solve a classical problem in computer science. The modulus operation.
Discover Twilio’s shift to a single powerful service! Learn cloud communication trends, customer success stories, and how to build scalable apps. Join now!
I recently released JustHTML, a python-based HTML5 parser. It passes 100% of the html5lib test suite, has zero dependencies, and includes a CSS selector...
Explore the Double Empathy Problem—a theory explaining why communication breakdowns between autistic and non-autistic people are mutual, not one-sided. Autistic communication is a difference, not a disorder.
They're like riding a bike: easy, and you don't get it until you try.
Corrosion is distributed service discovery based on Rust, SQLite, and CRDTs.
Query your SQLite database any time, anywhere
First publishing February 2016
I’ve started using the term HTML tools to refer to HTML applications that I’ve been building which combine HTML, JavaScript, and CSS in a single file and use them to …
Why genies can make hiring juniors more profitable, & what you need to change to get there
I’ve been working on internal “AI” adoption, which is really LLM-tooling and agent adoption, for the past 18 months or so. This is a problem that I think is, at minimum, a side-quest for every engineering leader in the current era. Given the sheer number of folks working on this problem within their own company, I wanted to write up my “working notes” of what I’ve learned. This isn’t a recommendation about what you should do, merely a recap of how I’ve approached the problem thus far, and what I’ve learned through ongoing iteration. I hope the thinking here will be useful to you, or at least validates some of what you’re experiencing in your rollout. The further you read, the more specific this will get, ending with cheap-turpentine-esque topics like getting agents to reliably translate human-readable text representations of Slack entities into mrkdwn formatting of the correct underlying entity.
Reductionism fails in complex environments. This post moves beyond the philosophical vs pragmatic definition of emergence to provide a concrete framework for SREs. We categorize system behaviors into resultant, weak, and strong tiers, focusing specifically on how to manage weak and strong emergent properties in reliability engineering. While "resultant" systems allow for easy prediction, "strong emergent" systems make predicting the future impossible. This distinction is critical for analyzing incidents and emergent properties, where non-linearity and feedback loops create failures that unit tests cannot catch. Finally, we explore the rise of LLM emergent properties, demonstrating how AI models exhibit strong emergence that challenges our traditional understanding of code as a source of truth.
Mistakes are inevitable on any software project. But mistakes, if handled appropriately, are OK. Mistakes can be intercepted, adjusted, and ultimately addressed. The root of deep, fatal software project problems is not knowing when you’re making a mistake. These types of mistakes tend to fester into massive, systemic project
At 4:11 AM UTC on November 24th, a number of our SDKs and other packages were compromised, with a malicious self-replicating worm - Shai-Hulud 2.…
This paper discusses ways in which automation of industrial processes may expand rather than eliminate problems with the human operator. ...
The law of stretched systems, and how it may also apply to cognitive work, and our ability to deal complexity, such that any improvement is instantly exploited and we forever operate at the edge of understandability
A rant on the significance and meaningfulness of metrics, or lack thereof
Talk transcript on various patterns that slowly influence how teams deal with reliability, and highlight some of the key interactions and behaviors I keep finding work well in the organizations I've been part of.
Optimization and automation can be useless and reckless, outmatched by systemic pressures and their trade-offs. Localized friction, hidden by optimizations, can hold the key to larger scale impact.
My current theory of agentic programming: people are amazing at adapting the tools they're given and totally underestimate the extent to which they do it, and the amount of skill we build doing that is an incidental consequence of how badly the tools are designed.
A list of questions you need to ask about potential AI solutions, to know if they're going to work well for you and what kind of surprises they'll create.
Peeking Under the Hood of Claude Code Notice how Claude Code just… gets coding work done! It stays on task, follows constraints, and safely runs things you’d rather not type by hand. Anthropic …
Enjoy the videos and music you love, upload original content, and share it all with friends, family, and the world on YouTube.
Enjoy the videos and music you love, upload original content, and share it all with friends, family, and the world on YouTube.
Based on what I've learned from role models and mentors in Amazon
Paste this into Claude Code or Cursor: “Review PR 13968 (this branch). Plan a comic strip to help code reviewers to understand what is going...
Update: Lobsters thread here I think our biggest technical talent should abandon for-profit social platforms. I’m talking usual suspects1 here: Twitter/X, Instagram, TikTok, Reddit and so on. Not as a moral crusade, but because the platforms are crumbling under heavy regulation2 and cultural backlash. If you’re investing your peak years shaping public narratives there, you risk reputation and creativity (more on the latter later.) I’m noticing four big forces pushing this shift:
Notes on Building Sofware
A blog about making culture. Since 1999.
The conversation around generative AI is dominated by two extremes—Skeptics focused only on its harms, and Hypers hailing it as a panacea. A missing voice, the Realists, sees LLMs as a normal, powerful tool with real benefits and real challenges.
In this guide I will go over how to automatically search for and be notified of updates for container images every night using Renovate, apply those updates by merging pull requests for them in Gitea, and automatically redeploy the updated containers using Komodo.
Internet surveillance has killed eroticism. We need privacy to reclaim it.
To win the argument for universal basic income, advocates must confront the myth that less work means less worth.
Hi, it’s Takuya. Last week I had my birthday and turned 41 (November 19th). When I was younger, I could never really picture what life in my 40s would look like. It’s this vague age where you don’t have a clear image of how you’re supposed
Learn how to write effective agents.md files for GitHub Copilot with practical tips, real examples, and templates from analyzing 2,500+ repositories.
Updates about my life and what I learn about creating software
A company lost five senior engineers in 18 months. Exit interviews cited compensation. The real problem: information does not flow upward through organizational hierarchy. By the time problems reach executive level, they have metastasized into resignation decisions made months earlier.
Options are thin on the ground for junior devs as AI and economic factors cut off blood supply to their careers.
Exponents see coding with parallel agents as the future of software development. Do they have a point?
When I first wrote about microservice disasters, I thought we'd eventually "solve" them, with better tooling, frameworks, and operational maturity. We didn't. We just learned to live with the chaos. Distributed systems will always surprise you: timeouts, retries, and fallacies don't disappear; they just shift shape. Maybe that's the re...
Why you should just use Postgres instead of Kafka for small-scale message queuing and pub-sub patterns. Benchmarks and practical tests included.
You probably don't want to build "finished software". But what can we learn by thinking about it as a concept?
Some history on term “technical debt” and on better language to use when communicating about it.
Vlad Khononov builds on the ideas of Parnas, Myers, Brooks, Conway, and Ousterhout, to produce something new and useful.
Thoughts on its role and impact on the web’s landscape.
The Small Web 101
Alternative configuration formats solve superficial problems. Configuration languages solve the deeper problem: the need for abstraction.
A deep dive into how CRDT-powered local-first apps track, merge, and sync every INSERT, UPDATE, and DELETE inside SQLite.
Anthropic is an AI safety and research company that's working to build reliable, interpretable, and steerable AI systems.