This morning I woke up, poured my coffee and walked out to my garage office mentally prepared to do something I haven’t done in years; manually typing a ton of words onto the screen. I had read The Pragmatic Engineer’s challenge and knew I wanted to write something, and get my thoughts down that have been in my head this past year. So I kicked off my fleet of agents to do my day job, opened my text editor and started typing…
Who Am I?
I’ve been building software for a long time. Since first learning ActionScript to build stick figure first-person shooters in Flash MX back in 2004, I’ve spent 22 years building software and working with technology. My tech stack has changed over and over again: ActionScript/Flash, HTML/CSS/JavaScript, ColdFusion, Java, Python, PHP (WordPress, CodeIgniter, Laravel), TypeScript, React, Vue, Go. Monoliths to microservices, and back to monoliths again. And the way I’ve done work has also changed frequently over the years. From waterfall to agile, to mob programming, back to agile. My relationship with product managers has been tenuous over the years, and I’ve observed builders being frustrated by non-builders, and non-builders being frustrated with the builders.
The cornerstone of my career has always been in the scrappiness of getting things done. Shipping today so the customer feedback comes in sooner so we can ensure we are building the right thing. Cutting corners pragmatically to fit the needs of the business and not getting bogged down in science projects without clear objectives and outcomes. This positioning of mine led me to move from individual contributor to manager to executive leadership. I was viewed as someone highly technical who understood product and sales enough to carry the vision to the engineering teams.
All of this is to say I have been around technology and SaaS businesses for quite a while. I’ve sat in the middle of engineers and executives on countless occasions acting as translator and referee. I’ve also seen the industry change frequently over the last 22 years.
As AI technology took off in 2022 I was VP of Engineering at Inside Real Estate. Leading Engineering teams of a collective 92 people. The company had been in rocket-ship growth mode since I joined in 2017. I came in as a senior engineer on a small team, and quickly grew in leadership and P&L responsibility at the company. Like any startup we worked fast, experienced growing pains, but overall had tremendous success. Due to macroeconomic factors with real estate and interest rates by 2022 we were experiencing flat growth for the first time in my tenure at the company.
Becoming “AI Pilled”
Then like many others, I was blown away by ChatGPT. I used it more as a therapist than a coding assistant in the beginning. But quickly it became the replacement for Stack Overflow and Google when trying to remember algorithms or forgetting the CLI commands for working with AWS. I didn’t really start using AI for real software development until I began using Cursor.
I started using Cursor for personal projects, and I immediately set off to build something with AI. What came of that was Santa Chat, using AI to let kids talk to Santa, and BrandAI which just lets an LLM determine color scheme, font, and heading copy based on the business you want to build. I built these mostly using Cursor’s tab autocomplete, which immediately sped my development significantly (but nothing compared to what came later).
As models got better, so did my understanding and ability to wield it. When Anthropic announced MCP in 2024 I immediately jumped on the hype train. I built my own MCP server that I would use with Cursor’s agent mode as the harness. I named my MCP server “SageMCP” and for the first time I used AI to recursively make itself better. I would sit in the MCP server repo and chat with Cursor. I would explain a goal I had and then ask it to build the tools it needed in order to accomplish those goals. And I had SO MUCH FUN.
What I built was basically an AI companion with a ton of random AI tools that seemingly gave me super powers. It did browser automation, deep web research, diagram any codebase, curated its own knowledge base, generated images, and more. My favorite use case was leveraging it to help me win prediction market trades on Kalshi. It would check 4 sources for weather in NYC, determine whether there was an edge in the prediction market for highest temperature, and then send me a recommendation for that trade. It also would automatically paper trade for me to build its own strategy on Alpaca, albeit it didn’t trade very well.
SageMCP was so powerful for me that when ClaudeBot / OpenClaw came around and I tried it out, it didn’t stick. But what OpenClaw did expose me to was PI Coding Agent which fit perfectly with how I instinctively built the MCP server. I was vibe-coding my own tooling. Today I use a very custom PI harness heavily in my work. SageMCP Server is still up on GitHub but I don’t use it anymore because my tooling and ability has changed.
I became fascinated with the possibility of what AI could achieve. And of course, I attempted to build a money printer. I gave my AI Agent a $20 Polygon wallet, with the instructions to research strategy, then grow the wallet as fast as you can. 5 minutes later it took a 75x leveraged position and lost 75% of its capital, then it bridged the remaining money into a wallet on a chain it did not have access to. Then it came back to me asking for more money. Guardrails are extremely important when working with LLMs.
Vibe Coding
Having watched the models get better, and having built my own harness to achieve better and better results, vibe coding was the natural next step in AI development. I stopped looking at code in my own personal projects very early on. But that didn’t immediately translate into the way corporate work was done.
With my personal projects I didn’t really care how they were built, what abstractions were made, or frankly if production was down for a day or two. Obviously, that’s not appropriate in enterprise software. But I believe there is a version of “vibe-coding” that is.
As I mentioned before, Inside Real Estate was facing challenges with growth, mainly due to macroeconomic themes outside of the company’s control. But there was an opportunity with AI we could see but didn’t immediately know how to act on. We had a full year roadmap with a massive backlog and no available resources to work on the future of AI at the company.
So I vibe coded it.
Building the Streams App
Instead of project planning, holding an executive round table, and pulling in data to argue for the cause. I went and built the thing. I opened up Cursor and created a PRD markdown file. In that file I put the description of what I wanted to build, the tech stack I wanted it written in, a list of goals for the project and a list of anti-goals. I explained that the entire thing needed to be spun up on any machine locally within 1 minute of reading the readme, and the entire project needed to be unit tested and ready to deploy. Then I opened the agent CLI and typed: @prd.md go!
What was built was the foundation for what would become the Streams AI mobile app.
I built an AI Assistant leveraging MCP to connect to all the platforms and tools for our users. It took a single afternoon. I brought the prototype directly to our CEO and immediately he said “This is it, this is our future”.
From that demo our short-term roadmap changed overnight, and my responsibilities at the company changed drastically. From leading 90+ engineers across our entire flagship platform to leading a comparatively small group (8 engineers) in building our AI Native future.
From first principles we replaced tooling along the way. Why use React Native when AI can port Swift to Kotlin in minutes? We are small enough to not step on each other's toes, so why track every single task in Jira when we can give a single engineer a complete slice of the product? And how we built the APIs became a process of sending AI to scan existing code, write the APIs, and have a senior engineer steer the code via PR review. We instilled guardrails and strict linting and we ran CI/CD to ensure stability for our rapid deployments.
The rate at which we were shipping code is something I’d never seen before in my entire career. We were shipping code 10 times a day. The cycle time from ideation and feedback to implementation in production was less than 48 hours.
As we built, the hardening of the software being produced got better and better. The quality of the work could hardly be defined as vibe coding anymore.
And the adoption was fast as well. 20,000 downloads in the first month. More daily active user growth than we had seen on the platform in 4 years, and the buzz around what we were doing was leading to enterprise deals and partnership agreements. We could see our future.
The AI adoption led to waves around the company as well. My CTO spearheaded the challenge to change the way support and onboarding was done at the company. Product managers began leaning into AI tooling as well, drastically changing the way they did work day-to-day. Our CEO curated a new strategy and embedded AI across every slice of our business.
Adoption Challenges
One of my biggest challenges was convincing engineers this was the future of our careers. From the beginning there was skepticism that AI could be trusted to handle real workloads at the company. The repeated concerns were that AI just produced slop and that it was too risky to trust anything created by AI. What I found was that more often than not, the naysayers had not actually taken the time to deeply work with AI themselves.
I was an evangelist in the company, challenging senior engineers specifically to try to take big swings with AI development. These are engineers with decades of experience who really know their subject matter inside and out. Each time these engineers took real time to dive into working with AI what they ended up producing was incredible. All it took to convert the skeptics was deliberate focus on using AI to solve a real problem.
These engineers began rapidly solving problems that had been lingering for years or only exposed under the highest level of strain. And because the keyboard was no longer a limiting factor, these engineers could be working on multiple organization-wide complex challenges in parallel.
The biggest wins for the company came from these senior engineers, with years of battle-tested experience, harnessing AI. They knew what the outcomes should be, the correct guardrails to put around the work, and knew when to accept the PR and when to push back. And even though most of them were still reviewing most of the lines of code per PR before I left the company, their productivity was at least 10x compared to before AI development.
The Next Opportunity
While at that company, I felt that I was watching the opportunity of a lifetime pass by. I saw this massive wave and I was just sitting on the beach holding my surfboard. It was crystal clear to me that everything had changed, but everyone didn’t know it yet. So I left the company to join a tiny startup, Agent Industries, as their CTO.
The entire company is just 4 people but we are building AI Native from the ground up. We ship in days what historically would take months to build. Every aspect of the business is handled with AI in some shape or form. Market research and positioning, prospecting, marketing and product development are all enhanced and accelerated by AI.
Speaking from my position at the business, I’ve shipped a multi-tenant, HIPAA-compliant, workflow orchestration platform in weeks. At all times I have 4 - 8 independent AI harnesses writing code, deploying, monitoring production, and recommending improvements. The entire tech stack is a single monorepo that includes infrastructure as code. There’s a strict CI pipeline with linting, unit tests and integration tests with complete code coverage that run before any deployment. The list goes on and on.
The key point being, I’m building what used to take entire engineering organizations to build, in a fraction of the time. Everything has changed and that will be apparent to everyone very soon.
The cost of building is cheaper than it has ever been. Because we have such a small team we haven’t needed to implement all of the tools larger organizations need to. Today we have no Slack, we just communicate in our Google Workspace. We have no Jira, all of the issues are tracked in GitHub. We have no Salesforce, the product we have created operates as a pipeline and prospecting tool well enough for our size. Our cloud stack is just AWS. And then we have subscriptions to both OpenAI and Anthropic. There’s still ongoing decisions on when to implement a third-party vendor to solve a problem that’s already been solved, and when to implement it ourselves in a single afternoon.
What My Days Look Like
Coffee in hand and a walk to the garage I fire up my laptop and open GitHub & Ghostty. I open 3 tabs each with 2 panes - left side AI Harness, right side terminal. In those 3 tabs I open Claude Code, Codex, PI. Each of them has their own copy of the project repository and each of them manages their own worktrees. Typically each of those individual harnesses is running as an orchestrator running a handful of sub-agents.
All of the work is tracked in GitHub through Issues with milestones and labels. There is a skill in the monorepo that expresses how to work on these GitHub issues. I just open a tab and type: “#190” and the AI Harness knows to start work on GitHub Issue 190 and it knows to break the work into smaller manageable chunks to spin out to sub-agents. When those sub-agents are completed the orchestrator reviews, runs the full CI pipeline and then submits a PR.
Another skill embedded in the repo is one for visual inspection. Each harness can open up the app, log in, take actions and self-review their own work visually. This visual inspection is required for any visual change to the entire application.
There are scripts in the repo that enable working with the production environment. My favorite is a health script that reads from AWS and our other third-party vendors and reports the health of each system. There is also an EC2 instance that runs this on a cron and if something is unhealthy it will spin up a Claude Code session to address the issue, submit a PR, then ping me to review / deploy.
Speaking of deploy, thanks to IaC, scripts and skills. I can deploy from GitHub actions or I can just tell any AI harness to deploy. I often will tell it “please deploy and babysit for me. Ping if you need anything”.
My AI Agents can be completely autonomous because of all the work that went into building guardrails. Nothing can get to production without passing a very strict linter, thousands of unit tests, hundreds of integration tests, a security scan, a PII sweep and a full visual inspection of every visual change in the product. The more autonomy I give the agents, the more deterministic the system needs to be.
What Am I Doing?
I’m thinking, planning, reviewing, and testing. I’m using the product we’ve been building extensively and making sure everything works exactly as I’ve imagined and runs flawlessly. I’m creatively exploring directions the product could take and how we can unlock outcomes we previously hadn’t considered. And because I’m spending my time being creative, I feel incredibly rewarded at the end of the week looking at everything that’s been accomplished.
The dichotomy is interesting though. I used to have multiple teams of engineers at my disposal to accomplish business goals, and today I don’t have any. Interestingly I don’t know when I will need to hire another full-time developer. In the short run I likely will leverage contractors as a backstop for when I’m unavailable but we will need to achieve massive scale before I see merit in hiring an engineering team, even of 2-3 people.
Where AI Is Lacking
I like talking with people. I love collaborating and working together to achieve a common goal. Unfortunately that collaboration now happens with an AI agent, at least in the sense of programming. I still talk with everyone else at my current company, but it’s less in the weeds of specifics and more high level. This takes some getting used to, and I personally am trying to fill the human interaction gap by having a more active social life outside of work hours.
The landscape shifts weekly. And the hype train has become annoying. Models and tools get better every single week and each week calls for a complete shutdown of innovation from one of the top AI companies. It’s easy to look at what you’re building and believe it’s gone completely obsolete due to the latest launch from another company.
And the AI harnesses still fly off the rails on occasion. I’ve burned through hundreds of dollars in tokens having a frontier model over-architect something that did not need building. It imposed absurdly strict compliance restrictions. It was asking for my literal signature on a PDF with every single deployment. Often I am coming to the AI with “this is completely bonkers, and we need to fix that now”. AI is very good at optimizing for what it thinks is needed to be done, that doesn’t mean it always has great judgment.
None of these issues has changed my perspective of where this is all going.
My Opinion On Where This Is All Going
I’m actively putting my money where my mouth is in my current role. But here is what I believe the future looks like. My thoughts and opinions are entirely my own and do not represent any affiliated company.
We won’t look at code. Humans will have the architecture and concepts of the product in their minds and on the whiteboard but they will not even review PRs.
Infrastructure as code will be table stakes. Surprisingly this hasn't been the case despite tooling such as Terraform and CDK being around for years. Many places still log in to a cloud console to provision services.
Billion-dollar businesses will be run by fewer than 10 people. There will still be experts in individual verticals in a business: product, sales, marketing, finance, etc. But those people will leverage AI for 90% of their work.
Org charts will shrink. There won’t be managers managing managers, and there won’t be managers running bigger teams unless they are literally the CEO of the company. I believe org charts will only go down 3 levels. CEO → Subject Expert → IC / AI Agents
The most senior engineers become more valuable. The best of the engineers will be running their own fleet of agents with effective guardrails and single-handedly sit in place of entire engineering organizations.
I’m optimistic for the future. I think it’s easy to look at the current environment and this AI wave and believe we are entirely cooked as a human race. Losers contract when faced with a crisis, winners expand. I believe we can expand from here. I believe that there’s an opportunity for more humans to have more control of their time and the ability to be more creative in their pursuits. I hope that organizations create twice as much instead of firing half their staff, but when that staff is fired I hope they can leverage AI to compete with their previous employers, effectively leveling the playing field. I hope AI gives more children the chance to pursue areas of intrinsic interest rather than following the playbook of traditional corporate work.
There’s a motto I’ve had for myself for years. I believe it’s a paraphrase of a Tim Ferriss quote: “Don’t overestimate the world, and underestimate yourself”
In today’s world, don’t underestimate what you personally can achieve while harnessing AI. I beg that you dive in, head first, into what’s possible and get your minds spinning on what you can build.
And if the robots win, remember I always said please when asking you to build things.