Implications of AI Coding for Software Engineering and Startups
Kelly Wagman, University of Chicago Computer Science PhD and Tensility intern
Wayne Boulais and Armando Pauker, Managing Directors, Tensility Venture Partners
AI code generation is radically changing how much skill someone needs to code and how quickly code can be produced. In this blog, we talk to multiple entrepreneurs and software engineers to understand how AI is impacting software development and what this means for startups and software engineering as a profession.
Overall, we find that AI coding tools have made it easier for both software engineers and non-technical builders to produce software, leading to wide adoption of these tools. We propose an AI Software Engineering Matrix to describe the environment today where AI coding is particularly good at taking over low complexity tasks such as ideation and prototyping MVPs, while it is used in a more assistive way to support complex software development. As AI takes over more programming tasks, software engineers will see their role change to include new product and business skills. The increased speed of developing MVPs and full-fledged products has implications for startup hiring, startup capital required, and defensibility. These rapid changes have inspired a new phrase—vibe coding—to capture the moment.
AI makes programming easier, leading to wide adoption and the emergence of vibe coding
Code generation has proven to be one of the most widely adopted use cases for LLMs since the release of ChatGPT in 2022 because it simplifies programming. In Stack Overflow’s 2024 survey of 65,000+ developers, over 60% said they use AI tools in the development process, an increase of 70% from 2023. Y Combinator recently said that a quarter of their startups had at least 95% of their code generated by AI.
AI makes programming easier because LLMs function like a new layer of abstraction on top of traditional programming languages. An abstraction is a simplified way to code a computer—like a driver using a steering wheel, brake, and accelerator instead of directly controlling a car’s engine. The LLM abstraction means that a programmer (like the car driver) can specify what they want by using a prompt, and they do not need to know all the technical details of the programming language (the engine). Abstraction layers in programming computers are not new—in fact, programming languages themselves are abstractions on top of lower-level assembly and machine code, which programmers no longer write by hand.
LLMs are particularly good at generating code because their training data includes a large volume of public, open source examples, particularly in popular languages like Python and Java. The structured nature of code and the ability to quickly validate whether it “works” (in a basic functional sense) by running the code also allows LLMs to be proficient in writing software.
AI code generation tooling has become sophisticated and many tools have been introduced. For example, Cursor is an integrated development environment (IDE) and can generate or autocomplete code while including an existing codebase as context. Github Copilot is a Github extension that helps write code. Cognition AI has released a product called Devin that claims to automate end-to-end software engineering projects, while another company called Loveable is focused on automated front-end development. Anthropic and OpenAI both offer support for chat-based coding and can also explain how code works and help with debugging.
AI coding tools like Cursor have made it possible to produce entire prototypes without a human writing a single line of code. Computer scientist and OpenAI co-founder Andrej Karpathy captured this trend by coining the viral term “vibe coding” saying “I just see stuff, say stuff, run stuff, and copy paste stuff, and it mostly works.” We have found that vibe coding is a real phenomenon, particularly for MVPs and demos.
As AI takes over more of the job of writing lines of code, the role of the software engineer is shifting. Harper Reed, co-founder of AI firm 2389 Research, Inc., described how coding with AI has resulted in more emphasis on writing specs (detailed instructions for the AI) and testing to ensure the software works as expected. The changing nature of software engineering is leading to an emphasis on new skills for developers. Former software engineer and current MBA student Arman Tajback explained that he sees future software engineers as more focused on reviewing AI-generated code and driving high-level technical and product requirements. This suggests engineers will need additional business skills to differentiate themselves, which might include better customer and use case understanding, product strategy, and sales. A broader business perspective in addition to strong technical skills is likely to provide career options and longevity.
AI is changing the practice of software development: the AI Software Engineering Matrix
All the software engineers we spoke with described complexities in real-world code that AI tools were not capable of handling today. How useful AI is currently depends on the complexity and scale of the product as well as the technical skill of the builder. We segment the space into four quadrants based on low/high complexity products as well as low/high technical skills of the builder as seen in the AI Software Engineering Matrix diagram below.
Vibe Coding (low technical skill, low complexity): Vibe coding can be used effectively by builders without extensive technical skill to build low complexity MVP products. At a recent undergraduate hackathon at the University of Chicago, students with minimal coding experience were able to produce functioning games, websites, and even a mobile app in under 24 hours. These projects had features such as authentication and appealing user interfaces because AI can now generate these easily. In a vibe coding paradigm, creating prompts to describe what the user wants becomes critical.
100x Engineer (high technical skill, low complexity): AI tools are giving senior developers new superpowers. The “10x engineer” became a popular term to describe highly efficient engineers that seemed to do the work of 10 people. A 100x engineer in our framework describes a senior, highly skilled developer who also uses AI coding tools. As an example, meet Noah Lindner, who spent a decade working as a full-stack engineer for startups such as Airbnb and Loom. A couple months ago, he decided to create a product called BlockSpot that provided tools like booking software to small businesses. Noah went from idea to his first user in under two months by augmenting his extensive engineering skills with AI-powered workflows. After launching the first product at BlockSpot, Noah came up with a new idea for how to use AI to provide feedback on websites. He built the MVP for another product, Markup, in a week and launched in under a month, making him a 100x engineer due to the combination of high technical skill and a lower complexity product.
Copilot (high technical skill, high complexity): In high complexity products, features like robustness, security, scale, and architecture are critical and cannot be handed off to LLMs in their current state (future LLM models may change this). These require highly skilled engineers to make design decisions and navigate through ambiguity. In these cases, AI coding is best thought of as an assistive copilot. For example, Jose Leal is a Principal Software Engineer at Microsoft with 10+ years of experience. As a developer at a big company, he works on codebases with thousands of files and the products he builds have to scale to large numbers of users. He uses Github Copilot to speed up generating mundane sections of code, but still writes most of his own code and does not have the LLM make any design decisions because of the potential negative repercussions of errors in production code at scale.
At your own risk (low technical skill, high complexity): Handing ambiguous decision-making to an AI code generator about topics like security, scale, and architecture for complex products can lead to problems down the line. Becca McHenry an engineering manager working in the healthcare startup space. Working in a highly regulated industry, Becca has to be very careful about the security of patient data and bugs in her code could lead to dangerous errors in patient records. Since Becca is a senior developer, she is able to use AI when acceptable, but warned that in the hands of people without her technical skill, AI code generation could lead to major issues. In the 2024 Stack Overflow developer survey, only 3% of developers thought AI handled complex tasks very well, while the majority of respondents thought it was neutral, bad, or very poor at these.
As software with AI generated code becomes less of a moat, startups need to look elsewhere for differentiation
Startups employing AI software generation tools will need fewer junior engineers to get a product to market. A non-technical founding team might produce an MVP without an engineer at all. Later in development, they might only need one senior engineer to oversee AI in developing the full product. Smaller teams means startup software companies will require less capital to produce MVPs, and MVPs will be created much more quickly. This implies faster iterations and pivots, or testing several candidate MVPs before settling on a direction.
For example, Shawn Carpenter, the co-founder of YCharts and other fintech companies, remembers the weeks or months of iteration it used to take to build software products. He would have the idea, convey the idea to a designer, the designer would then create a mockup, and the engineering team would implement it. These cycles would continue with his feedback until the product was ready. Today, he is an AI empowered entrepreneur building new products with multiple iteration cycles a day. With the help of AI, he can have the vision, do the design, and write the code by himself. He did not need to raise capital or hire engineers to get to an MVP while iterating extremely quickly.
How will startups differentiate and create moats that stop them from being quickly copied? One answer is domain expertise and deep knowledge of the customer’s problem. Several founders emphasized domain expertise and knowing exactly what to build as a superpower. While other companies could try and follow, they would never get ahead of their knowledge of the customer.
Another differentiator is partnerships and distribution: fast software development does not lead to a profitable company without relationships and a pathway to customers. Other founders said part of their moat came from partner programs with key industry players that would be hard to replicate. With more software products on the market, sales and reaching customers will become increasingly important for startups. Any unique data generated through these customer interactions would yield additional differentiation.
Startups may also go after smaller niche markets to test what product goes viral while leaving the mass market to big tech companies that already have scale and distribution channels. One founder said that he sees a future where niche applications proliferate and his goal is to build 25 of these in the year 2025.
Conclusion
Code is easier to produce with AI, making it more accessible for non-software engineers and speeding up software development. How AI coding is altering software engineering depends on the skill level of the programmer and the complexity of the product. In a startup context, AI coding is particularly helpful for making MVPs and delaying the need to hire software engineers. This means startups need less capital to get off the ground, which could increase competition and make it harder to differentiate. Some strategies for differentiation recommended by founders we spoke with include deep customer expertise, strong partnerships and distribution, and focusing on small niche markets. In Part 2 of this blog, we will dive into implications of AI coding for VCs and investing.
Acknowledgements
We thank the following people for their insights and feedback on this blog post: