Reading List – 2026-10-08

Today’s reading looks at the engineering practices around software agents: clearer technical writing, Git infrastructure, levels of autonomy, and CI capacity.

Anti-Patterns in Software Blogging

Treating links as prerequisites makes readers leave an article to decode a term; the post argues that a short on-page explanation should provide the needed context, with links reserved for deeper reading. What catches my attention is that this sets a clear bar for technical writing: a reference can add depth without becoming homework required to follow the argument. The limit is that a brief explanation won’t replace a full treatment when the topic needs one.

Building Git infrastructure for agent-scale development

The old replica model made read scale tax every write: each durable replica participated in pushes, so the slowest replica determined push speed. GitHub's proposed split puts authoritative data in Azure Blob Storage and serves reads through cache workers, while coordinating only the reference update and parallelizing other push work. I find the failure model as interesting as the throughput claim: losing a worker becomes a cache miss, though the source doesn't quantify the latency of refilling it.

The 4 levels of agentic software development

The hard step in scaling agents isn’t dispatching more work; it’s changing validation from a human gate into an automated loop. The article describes tests, security scans, and policy checks feeding failures back to agents for retries, while people review aggregate behavior rather than every diff. That only works if the checks are comprehensive and deterministic enough to contain probabilistic output; otherwise, parallelism can saturate CI and erode trust. I’d focus first on whether the pipeline can catch and route bad changes reliably, before increasing agent volume.

AI coding has made CI a bottleneck, so we reworked ours to keep up

The sharpest tradeoff is Vitest isolation: sharing a module registry avoids rebuilding entity, GraphQL, and decorator state in every shard. Linear reports the slowest shard fell from roughly 300–379 seconds to about 195, but calls this its highest correctness-risk optimization. I’d keep the opt-in eligibility comment, teardown, and isolated fallback in view; those guardrails matter when shared test state meets agent-generated tests.

An overhead view of a wooden desk holding two laptops side by side. The left laptop is closed and covered in old stickers with a security badge on top. The right laptop is open with fresh stickers and a code editor on screen. A sheet of dated notes lies between them.

Writing My Way Out

I started writing this blog two years ago because I wanted to share what I was learning about AI, and the projects it kept pushing me to take on. A year ago I wrote the first anniversary post, and it ended with a plan. Two thoughtful posts a month instead of the weekly pace that had already beaten me once. More explainer series, because the embeddings posts had been the most-read thing I published. Some shorter pieces in the spirit of Simon Willison. And permission, finally, to write about the woodworking and the guitars instead of quietly worrying that they were off topic.

I had no idea, when I wrote it, that by the time I sat down to write the next one I would not be at Google anymore.

The plan mostly worked

I published fifty seven posts between that anniversary and this one, which is a little under five a month against a goal of two. I am not sure that counts as keeping a promise so much as failing to keep it in the more enjoyable direction.

I had been afraid that I would run out of things to say. The opposite happened. If I look at my drafts and ideas folders right now, there are close to fifty posts in there that I still want to write and have not found the time for.

The explainer series happened. The Agentic Shift was planned as twelve parts, and it came in at twelve parts, thirteen if you count the introduction, running from September through April. The structure held up almost exactly as I outlined it. What I did not anticipate was how much the ground would move underneath it. I thought I was writing a textbook, assembled in public. What I actually wrote was a journal of a landscape that would not hold still long enough to be documented. I outlined Part 9 as speculation about a future problem and published it as reporting on a present one. I am really proud of that series, and I think it has stood up well.

The shorter pieces happened too, though this one is still a work in progress. Eight Reading Lists, which started as an experiment in whether I could publish something in under an hour and turned into the format I reach for when an idea is real but not yet a post. I never got to the point of posting one every week, and that is something I want to get better at this year.

And the hobbies made it in. A bill in the California legislature that wanted my 3D printer to police itself. A French band I could not stop listening to. A Starlink dish on the roof of a car. The Köln Concert, as an argument about creative constraints in software. Nobody unsubscribed, as far as I can tell, which suggests the worry was mine and not my readers’. There is more of that to come, I hope.

The post that turned out to be about something else

In April I counted my GitHub contributions for the year. There were 4,255 of them, and the post was supposed to be a light piece about the shape of a year of building in the open.

