Why I went back to the keyboard
I left a CTO chair to be in the code again, at exactly the moment the industry decided code was the part that no longer needed a person.
8 min read
I was a CTO in 2023. I want to be in the code.
That is the whole motive. I will not dress it up. Producing code got cheap while evaluating it did not. I spent most of my career as the person who could still write the thing, and for most of those years I was slightly embarrassed by that. Player-coach is a polite name for it. The less polite name is that I never fully left the keyboard, even when the title said I should have.
I started writing PHP in 1999, on version 4. I have been on Laravel since the v4 beta. I write PHP 8.4. I have been hands-on on Laravel 12, and Laravel 13 is current. Those are not credentials I am collecting. They are the stack I still sit in.
The path that got me to a CTO chair is long and not mysterious.
UPS, Phoenix, May 1998 to May 2005. District software engineer. Deployments across three states and hundreds of locations. I also did tech support and I also supervised. That is seven years of shipping software into a place that does not care about your elegance. It cares whether the location can run.
Fidelity National Financial, October 2005 to January 2007. Sole corporate PHP developer at the nation's largest title insurance company. One person, one language, a company that size. You learn what sole actually means when the queue does not have a second name on it.
Electric Sheep, January to April 2007. Project manager for IBM, AOL, STA Travel, NBC. First PHP/MySQL APIs. Short stretch. Real clients. The work was making the interface exist, not talking about whether it should.
Seesmic, December 2007 to January 2009. Content lead. Different hat. Same habit of being close to the work.
Then the campaigns. McCain, August 2009 to November 2010. Newt in 2012. Romney in 2012. Election day does not move. I will write about that elsewhere. What belongs here is that those years did not take me off the keyboard either. Internet strategy, sites, donation pages, data collection. The titles changed. The work still had a compile step.
Zibtek, June 2014 to January 2017, in Pune. Adobe and Livefyre. Tech lead for an offshore team. Per-client Agile. Concurrent engagements. I built internal Laravel tools for commit monitoring and for client-developer communication. I was leading, and I was still in the repo.
Vaught Consulting from November 2010 to January 2024. Agency Intentional is the rebrand, January 2024. That is a name change, not a new person. I ran a practice for a long time. I will not turn this into a firm history.
Life Happens, February 2018 to December 2023. That is the chair. IC from February 2018 to January 2019. Director of Engineering and Director of Customer Success, January to October 2019, dual hat. Director of Technology and Engineering, October 2019 to January 2023. CTO, January to December 2023. India contractors, typically five, peaking at fifteen. About fifteen US W-2s. Event-sourced rewrite, SEC and FINRA covered by construction. Board and carrier CIO peers. Three continents. Support in the Philippines. Staff in the US. Contractors in India. I was the person who had to make that hold together.
NAIFA is the merger at the end of 2023. I was retained January 2024 through mid 2025 as a founding client. I will not overplay that. It is a continuity fact, not a victory lap.
I never fully stopped writing code through any of that. For most of those years I was slightly embarrassed by it. The industry had a story about what a senior person does, and sitting in a file was not the story. The story was meetings, vendors, the org chart, the board packet. I did those things. I also kept a local environment. I also reviewed the PR by reading the diff, not the summary. I also wrote the awkward part myself when the team was blocked. I treated that as a private habit. I should have treated it as the job.
The embarrassment is the player-coach topic, and I will not pretend I have resolved it. I still think a leader who can do the work is more useful than a leader who has forgotten how. I also know that doing the work can become a way to avoid the part of the job that is only the job if you stay out of the file. I have been on both sides of that line. I am not going to invent a scene where I chose one. I will say what is true: I was a CTO in 2023, and I want to be in the code.
The timing is inconvenient. I went back toward the keyboard at the moment the industry decided code was the part that no longer needed a person. Agents write the function. Models propose the patch. Scheduled tasks run overnight. MCP puts tools in the loop. If producing code is cheap, why would anyone go back to producing it?
Because evaluating it did not get cheap.
I run agents. I run MCP. I run scheduled agents. As of an August 2026 audit I have 24 scheduled tasks, 22 of them enabled, about 41 invocations a day. That is not a flex. That is an estate I could not enumerate from memory, and I have been the one building it. The cheap part is the generation. The expensive part is knowing whether the generation is true, whether the cron matches the prose, whether the monitor is actually monitoring, whether a disabled finder is still firing, whether a wrapper that was supposed to stay thin grew a policy. I have written about that estate separately. What belongs here is the reason I am in it at all.
I am in it because I still have to read the output. Someone has to say what done looks like before the run starts. Someone has to treat a misunderstanding as their defect, not the model's. Someone has to make the one-round-trip request, the kind you write when the other side of the line is eight hours away and you will not get a clarifying question before they start. I learned those habits leading engineers I could not interrupt. I thought they were leadership habits. I was half right. They are leadership habits. They are also the only habits that transfer when the other side of the line is not a person.
That is what I got wrong. I thought the transferable thing from the CTO years would be taste, or architecture, or the ability to hire. Those still matter. They are not what I use every day now. What I use every day is: one round trip. Define done. A misunderstanding is your defect. Those three survive the move from a team in Pune and a support desk in the Philippines to a scheduled task that will run at 3:30 whether I am awake or not.
I am not claiming a publishing pipeline is agent-run. I am not claiming I have replaced a staff. I am claiming I went back to the keyboard because the keyboard is where evaluation happens, and evaluation is the work that did not get cheap.
I can write PHP. I have written it since 1999. I can write Laravel. I have written it since the v4 beta. I can sit in 8.4 and 12 and 13. I can also sit in an agent transcript and see that the task did not do what the description said. Those are the same job if you squint, and they are not the same job if you are honest. The first one produces. The second one decides whether the production is allowed to stand. I left a chair that was mostly the second job performed through people. I am doing the second job again, performed through tools, and I am also doing the first job because I never actually stopped.
I will not invent a leave-the-chair moment. There is not a scene I am willing to write. There is a year, 2023, and a title, CTO, and a sentence I have already used: I want to be in the code. The industry around that sentence changed while I was still saying it. Code got cheap. Evaluation did not. I went back to the keyboard anyway. That is the post.
The rest is inventory. UPS taught me deployments that have to land in hundreds of locations. Fidelity taught me what sole means. Electric Sheep taught me APIs for companies that already had names. The campaigns taught me a date that does not move. Zibtek taught me a spec that has to survive a workday I am not in. Life Happens taught me dual hats, three continents, an event-sourced rewrite that had to be covered by construction for SEC and FINRA, and a board that includes carrier CIO peers. The 2024 rebrand is a name, not a new person. NAIFA retained me as a founding client and I will leave it there.
I am slightly less embarrassed now about still writing code. Not because the industry came around. Because the industry made generation abundant and left judgment scarce, and I already knew how to be the person who writes the spec before the day starts. I was doing that for engineers. I am doing it for agents. The chair was never the point. The point was being close enough to the work to say whether it was done.
I went back to the keyboard. I had not really left.
Related: Player-coach, Verification, Many hats