Foundations or vibes? Lessons learned from using AI in software engineering

Foundations or vibes? Lessons learned from using AI in software engineering

Software engineering is being transformed by AI faster than any other domain. Unpacking how this transformation is playing out may offer a glimpse into the future

By George Anadiotis

Greg Foster’s journey into software engineering began in an unlikely place: a Nevada high school where he couldn’t land a job at Starbucks. Instead of serving coffee, he taught himself iOS development on a pirated copy of Mac OS running in VMware on a family Intel tower.

His first app, a pros and cons utility, had plenty of memory leaks and would crash after 20 – 30 minutes. But it sold for a dollar in the early App Store, and that was enough to ignite a lifelong obsession with the craft of software engineering.

That obsession evolved from building apps to building for other builders. After college Foster joined Airbnb, initially as an iOS engineer before being reorged onto infrastructure teams working on developer tools.

The deeper he went into engineering, the more he became focused not just on how to build things well, but how to enable others too. This led him to cofound Graphite, where he now serves as CTO running what he calls “a dev tools team for the entire industry”. Foster is now building the future of software development with Cursor.

Foster doesn’t just have a front seat to watch how AI is changing software engineering – he gets to shape the change. We caught up and talked about the past, present and future of software engineering. The takeaway? There is a world of difference between vibes and solid foundations for software engineering at scale.

The Rapid Evolution of Developer Tools

The transformation in Graphite’s positioning tells the story of an industry in flux. The company’s motto circa 2020 – “Graphite helps teams on GitHub ship higher quality software faster” – has evolved into “Graphite is the AI code review platform where teams ship higher quality code, faster”. This shift reflects what Foster sees as unprecedented change in the developer tools space over the last two years.

“Developer tools have never been experiencing more change and upheaval than in the last two years, and that’s a blast”, Foster says.

For decades, the formula for successful dev tools was straightforward: look at what large engineering teams at Google, Facebook, and Amazon built internally, then bring those proven solutions to the broader market. Companies like PagerDuty, Datadog, and Airflow all followed this pattern.

But the AI era has disrupted this model. Innovation is happening so fast that you can’t wait five years for patterns to mature at large tech companies. Now, dev tools companies must innovate themselves, staying neck and neck with or even ahead of internal tools at major tech firms.

The purchasing dynamics have shifted too. Where engineers once struggled to expense a twenty dollar IDE, today they’re readily adopting multiple AI coding tools, often with top-down executive support – or even pressure – pushing past traditional security and procurement barriers.

From Code to Impact: The Transformation of Dev Tools Economics

Foster’s personal evolution mirrors a broader shift in how value is created in software. Early in his career at Airbnb and Graphite, he focused purely on coding excellence, obsessing over the craft. But over time his mindset shifted toward a different question: what has the most impact in the organization?

“I really took on a mindset of how can I replace myself?” Foster explains. Even if he was doing an amazing job, he wasn’t that much better than two other talented teammates he could hire and enable.

His time became better spent building out the team, tackling ambiguous problems, and creating systems that would work even if he got sick. This shift from individual contributor to force multiplier reflects a maturation that many engineers experience, but it also points to something larger happening in the industry.

AI has penetrated every part of the developer tool ecosystem. Source: a16z

The economics of developer tools have undergone a remarkable transformation. For decades, venture capitalists were skeptical about how big dev tool companies could really get. Engineering teams had minimal purchasing power, having to battle over IDE expenses while sales and marketing teams had generous budgets for their tools.

But by 2025, the landscape has completely inverted. “The most insane bleeding edge, fastest growing, highest revenue companies in history happen to be dev tool companies – the Lovables and Cursors and Claude Codes of the world” Foster says. What changed?

AI didn’t just create new capabilities. It fundamentally shifted market dynamics, giving developers unprecedented purchasing power and creating tools valuable enough to command serious budgets. The skepticism has evaporated, replaced by a gold rush of innovation and investment in tools that make developers more productive.

Developer Productivity: Hard to Measure, But the Value is Real

Developer productivity has always been notoriously difficult to quantify. Unlike sales teams where you can measure deal volume, or recruiters where you count hires, Foster believes engineering output resists simple metrics. Lines of code changed tells an incomplete story at best.

“I think developer productivity is extremely hard to measure. At the same time, I’m convinced that the wave of AI dev tools we’re seeing right now are absolutely increasing developer productivity,” Foster notes.

The evidence comes not from perfect metrics, but from patterns of voluntary adoption. Every engineer Foster knows uses some form of AI assistance, whether it’s autocomplete, Cursor-style agentic editing, or more advanced autonomous coding agents.

They’re using these tools in their personal projects, without managerial pressure. When both managers push adoption and engineers voluntarily embrace these tools in their own time, the signal becomes clear: the productivity gains are real.

There are resisters. Not everyone wants to maximize productivity at all costs. Some engineers care more about the craft and enjoyment of coding, preferring familiar patterns over constant change. That’s a valid choice, Foster says. But for those focused on maximizing output, experimenting with AI tools has become essential.

Vibe Coding vs. Enterprise Software: A World of Difference

The price for to pay is that nobody – not even the Andrej Karpathys of the world – can really keep up anymore. Still, Foster finds that AI has actually made his side projects more fun than ever. But there is a world of difference between side projects and enterprise software, vibe coding and rigorous software engineering.

The term “vibe coding” captures a particular mode of working with AI: treating code generation as somewhat of a black box, feeding error messages back to the AI until things work, then QA testing the outputs without deeply understanding the implementation. It’s a valid approach for side projects and experimental apps.