The interesting number was not the total. It was that my most productive day of the week was Saturday, by a wide margin, and the reason was not discipline. It was that Saturday was the day nobody had scheduled anything. I wrote at the time that this was a diagnosis rather than a brag, and I meant it more casually than it turned out to deserve. Given time and no meetings, I build things compulsively, and I am happier. That is a useful thing to learn about yourself. It is also the kind of thing that, once you know it, quietly reorganizes every other question you were asking.

Four months later I left, after twenty one years, most of a career, and about half my life. Twenty One Years is the post about that. Not Everyone Wants a Hobby is the post about what I left to go do, which is a company called Vycari that I am building with Chris Perry. Chris was the product lead for Colab when I ran the AI Developer organization, we were both on the founding team of Gemini CLI, and somewhere in there he became the person I most wanted to build with. He is the CEO, I am the CTO, and our first product, Pepper, is a personal assistant for your life. And Thousands of Goodbyes is the post about pointing an agent at twenty one years of my own sent mail because I could only remember about a hundred and fifty of the several thousand people I had worked with.

I did not plan any of those as a trilogy. Reading them back to back, they are obviously one thing.

What the blog was for, and what it is for now

When I started writing here, the blog had a job inside a larger job. I said as much in the first anniversary post: building in the open and writing about it was how I contributed while my calendar was still too unpredictable for mission critical work, and it let me lead by example, demonstrating the kind of developer engagement I was hoping to inspire in an organization I was running.

That is a perfectly good reason to write, and it is gone now. There is no organization. There is no example to set for anyone but Chris and me. The blog is no longer a thing I do alongside the work, and it is not marketing for the work either. It is the only continuous artifact I have from before to after, which I did not appreciate until I went looking for a through line and found that the writing was the only place one existed.

There is an obvious hazard in this, and I would rather name it now than have you notice it in six months. Founder blogs decay into product announcements. It happens gradually and the person writing them is always the last to see it. So let me be clear about what you should expect. I am going to write about Vycari and Pepper, because they are the most interesting things happening to me right now. We are building a new kind of agent harness and a new kind of agent, and there are a lot of stories in that. Some of them will be technical, like the recent post about what happened to our issue backlog once agents were filing most of the issues. Some of them will be about philosophy, like why the chat window is the wrong interface for most people and why almost nothing a consumer agent does needs a frontier model, and a few of them will be things I did not feel I could say while I worked at Google. What I can promise is that everything I write here is here because I think it is useful to share, because I think you will enjoy reading it, and because I think it articulates why Chris and I, and the company we are building, are different.

The people who read this blog are people who will happily install a CLI, configure an API key, and read a changelog for fun. They are the reason it exists. I am aware that I have just started a company premised on the argument that requiring all of that is a failure of product design, and I do not think those two things are in tension, but I understand why it might look that way. Working out loud on that confluence is most of what I expect year three to be about.

Year Two, By the Series

The Agentic Shift

Twelve parts and a retrospective, September 2025 through April 2026. The series that ate the year, and the work on this site I am proudest of.

Building the Things I Write About

The Reading Lists

Eight of them, starting in April. Short, fast, and the closest thing this blog has to a running commentary.

The Work Itself

Building Vycari

The first three posts of the next chapter. None of them is a launch announcement, which is the point.

Everything Else

The promise I made last year to stop worrying about staying on topic.

Year Three

More of the same, with one change I am now a month into.

For two years I wrote about agents from inside a company with essentially unlimited access to models, infrastructure, and the people who build them. Everything I published came with that thumb on the scale, whether or not I acknowledged it. For the past month I have been building the same class of system with two people and a budget. In the first thirty days of that, the two of us merged 657 pull requests, our agents filed most of the 449 issues that came out of them, and something like a hundred and fifty million tokens went through the product for about forty dollars. Those are not numbers I could have written from inside Google, and they are the constraints almost all of my readers have always lived with. I expect that to make the writing better, and the series on how the two of us build, which started with the issue tracker, is where I intend to find out.

I also want to keep doing what Thousands of Goodbyes turned out to be, which was the first time in two years of writing about agents that I pointed one at something that was not work and had the output make me feel something. There is a great deal more of that available, and almost nobody is writing about it, because we are all still busy benchmarking.

