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.
- Exploring the Age of AI Agents: the opening argument and the original table of contents.
- The Anatomy of an AI Agent: the parts an agent is actually made of.
- How Agents Think: reasoning loops, and why ReAct became the default.
- The Agent’s Memory: overcoming digital amnesia.
- An Agent’s Toolkit: the role of tools in turning reasoning into action.
- Guiding the Agent’s Behavior: the move from prompting to programming.
- Putting Up the Guardrails: safety as architecture rather than afterthought.
- Managing the Agent’s Attention: the context window as a first class engineering concern.
- Choosing Your Agent Framework: a guide to a landscape that reorganized itself two months later.
- When Agents Talk to Each Other: interoperability, and the end of the isolated agent.
- The Observability Gap: the wall every builder hits between demo and production.
- Agents in the Wild: real deployments at real companies.
- Responsibility and the Road Ahead: capability without responsibility is risk with extra steps.
- The Map We Drew Together: what I got right, what surprised me, and where the road goes.
Building the Things I Write About
- What I Did on My Summer Vacation: building Agent Mode for Gemini Scribe.
- The Examined Life of a Developer: a GitHub activity reporting tool, and the beginning of an obsession with measuring my own work.
- On Context, Agents, and a Path to a Standard: the case for GEMINI.md.
- The Joy of Deleting Code: rebuilding the podcast RAG system that started this whole blog.
- Bringing the Office to the Terminal: the Google Workspace extension, which I later used to write a few thousand goodbyes.
- The Guardrails of Autonomy: the Gemini CLI policy engine.
- Bringing Deep Research to the Terminal: research as a first class terminal workflow.
- Everything Becomes an Agent: watching my own scripts evolve whether I planned it or not.
- The Fingerprint of Sound: speech embeddings.
- MCP Isn’t Dead, You Just Aren’t the Target Audience: why the CLI versus MCP debate misses the point.
- Gemini Scribe from Agent to Platform: the plugin grows up.
- Scoping AI Context with Projects and Bundled Skills: two features I wanted badly enough to build.
- Automation and Measurement in Gemini Scribe 4.8: scheduled tasks arrive.
- Agents as Building Blocks: the Antigravity SDK, and the last thing I shipped at Google.
- How I Built a Scoreboard for My Own Agent: measuring agent performance instead of guessing at it.
- Great Video on Gemini Scribe and Obsidian: someone else explaining my own plugin better than I do.
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
- Full Circle: why I went back to being an individual contributor.
- The Unseen Thread of Context: context as the thing that makes collaboration work, with people and with models.
- The Last Programmers: on being part of a generation that learned to code before the machines did.
- The Manager’s Edge in the Age of AI: the years of delegation practice turn out to be transferable.
- The Era of Personal Software: building tools for an audience of one.
- It’s a Poor Craftsman Who Blames His Tools: AI and creative writing.
- 4,255 Contributions: a year of building in the open, and the post that turned out to be a diagnosis.
- The Three-Move Problem: why sequencing career changes beats attempting all of them at once.
- Twenty One Years, Not Everyone Wants a Hobby, and Thousands of Goodbyes: the ending, the beginning, and the arithmetic of a career.
Building Vycari
The first three posts of the next chapter. None of them is a launch announcement, which is the point.
- The Chat Box Is a Detour: chat was an honest interface for 2022’s models and a habit ever since.
- The Backlog Was a Coping Mechanism: the first post in a series on how the two of us build, and why three quarters of our backlog turned out to be decisions rather than work.
- Not Everyone Needs Superintelligence: what a consumer agent actually runs on, and what the study of our own product showed about fabrication and model size.
Everything Else
The promise I made last year to stop worrying about staying on topic.
- Starlink Mini Field Review: a dish, a car, and several thousand miles.
- Temperature 1.0: why Angine de Poitrine defies music norms and I cannot stop listening.
- The Köln Concert and Creative Constraints: constraints as a creative asset in music and in software.
- The Bill That Wants My 3D Printer to Police Itself: a flawed piece of California legislation, read closely.
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.