Vibe coding was introduced in 2025, and it’s taken off in a way even its creator can’t keep up with anymore

But enterprise software is a different story. To maintain a codebase for years, collaborate across teams, and ensure enterprise-grade reliability and uptime, a  different approach is required. The critical difference isn’t whether you use AI tools. It’s whether you deeply understand the code and the architecture of the project.

In mission-critical software, people care a lot about uptime, bugs, maintainability,  and extensibility, Foster notes. When AWS goes down, engineers must understand what’s running in production so they can fix it. The day engineers stop understanding the code in their systems is the day AI-assisted coding has gone too far.

Good Software Engineering Practice is More Important Than Ever

One of the most counter-intuitive insights from the AI coding era is that code review has actually become more critical, not less. In the past, when a teammate submitted a code change, you could trust they had at least read and thought deeply about it because they had to type it themselves. In 2025, that assumption no longer holds.

“I don’t know. Maybe you thoughtfully wrote it, or maybe you were watching a TV show and you asked Claude Code to write it. Or maybe one of the background agents just created this code change, and no human has ever laid eyes on it,” Foster explains. This reality means code review has taken on magnified importance as the key checkpoint for accountability, pedagogy, and quality assurance.

The introduction of AI coding brings non-determinism into what was previously a deterministic field. But Foster isn’t particularly worried about this. As he sees it, both humans and AI systems are fallible and can introduce bugs.

“I already act as an engineer assuming that any code change might accidentally have an issue in it, and yet we achieve good uptime,” he says. The reason this works is because engineering involves much more than just writing code.

All the classic practices remain essential: modularizing code to limit blast radius, thoughtful error handling, incremental rollouts, thorough testing. These practices mattered with human-written code, and they matter just as much, if not more, with AI-generated code.

How AI Powers Code Reviews in Graphite

Graphite has implemented AI through three progressively sophisticated approaches. First, AI code review scans pull requests and leaves inline comments about style, functionality, and security issues. While false positives frustrate users, the acceptance rate hovers around 50%, matching human comments.

Second, they brought chatbot capabilities directly into the PR page. The chat interface can explain code, pull in context from other parts of the codebase, and help resolve reviewer comments without checking out code locally.

Third, currently in alpha, Graphite can trigger coding agents like Claude Code or Codex directly from the PR page in sandboxed environments. Foster sees this as the evolution of CI: instead of running deterministic scripts, run non-deterministic AI agents and feed the output back.

Users might be skeptical at first, but most will have an “aha” moment, Foster says. The AI tool catches a subtle, important bug a human reviewer might have missed. Suddenly they realize it’s absolutely worth it. After tens of millions of PRs and millions of comments, the pattern appears here to stay.

The Path Forward: Education and Thoughtful Adoption

How should new engineers approach software development in the AI era? Foster finds himself walking a careful line, avoiding what he calls the trap of being “that C programmer who’s looking at a new generation of Python programmers” with disdain.

The analogy extends back through programming history. Should engineers learn Python or be forced to use C to understand memory and pointers? Should they use C or Assembly to understand how computers really work?

You can make arguments either way, but Foster’s bigger concern is accessibility. Coding is already hard. If you make it too hard, people simply won’t learn it. They’ll fail to hit the activation energy and pursue different careers, never falling in love with the craft of software engineering.

Vibe coding is fine for side projects, but it breaks at scale. The fact that it’s pushed as the cutting edge of AI says a lot about the AI bubble

“I don’t have that much sacred holiness around how people conduct their engineering,” Foster admits. At the end of the day, these tools are means to ends. If AI tools help people fall in love with creating using technology, and they learn deeper principles over time as they encounter bugs and crashes, that’s a valid path.

Maybe they’ll learn those principles through AI-assisted debugging rather than raw exposure to low-level concepts. Either way, they’ll develop the fundamentals.

Foster is optimistic about the new generation of engineers who will use AI from day one. They’ll be very skilled at leveraging these tools, and they’ll find their own path to understanding the fundamentals. The key is supporting that journey rather than gatekeeping based on how previous generations learned.

A More Fun Time to Build Than Ever?

Foster sees unprecedented opportunity in software engineering today. In the late 2010s, much of the work felt like polishing and incremental improvements on existing ideas. AI has blown everything wide open again. There’s tremendous overhang and opportunity to build genuinely novel, exciting products.

“For anyone listening, I really truly deeply believe there’s never been a better, easier, more fun time to get involved in software engineering, building apps, building companies,” Foster says.

That attitude may extend beyond software engineering to other domains, exemplified by the recent release of Claude Cowork. The lessons from software engineering’s rapid AI adoption offer valuable insights for other industries.

Engineers had to quickly develop frameworks for using AI assistance while maintaining code quality and system reliability. They learned to balance automation with understanding, to implement new testing and review processes, and to think critically about which tasks benefit from AI and which require deep human expertise.

For professionals in other fields beginning to explore AI capabilities, this experience suggests a path forward. Use AI to handle repetitive work and accelerate creation, but preserve the human judgment, domain expertise, and creative thinking that fundamentally drive quality outcomes.

The invitation is clear: whether you’re an engineer, a marketer, an analyst, or any professional facing AI transformation in your field, now is the time to engage.


Pragmatic AI Online Training

Theory and hands-on labs. Limited seats cohort. On site at Lake Kaiafas

Click here to register for the Pragmatic AI Training Retreat



Join the Orchestrate all the Things Newsletter

Stories about how Technology, Data, AI and Media flow into each other shaping our lives.

Analysis, Essays, Interviews and News. Mid-to-long form, 1-3 times per month.


Write a Reply or Comment

Your email address will not be published.