Beyond that, my goals are simple. I want to keep sharing what I learn. Last year I said a weekly pace was not sustainable, and then published nearly five posts a month, so this year I am going to say it out loud: at least one real piece a week, with shorter things sprinkled in on the other days. I am trying to be more active on X and LinkedIn as well, so if you see me there, say hi. I will keep bringing more of my outside interests into this space, though it will almost always have a technical angle. There are more management posts planned, a tribute to a friend who is gone, some book reviews, and more.

Two years ago I hit publish on the first one of these with no idea where it would lead. I have a much better idea now, and I am still not going to tell you it is a plan. I am looking forward to what comes next, and I am glad you have decided to come along.

A mixed-media illustration of a double-necked electric guitar with glowing microtonal frets, set against sound waves that shift from orderly blue patterns to chaotic warm-colored interference patterns.

Temperature 1.0

I subscribe to a lot of music channels on YouTube, and last week every single one of them started talking about the same band at the same time. Not a slow build, not one creator picking up on another’s video. It was like a switch flipped. Two masked figures in black-and-white polka-dot costumes, performing on KEXP, playing music that sounded like it had arrived from a parallel universe where Western tuning never became the standard. The band is called Angine de Poitrine, and their live session has racked up over six million views. I sat there watching, grinning like an idiot, thinking: this is what temperature 1.0 sounds like.

If you work with large language models, you know what that means. The temperature parameter controls randomness in a model’s output. At temperature 0, you get the safest, most predictable token every time. The writing is competent and completely forgettable. Crank it to 1.0 and you get something wilder, less expected, sometimes brilliant, sometimes incoherent, but never boring. Most production systems run somewhere around 0.7, which is the sweet spot for “creative but not too creative.” It’s also, increasingly, the setting our entire culture seems to be tuned to.

The Median is Everywhere

A few weeks ago, I wrote about how our culture has been drifting toward monoculture for a long time, and AI is accelerating the trend. Language models are prediction engines. Left to their defaults, they produce the statistically most likely next token, the most average, most expected version of whatever you ask for. I argued that the writer’s job is to pull the output toward the edges, to resist the gravitational pull of the median.

But it’s not just writing. The flattening is everywhere. Algorithmic recommendation systems optimize for engagement, which in practice means optimizing for familiarity. Spotify’s Discover Weekly is tuned to give you something new that sounds enough like what you already listen to that you won’t skip it. Netflix thumbnails are A/B tested into oblivion. Even the indie coffee shop down the street has the same reclaimed wood and Edison bulbs as every other indie coffee shop in every other city, because the same Pinterest boards and Instagram algorithms surfaced the same aesthetic to the same demographic worldwide.

We are living at temperature 0.7, and I think people can feel it.

Something Between the Notes

Which is why Angine de Poitrine hit so hard. Everything about them resists categorization.

Start with the instrument. Khn de Poitrine plays a custom double-necked hybrid, a guitar and bass separately wired, each fitted with additional microtonal frets. It was custom-built by a local luthier in Saguenay, Quebec. Western music divides the octave into 12 equal steps. Microtonal music lives in the spaces between those steps, the quarter tones and third tones that are standard in Indian, Arabic, Turkish, and Indonesian traditions but almost unheard of in Western rock. When you listen to Angine de Poitrine, the notes themselves are literally between the notes your ear expects. The music is operating outside the grid.

Then there’s the visual identity. In an era of algorithmic personal branding, where artists are coached to show their faces, share their stories, and build parasocial relationships with their audiences, these two perform behind oversized papier-mâché masks. They go by pseudonyms. Their website states plainly that “any speculation regarding the identity of its members is unverified, not endorsed by the group, and could constitute an invasion of privacy.” They’ve stripped away every signal the recommendation engine uses to sort and categorize. No faces, no backstory, no brand. Just the music and the performance.

And the performance is unhinged. Their KEXP session is part math-rock concert, part absurdist theater, part fever dream. It shouldn’t work. It’s too weird, too dense, too far from anything the algorithm would select as “likely to engage.” And yet six million people watched it and couldn’t look away.

The Joke That Wasn’t Random

