Before December 2025, I would make 1-2 Github contributions per month. Starting in December, I was making almost 1-2 contributions per day. What changed? Claude code. I’m still doing the same work I did before. I’m just doing more of it, faster, and more programmatically. I don’t consider myself a coder (yet) and I certainly couldn’t get far without AI support, but I am dramatically more effective and able now than 6 months ago.

Before Claude, After Claude
Before Claude Code, the majority of my day-to-day work comprised manually drafting and reviewing documents, typically in emails, Notion pages, Word, PowerPoint or building models in spreadsheets (Excel, Google Sheets). Now, the outcomes are the same but the method to get there is wildly different. When I’m working in a document, I’m working through or side by side with AI agents. However, most of the time, I’m working through Claude Code in the terminal and not even opening documents at all. Why? It’s faster, more accurate, and generates better results.
More code requires more decisions and responsibility. Architecture, engineering, and development decisions are now my choices and I face the consequences. Quickly, and amusingly, I’ve been rapidly adopting coding and engineering best practices because they work and deliver consistent, repeatable results. Here’s the key ways I’m working differently now:
- Default Python. The most noticeable change to how I work is I’m primarily working from Markdown files and defaulting to solutions using Python. The primary reason is that pairing AI, which is a probabilistic tool, with code, which is a deterministic tool, gets me to the solution faster, in a repeatable manner. Put another way, instead of focusing on prompt optimization in hopes of getting a solution purely through AI, I want to have AI help me build testable and repeatable solutions with Python. One of the most unexpected ways this has changed my work is I rarely edit Word or PowerPoint documents directly. Instead, I write content in Markdown and have Claude use Python libraries to convert Markdown to the desired format. Why python? I already have some familiarity, I find it easy to read, the uv package manager is awesome, virtual environments are easy to setup, and it generally meets most of my needs.
- Reliability and security. My first foray into AI coding was Replit, which has an opinionated and robust approach to security and safety. When I started shifting towards using Claude code for local work, those safety features were not in place and I immediately started making mistakes, such as exposing API keys and other secrets. Reliability, security, and maintainability have become top of mind and a major focus as I work to improve my skills.
- Testing. One of the first problems I encountered with AI agents was, “This dashboard is awesome! How do I know it’s true?” My knowledge of testing strategies were largely hypothetical and academic in prior work. I could write a user story and acceptance criteria, but that’s different than a unit test or integration tests. Now that I’m building the tools that I use to make my decisions, I desperately want to know that those decisions are based on sound data. Test driven development, specifically, has been critical to trust with the AI and building solutions with confidence.
- Documentation. The AI needs a way to work without me constantly hand holding and I need a way to review what the AI has done without manually reviewing every change. Documentation solves this problem for both of us. My ability to write and refine plans and requirements and the AI’s ability to demonstrate it’s meeting the requirements forms the basis of our relationship. Simon Willison’s Showboat and Rodney tools have been great additions to my workflow as tools that make it easier for the AI to prove its code works.
Overall, working with AI agents has forced me to think critically about data and software engineering with much more urgency and focus than I ever have before. None of these practices are new. Frankly, I’m just adopting long-established best practices for engineering teams and open source projects, but they feel much more important and urgent now that I’m responsible.
Same Results, Different Tools
I am now spending the majority of my time in a terminal, IDE, or AI chat application (Claude Code, ChatGPT, Gemini) and getting work done through AI agents. I rarely, if ever, open Word or PowerPoint files anymore except to check final results. Terminal emulators, such as Ghostty, and customization options have made working from these tools a joy to read and work from. Whereas before most of my work was working across cloud services, most of my day is now spent in markdown files. For example, this post was drafted in Obsidian. When I need a Word document, I don’t open word, I open Markdown, write, and convert to Word when ready.
My tooling preferences over the last 6 months have changed dramatically, moving away from all-in-one hosted tools towards more portable options that are open to external AI connections via MCP, API, or local access. This isn’t because cloud hosted tools have gotten worse, it’s that AI + open source solutions have become cheaper and better for my use cases.
- Portable data over walled gardens. Tools that force manual exports or interaction through a GUI are non-starters. They are simply too difficult, slow, and finicky to use with AI that I prefer to cut them out entirely.
- General AI over Tool-specific AI. Tools that can be used by external AI (Claude, ChatGPT, Gemini) are easiest to work with. For example, I can have Claude build a Streamlit dashboard on a DuckDB database. None of these tools require the use of an AI and I don’t have to use a proprietary AI built into those tools to be effective. Notion has an internal AI (Notion Agent) but also supports external agent usage via API or MCP. These tools allow me to take advantage of my general Claude subscription and customizations without changing how I work.
New Paradigms
The hardest change in working with AI has been unlearning key assumptions in how to prioritize and address work. Before AI, intelligence and effort were scarce resources that had to be protected and cherished through management and prioritization. After AI, intelligence is cheap and expendable. The prioritization and approval processes are now the expensive bottleneck. The costs have inverted.
- Intelligence is cheap(er). Two years ago, attempting to spin up a prototype web application, playing with it, and then throwing it away would have been seen as wasteful. I would have needed engineering support, assistance, and approval just to get started. Now, I can have agents draft something up in the background while I’m working on something else. The cost of prototyping and testing is already so much cheaper and faster that it is no longer a bottleneck.
- I am the bottleneck. Even though I am arguably more productive now than I have ever been, the pressure to increase productivity is constant. While I’m writing this, I could be spinning up agents to work on a project, providing feedback to an agent in progress, or planning a new project. The only limit to the number of spinning plates is my attention, skill, and ability to keep them spinning. Consequently, tasks I used to invest more time in doing myself (drafting emails, documenting requirements, etc.) have shifted me to an editor and managerial role. I think this will become true of just about all knowledge work.
- All work is group work. Before AI, I could rely on context in my head and operate with minimal or no documentation. The full result of an individual project could just be the final deliverable. Now, I’m usually working with at least one agent and it’s possible to have what are effectively 10 or more actors working on an individual project simultaneously. Documentation and planning that used to feel like overkill for solo projects is now the baseline to enable agents to work with me.
Conclusion
AI is not only changing how I work, but I’m genuinely having more fun working than I ever have before. I love the power and productivity that comes with AI support. I feel giddy and gleeful to work in the terminal, spin up multiple agents, and manage a virtual workforce. I love how the agents and processes are customized to how I think and my preferences. It’s like having my own personal API. At the same time, it can be mentally exhausting to have so many things to work on, so many agents to manage and to unlearn 15 years of assumptions, frameworks, and lessons learned that no longer apply. My daily habits today would be completely foreign and unthinkable to me two years ago. I’m excited to keep going.