Here’s the part that matters most to me. Angine de Poitrine formed in 2019 as a practical joke. The two musicians were booked to perform twice in one week at the same local venue in Saguenay, so they put on masks and polka-dot costumes for the second show as a gag. But the people behind those masks have been musical collaborators for two decades, performing together in various projects since they were 13 years old. By the time the KEXP camera pointed at them, the craft underneath the joke was deep and undeniable.

This is the part that connects to something I’ve been thinking about a lot lately. Virality looks like luck from the outside. But what looks like a random spike is almost always preparation meeting a moment. These two spent twenty years building a musical vocabulary together, absorbing microtonal traditions from around the world, developing the kind of telepathic interplay that only comes from thousands of hours of shared performance. The band name was a joke. The musicianship was not.

Temperature 1.0 output only works when the model has been well-trained. Randomness without depth is just noise. What makes Angine de Poitrine compelling isn’t that they’re weird. It’s that they’re weird and masterful. The strangeness is intentional, controlled, the product of two people who know exactly what they’re doing and have chosen to do something no algorithm would have predicted.

The Hunger

I think the six million views aren’t an accident, and they aren’t just the novelty of funny masks. I think people are hungry. We scroll through feeds that have been optimized to show us what we’ll tolerate, and we’ve started to notice the sameness. When something comes along that is genuinely, irreducibly different, something that can’t be reduced to a Spotify genre tag or an engagement metric, it cuts through the noise like a signal from another frequency entirely.

Angine de Poitrine didn’t optimize for the algorithm. They built a custom instrument, put on masks, and played music that exists in the spaces between the notes the Western world agreed on centuries ago. And the world responded not in spite of how strange they are, but because of it.

Maybe the lesson is simple. In a culture tuned to 0.7, the thing that breaks through is the thing running at 1.0. But only if the model behind it has been trained for twenty years.

A woodworker's workbench viewed from above, with traditional hand tools like chisels, planes, and saws arranged alongside a glowing tablet and a translucent holographic AI interface. In the center, a beautifully carved wooden book lies open, its pages showing handwritten text and illustrations. Wood shavings curl around the edges, and warm golden afternoon light streams through a workshop window.

It’s a Poor Craftsman Who Blames His Tools

A craftsman’s workbench where traditional tools meet digital ones, a carved wooden book at its center. The old and new sit side by side, each essential to the work.

I was around eight years old, standing in front of my third grade class, holding a neatly printed report on Scotland. We had an IBM PC Jr. in the house, one of the few families in the neighborhood who did, and I’d used its word processor to write my family heritage project. When a classmate asked how I’d made it, I told him the truth. I did it on the computer. His response was immediate: “That’s cheating. All you had to do was tell the computer to write everything about Scotland.”

That moment has stuck with me for over forty years. Not because my classmate was right, but because his assumption felt so deeply unfair. He looked at the output, saw something cleaner than what he could produce by hand, and concluded that the tool had done the thinking. The work I’d put in, the reading, the organizing, the rewriting, became invisible the moment the medium changed.

I thought about that kid this week when Hachette pulled Mia Ballard’s horror novel Shy Girl after AI detection tools flagged up to 78% of the text as machine-generated. The story has all the ingredients of a proper scandal: a buzzy debut, a viral three-hour YouTube analysis that racked up over a million views, an author claiming an editor used AI without her knowledge, and a publisher left scrambling to explain how it slipped through. I don’t know whether Ballard used AI to write her book, and this post isn’t about relitigating her specific case. What interests me is the reaction. The assumptions that surfaced, the lines people drew, and what those lines tell us about what we actually value in creative work.

We’ve Been Here Before

The outrage around AI-generated books carries an implicit premise: that the value of a book is inseparable from the human effort of writing it word by word. But we’ve never really believed that, have we?

Ghostwriting is one of the oldest traditions in publishing. The term itself was coined in 1921 by Christy Walsh, but the practice predates the modern publishing industry entirely. Ancient Greek and Roman scribes wrote speeches for public figures. In the early 1900s, Edward Stratemeyer built a literary empire by creating plot outlines for children’s book series and hiring writers to turn them into finished novels. The Nancy Drew books, beloved by generations of readers, were written by a rotating cast of ghostwriters under the pseudonym Carolyn Keene.

Today, estimates suggest that 60 to 80 percent of business and self-help nonfiction is ghostwritten or co-written. More than 80 percent of celebrity memoirs are ghostwritten. Andre Agassi’s autobiography, widely praised as one of the best sports memoirs ever written, was ghostwritten by Pulitzer Prize winner J.R. Moehringer. JFK’s Profiles in Courage won a Pulitzer Prize despite strong evidence that Ted Sorensen wrote most of it.

We know all of this, and we’ve made our peace with it. When you pick up a celebrity memoir, you don’t assume the celebrity sat alone in a cabin writing every sentence. You assume there was a collaborator, and you’re fine with it, because the ideas, the stories, the perspective still belong to the person whose name is on the cover.

So what exactly changes when the collaborator is a machine?

The obvious objection is that a ghostwriter is a human being. Moehringer spent months interviewing Agassi, made narrative choices rooted in empathy and decades of craft, brought the full weight of his own life experience to the project. Today’s language models do none of that. They have no understanding of their subject, no lived experience to draw on, no creative judgment in any meaningful sense. That’s a real difference today, and I don’t want to pretend otherwise. Whether it remains a permanent difference is a question none of us can answer yet.

But here’s what I keep coming back to: the reader’s relationship to the work is the same either way. You don’t read Agassi’s memoir for Moehringer’s prose style. You read it for Agassi’s story, told well. The question for the reader was always “is this book worth my time,” not “who exactly arranged these sentences, and what was their inner life like while they did it.” The collaborator changed. The contract between author and reader didn’t.

The Real Question

The Guardian piece on the Shy Girl controversy quotes Mor Naaman, a professor of information science at Cornell Tech, asking a question I think cuts to the heart of this: “We all work in an AI-hybrid world now. When does something become an AI-generated book, rather than just using AI like I use a spellchecker, to fix my grammar or maybe spark ideas?”

This is the right question, and I don’t think it has a clean answer. The spectrum of AI assistance in writing is wide and continuous. At one end, your word processor underlines a misspelled word and you accept the correction. Nobody calls that cheating. At the other end, someone pastes “write me a horror novel” into ChatGPT and submits whatever comes back. That feels like fraud. But between those two poles is a vast grey area where most of us who write with AI actually live.

I write extensively with AI, and in the interest of practicing what I preach, let me tell you exactly how this post was made. I read the Guardian article in my feed reader. I opened up an AI conversation, dropped in a link to the piece along with several hundred words of reaction, half-formed arguments, and personal anecdotes. Then I went back and forth with the AI to build out the structure and prose. I read and edited the draft several times. I then used the AI to find weaknesses in my own arguments, and methodically worked through each one, discussing my views and refining the piece as we went.

Every idea in this post is mine. The IBM PC Jr. story is mine, pulled from a memory no language model has access to. The ghostwriting parallel, the monoculture pushback, the phonograph analogy, all mine. But the process of turning that raw material into the thing you’re reading right now involved a collaboration that didn’t exist five years ago. So, is this an AI-generated blog post? I’d say no. But I couldn’t have written it this way without AI, and I don’t see any reason to pretend otherwise.

Here’s the thing that doesn’t get said enough: I would not have written this piece at all five years ago. Not because I didn’t have opinions, but because I didn’t have the time, and the tools available to me didn’t match the way I think. I’m a conversational thinker. I work through ideas by talking them out, testing them, pushing back on them. Five years ago, I would have read the Guardian story, thought “I disagree,” and moved on with my day. AI gave me a way to turn that disagreement into something I could share. It didn’t lower the quality of my writing. It made the writing possible in the first place.

I’ve written before about how AI is changing the craft of software engineering, and I see the same dynamics playing out in writing. In my open source projects, I have no problem with AI-generated code. What I care about is whether the author has tested it, understands it, and can vouch for its quality. The tool doesn’t matter. The accountability does.

Authorship in other creative work should be no different. The judgment should be reserved for the end product. We should hold authors accountable for delivering something we want to read and that we enjoy reading. There were plenty of formulaic, poorly written books on the shelves before AI, and there will be more after authors embrace it. It’s not the tools. It’s the people and how they use them.

The Monoculture Was Already Here

The other argument that comes up in these conversations is that AI will drive us toward a cultural monoculture, a flattening of creative output into algorithmically averaged blandness. Naaman makes this case in the Guardian piece, warning that “AI nudges users into a bland monoculture” and that it “could never generate the truly diverse creativity of the human mind.”

I have two responses to that.

First, we’ve been driving toward monoculture for a long time, well before AI had anything to do with it. Walk down the high street of any major city in the world and tell me what brands you see. Are they really that different from London to Tokyo to São Paulo? How about the movies in the theater or the books on the international bestseller lists? Globalization and the internet have been blending and merging cultures for decades. AI isn’t the cause of our growing monoculture. It’s a reflection of it. We are all more connected today than we have ever been, and that connectivity, for all its benefits, inevitably smooths out some of the edges. Can AI accelerate that flattening? Absolutely. If millions of writers lean on the same models trained on the same corpus, the pull toward sameness is real. I don’t want to minimize that risk. But the answer is better use of the tool, not rejection of it.

And this is the more important point for writers: AI is a prediction engine. Given a sequence of text, it generates the statistically most likely next token. Left to its own devices, it will absolutely produce the most average, most expected, most median version of whatever you’re writing. That’s not a flaw in the technology. It’s a feature you have to work against. It’s up to the author to bring their own voice, their own weird obsessions, their own hard-won perspective into that conversation and make it interesting. The AI will always pull you toward the center. Your job as a writer is to pull it toward the edges.

This is no different from any other creative tool. A guitar doesn’t make you a musician. A camera doesn’t make you a photographer. And a language model doesn’t make you a writer. But in the hands of someone who knows what they want to say and has the skill to shape the output, all of these tools can produce extraordinary work.

I keep thinking about the early days of digital photography. When digital cameras started displacing film, there was a vocal community of film purists who insisted that you weren’t a real photographer unless you were shooting on film. Digital made it too easy, they argued. You could fire off hundreds of frames and increase your odds of getting a lucky shot, rather than developing the discipline to compose and expose a single frame correctly. The process was the point, they said. The limitation was what made it art.

Sound familiar? We’re hearing the same argument about AI and writing now. The tool lowers the barrier, so the gatekeepers question whether the output counts. But digital cameras didn’t kill photography. They democratized it. They opened the craft to millions of people who would never have had access to a darkroom, and the best photographers in the world today shoot digital without anyone questioning their artistry. What matters is the image, not the medium it was captured on.

Judge the Work

There is a legitimate concern buried in this debate that I don’t want to dismiss. If AI takes over the entry-level writing work (the copywriting gigs, the formula genre fiction, the content mill assignments), where do emerging authors get their reps? If the lower rungs of the ladder disappear, do we end up with fewer masters at the top?

It’s a fair question, but it’s not a new one. When the phonograph and the player piano arrived in the early 1900s, they devastated the livelihoods of working musicians. Every restaurant and pub used to have live music because there was simply no other way to fill a room with sound. Those technologies thinned the ranks dramatically, and what followed was a greater concentration of attention on the most talented performers. They weren’t playing the pubs anymore. They were playing the concert halls. Then radio and recorded music concentrated things further still. John Philip Sousa warned in 1906 that mechanical music would be the death of the art form.

He was wrong, of course. The tipping point, in my opinion, came with the democratization of music-making and music-publishing tools. GarageBand, SoundCloud, Bandcamp, Spotify for independent artists. The pub gigs never came back, but the ability to create and distribute music became more accessible than it had ever been. The pipeline didn’t disappear. It changed shape entirely.

I think writing is headed somewhere similar. The old entry points may shrink, but AI is simultaneously creating new ones. Editing AI output, directing it, curating it, knowing how to coax something genuinely good out of a collaboration with a machine. These are new skills, and they’re the early rungs of a different ladder.

There’s a saying in woodworking: it’s a poor craftsman who blames his tools. I think we need to keep that wisdom close as this debate continues. If Shy Girl turns out to be a case of someone submitting raw machine output as their own creative work, then the problem isn’t that AI was involved. The problem is that the author didn’t do the work. But if it turns out to be something messier, a human writer who leaned on AI more than the industry is currently comfortable with, then we need to ask ourselves what exactly we’re punishing and why.

But let’s not make the same mistake my third grade classmate made. Let’s not look at the tool and assume it did all the thinking. The question isn’t whether an author used AI. The question is whether they wrote something worth reading.