✍️ The prologue
My name is Aris Xenofontos and I am an investor at Seaya Ventures. This is the weekly version of the Artificial Investor that comments on the recent significant AI developments.
This Week’s Story: The end of software development (as we know it)
Anthropic’s founder, Dario Amodei, said that “AI will be writing essentially all of the code in 12 months” on the back of his company accelerating its growth to reach 1.4 billion dollars of annualised revenue - Anthropic models’ number one use case is coding. Anysphere (Cursor), the AI coding agent, becosmes the fastest-growing software in history reaching 100 million dollars of annualised revenue in less than two years. OpenAI’s large reasoning model, o3, performs better than 99.8% of software developers in a top coding benchmark. And, a big drop in computer programmer jobs may be the first sign of job loss to AI.
How has the software developer Tech stack evolved? Is the hype of emerging coding AI agents justified? Will all software developers be jobless in 2 years? Should we stop learning how to program? Is software becoming a complete commodity? What are the implications for software investors?
Let’s dive in.
Introduction
📈 The fastest-growing SaaS in history
A number of AI coding tools (copilots and agents) have emerged in the last couple of years, primarily in the US, which have been added to the first wave of players founded in 2015-20. Collectively, nine players have raised nearly 2.8 billion dollars, are valued in aggregate close to 20 billion dollars and currently generate hundreds of million dollars in annualised revenue.
In terms of user demand and commercial traction, one of the products, Cursor has been the fastest-growing software in history reaching 100 million dollars in annualised revenues in less than two years, beating Wiz, Deel, Docusign and OpenAI.
Other products, like Windsurf (Codeium) and Bolt (Stackblitz), are nearing 50 million dollars of revenues each, while the European champion, Lovable, is close to 20 million dollars.
The engine that powers this revolution is LLMs and in particular Claude Sonnet 3.7, the flagship model of Anthropic. Anthropic is a B2B foundational model developer that was founded in 2021, is currently valued at 62 billion dollars having raised more than 16 billion and its annualised revenue currently stands at 1.4 billion.
While the figures are staggering, it doesn’t come as a surprise that they refer to the coding use case, given that it is the number one use case in terms of AI penetration. The Anthropic Economic Index, a study based on an analysis of the nature and volume of user prompts on the company’s models, showed that the highest AI adoption rates are in the software engineering role, which take up about nearly 40% of all user queries they receive! This is something we have also seen in the companies we have partnered with. We carried out a survey across more than 20 companies of different sizes, geographies, sectors and business models, and the feedback was quite consistent: software development is the number one use case currently.
🧱 The modern software development Tech stack
The software development Tech stack is evolving fast and now consists of a combination of turnkey solutions that address all areas of the development lifecycle and enable almost anyone to build software.
The modern Tech stack consists of:
Vercel v0/ Bolt/ Lovable: browser-based AI coding agents. They help users get off the ground and turn an initial idea into a prototype.
Anthropic/ OpenAI API: LLM connections. They help users add analytical and thinking capabilities to their prototypes.
Supabase/ Firebase: browser-based backend-as-a-Service platforms. They help users add a back end to their prototype, like a database that stores data, security through user logins, etc.
Cursor/ Windsurf/ Cline: AI-enhanced development environments (IDEs). Users move the code over from the coding agents (step 1) to these environments to make their applications more complex, scalable and customised.
Netlify/ Vercel: browser-based deployment platforms. They help users launch their code as Web or Mobile applications.
This innovation wave is quite different from the previous innovation wave (2015-2022), which included design tools like Miro and Figma, coding collaboration tools like Github and Gitlab, coding productivity add-ons like Github’s Copilot and TabNine, infrastructure tools like AWS/GCP and Docker, and testing automation tools like Playwright.
We have tested these tools thoroughly by building applications on real-life use cases that are very frequent in our job and significantly affect our productivity. The two case studies we used for our analysis are:
📄 Company Profile Generator: A Web application that takes a company’s website address and generates a company profile with information about what it does, its value proposition, an overview of its product and what types of clients it serves, metrics related to its size and recent news
🔈 Voice Note App: A mobile application that records a note, transcribes it, and edits and summarises it according to templates that match specific use cases, such as personal note-taking, sending messages to friends or professional emails.
Below we analyse the benefits, challenges and limitations of this new wave of AI coding tools.
Benefits
🌍 A world of 1.3 billion developers
These tools offer significant benefits, primarily by reducing start-up friction, often referred to as the blank canvas problem. This issue makes it difficult for inexperienced developers to begin and even professional developers find it mundane and onerous. The tools automate scaffolding, creating a framework with a basic structure of files and initial logic for applications. This setup includes a graphical user interface, simplifying the development process despite its time-consuming nature.
⚡ Travellin’ at the speed of light
Another key benefit is the speed of execution. Tasks that might take a day can be completed in five to ten minutes, often while multitasking. The AI-driven process surpasses traditional templates by offering infinite combinations, making it easier and faster to achieve initial results. This efficiency encourages continued progress and project completion.
⛏️ Filling gaps
A third benefit is the facilitation of full-stack development. Development is complex and requires diverse skill sets, similar to roles in sales and marketing. Different roles in software development include front-end developers, back-end developers, DevOps engineers, technical architects, and QA testing engineers. These tools help individuals with limited skills in certain areas, like back-end developers with no front-end or deployment skills, fill their gaps effectively.
➰ A superb feedback loop
The fourth important benefit is the accelerated feedback loop. Typically, developing an idea involves designing, building, testing, and iterating based on results. This feedback loop usually requires many people, much time, and significant costs. A faster, easier, and cheaper feedback loop enhances product development by meeting user requirements more efficiently. This leads to better products that users love and find helpful in solving their problems.
As a result, the proliferation and mass usage of such tools has the potential to make any white-collar worker a software developer. Forrester estimated that there are 1.3 billion Information Workers worldwide. So, we are heading towards a world of 1.3 billion developers! …Well, not so fast…
Challenges
🗑️ Garbage in, garbage out
One major challenge of these tools is quality. The question arises: is the objective to build products as fast as possible, or to build better products? Speed is important, but a good quality product is crucial. Building a product quickly is pointless if it has poor quality and no one uses it. Quality matters more than speed and this is why it has been a focus in the last 20 years of software development. The main reason behind poor quality is the training corpus used for AI models. This corpus includes bad, average, and good quality code from the Internet. Companies like Antropic have attempted to mitigate this by fine-tuning their models on good quality code. Despite important strides, like Claude Sonnet 3.7, the latest version of Anthropic’s LLM, challenges remain. Other companies, such as Poolside AI, are addressing this by building models from scratch with good quality code. This approach could substantially minimise the problem and it may eventually resolve it.
💃 Fix one, break two - the infinite AI dance
A third challenge involves infinite loops in AI-generated code, which we call 'fix one, break two'. It goes like: User asks AI to build something → AI builds it and shows that an error comes up when running the application → user asks AI to fix the issue → AI fixes the issue but then a new error comes up related to a different part of the application → user asks AI to fix the new issue → AI fixes the new issue but then introduces a new bug in another part of the application. And the cycle continues, causing user frustration and sometimes taking back the time it saved from the rapid setup of the application.
◼️ The black-box problem & the AI coding paradox
Another issue is the 'black box' nature of these tools. For less experienced developers or non-developers, understanding and inspecting AI-generated code can be challenging. If users do not understand the code well, fixing bugs becomes difficult. The AI coding paradox is that “the easier it is for a non-developer to get started with a tool (e.g. Bolt or Lovable), the harder (and sometimes impossible) it is to access the code and make direct edits. This is why many developers (as well as we, working on our case studies) “graduate” from Bolt and move the code to Cursor: take control and increase the sophistication of the code.
Limitations
🗣️ “Computer language” translator needed
The limitations start even before you start coding, These tools interact with the English language, but they are not effective if someone doesn't understand or speak the “computer language”. It's quite important for users to understand the pseudolanguage, the underlying logic of computers, such as the concept of “if statements” (“if this, then that”), the different types of loops (“do this 10 times” vs “do this until that happens”), some basic types of variables (integer, float, text, boolean), etc. This is a layer of logic that is below the programming language layer (it doesn’t include any
Python or Java syntax).
Knowing how to make a precise, specialist prompt can make the difference between getting what you want in one try and not getting what you want after ten iterations. Perhaps an easier way to illustrate this is through an example of an image generation prompt.
Being completely untrained in “artistic language” We would tell an LLM “Draw a sunset over a beach.” However, an artist would tell an LLM:
“Create a digital painting of a serene sunset over a tropical beach, featuring a vibrant gradient sky transitioning from deep orange to soft lavender, with scattered cirrus clouds catching the light. The ocean should reflect the colors in gentle ripples, using a muted teal base tone. Include a silhouette of a lone palm tree leaning slightly to the right in the foreground, rendered in a semi-realistic style with subtle texture on the fronds. Use a warm, golden-hour lighting effect and a 16:9 aspect ratio.”
We don’t understand half of these words! 😐
This is exactly why we think that it is still and will be for a long time important to learn programming; it’s just that programming courses/ bootcamps need to adapt to the new reality.
This is similar to the importance of knowing how mathematical calculations work and developing arithmetic intuition despite the fact that we use calculators and Excel every day. The simple prompt gets the basic idea across, while the artistic version adds specific details about colors, composition, style, and technical preferences to guide the AI more precisely.
📸 Demo Day darling
Another limitation is that these tools are good enough for building demos and the demos look great, but once you want to move to production and have multiple users start using the application, it breaks. This is because it really just covers the “sunny day” scenario where everything goes perfect. However, once users fiddle around with things differently or encounter rare, so-called “edge cases”, the applications you build with these tools start failing.
🏋️ The “last 20%” struggle
The AI coding tools help you get 80% of the way towards having an application that works in a “sunny day” scenario and in a controlled “lab” environment. But the remaining 20% of the way, which involves polishing, removing bugs, ensuring performance at scale, introducing compatibility with different environments, operating systems and internet connection bandwidths, as well as ensuring security and data privacy, is more complex and actually takes more effort than the initial “80%”. These tools are very limited in functionality in this regard.
🤸 Bends less than a rock
Another issue is the lack of flexibility. Most of these tools do not allow for easy (or, in some cases, any) code editing, meaning you cannot use specialist or cutting-edge libraries in your code. They use standardised format templates, but customised formats are difficult to achieve. One-click deployment is great, but if you want more bespoke deployment requirements, you have to go to the backend yourself and start fiddling with configuration and testing. In terms of database design, most of them come with Superbase, which is a relational database and relatively easy to use. However, if you want to create a more complex application, for instance a real-time one, where non-SQL is more appropriate, then you will not be able to do it.
🚧 Underlying technical limitations
Behind the above functional limitations hide some underlying technical limitations of AI models
Context window. When you try to make a change in the code it is all about understanding dependencies in your code, so you don’t break something else. For AI to capture all dependencies, it needs to incorporate the entire codebase in its analysis, which hits the limitation of the context window. Context windows can be either short, or even if they're long, recovery of context many not be equally effective across the entire context window.
Hallucinations. LLMs are prone to hallucinations by design, so they may produce results that are not exactly what you asked, or they might decide to just do something entirely different in a different place of the code.
Lack of awareness. The AI coding tools work at the coding level as opposed to the user interface or application layer. So that means that if you are integrated with an API, and you get an API error on the API side, that error is not” seen” by your AI model, thus cannot analyse it automatically and fix it. Instead, you have to pick up that error, copy and paste it into the AI, tell it you got this error, and then it can help you. But that loop takes time and effort. The same happens with errors on the Browser and Terminal.
🦋 The transformation of the software developer role
Due to their challenges and limitations, the emerging AI coding tools are currently used in the following ways:
Non-developers use them to build simple applications and websites to use in their daily lives.
Junior developers use them to create advanced prototypes to gather feedback from other stakeholders and to learn how to code in areas they are not familiar with.
Senior developers use them to automate mundane coding tasks (that they already know how to do), as well as to create advanced prototypes faster.
❓ But what happens in a world where:
context windows are (nearly) unlimited,
hallucinations are (almost) eliminated,
advanced reasoning is incorporated, and
the coding tools have the full real-time visual context that the user has, across all applications and integrations?
In such world, AI would automate coding execution almost entirely. So, the software engineer job would disappear, right? …Not so fast!
A software engineer’s job is not just about executing code. There are parts of the role that are more complex, because they have do to do with decision-making that involves human interactions and broader market and business context, such as:
Product roadmap prioritisation
Requirements specification and communication
System design and architecture
Technological tradeoffs that are dynamic and evolve as the business and market evolve
Establishing the appropriate quality assurance mechanisms and processes
This is exactly how we expect the software developer role to evolve: the coding execution part becomes much smaller and is more about coding supervision and the wrapper before, after and around the coding, expands.
💡 Our prediction is not based on the fact that AI models are not strong enough or they're not going to get stronger than what they are now; rather, the opposite: we do believe AI models are going to get stronger and the exponential growth of intelligence will continue. We base our prediction on the fact that there are other things around AI that, by nature, cannot be automated as they stand now:
having humans as customers and users of the products
having human employees in the businesses
having human owners of the business and its intellectual property, who set the vision and benefit from its success
Small parenthesis: Maybe there can be a small percentage of software in the future that is owned by a distributed organisation (DAO), where product decisions are made in a decentralised way, coding is done by AI tools and the actual software product is used in machine-to-machine interactions. It would be necessary for these machines to be open to the public for the AI to gather requirements automatically. In such cases, probably you wouldn't need software engineers at all, but we don't expect this to be a significant percentage of the software market in the future.
💭 The future of the software developer job landscape
It is reasonable to assume that the way the world looks now and for the current software that we have, we will likely need fewer software developers. However, there are two additional considerations:
As software development becomes easier, would we develop more software? There are so many areas in our lives and in blue-collar sectors where there is no technology. If technology penetration is to increase, then so will software and thus more software engineers will likely be needed.
If coding became so much easier and we ended up in a world with more software, would that software only come from professional software engineers? Or would we see growth in the prosumer segment of the market? The latter probably makes sense. Hence, if there are more or less software developers in the future may depend on whether the definition includes prosumers and casual developers or not.
By the way, the casual developer trend is already emerging under the label ‘vide coding” that has become viral the last 2-3 weeks. The term comes from the user experience you get by connecting an AI coding agent to a speech transcription application. You can simply lie down without even looking at the computer and start describig tnhings you want to build and the computer simply does them; without touching any code, worrying about syntax, what libraries or frameworks to use, etc. You just “go with the vibe”, hence “vide coding”.
🔮 The future of the AI coding agent market
The size of the AI coding agent market will likely explode:
Volume: We believe that the tools will eventually penetrate the entire software developer community, including both professional software engineers and casual developers.
Price: AI coding agents expand across the Tech stack, they will likely increase their price from the current level of about 20 dollars per month. The blended median price per user will not grow that much, as the lower purchasing power of casual developers will be met by either open-source tools (e.g. Cline) or more basic generalist tools (e.g. OpenAI is working on a Developer ChatGPT).
How high could prices go (for professional software engineers)? Currently, we are paying about 100 dollars per month for the entire Tech stack (Bolt, Cursor, Netlify, Supabase, a Claude subscription and OpenAI’s API calls), while the AI coding agents cost about 20 dollars per month (Windusrf costs 15, Cursor costs 20, Bolt costs 20, etc). It feels like there is room to grow.
In the meantime, we expect the competitive landscape to evolve significantly with entry of new players supported by high user churn, expansion of functionality and eventually a shift from unbundling to rebundling.
🚪 Entry of new players
There are already many emerging players that focus on specific problems (e.g. bug fixing, quality assurance, refreshing legacy code, etc) and this will continue, given the market is attractive. This will be accommodated by the high user churn we expect to see. During our case studies, we switched a couple of times between tools (because we felt the need to do so) and it was extremely easy, given all tools work at the code layer, which is nothing more than universally-compatible text.
💻 Broader functionality
Introduction of multimodality, environment awareness, a smooth human-AI collaboration that is aware of what code is AI- or human-generated, etc.
📦 The big rebundling
We are currently experiencing an unbundling of the software developer role as new startups with immature products tackle specific areas within specific layers of the Tech stack. As products and companies mature, we believe there will be a rebundling wave with a combination of inorganic consolidation or organic product expansion. In the graph below, the markets typically more anticlockwise.
💵 The impact on Software investors
❓ What happens in a world where almost anyone can code anything very fast? Will companies stop buying software? Should SaaS investors give up on the market?
We don’t think SaaS investors should give up on the market, but defensibility certainly becomes harder and comes to the centre of stage.
What do we see as potential sources of defensibility in the software market?
🥼 Domain expertise
Building a product that solves perfectly and end-to-end an important customer pain will always have demand. How do you achieve this? That’s where domain expertise becomes key, as it allows software developers to go deep on the customer problem to solve it.
📊 Proprietary data
Having unique or rare data flowing through a piece of software can certainly set it apart from competitors . This can be either proprietary data coming into the software or created by the usage of the software (“the data exhaust”) and fed back into it.
🌐 Network effects
Network effects, where the more users you have, the stronger your product becomes, increase in importance. There can be many types of network effects. We just mentioned Data Network Effects. Another type that we find very interesting is “Platform/ Ecosystem Network Effects. An example is where you can have a piece of software that is used across many organisations and pills intelligence from all of them to make the product more effective. This can provide a strong competitive advantage against in-house tools built and used by a single organisation.
👠 Brand
A strong brand is certainly a source of defensibility, but it takes a lot of time (and often money) to build it.
⚙️ Execution
Both product and sales execution remain important. Product execution is key in order to iterate effectively the product with the users on a productive feedback loop - domain expertise is useless without it. Also, in a more competitive software market, one should not underestimate the difference it makes building a scalable, repeatable, high-performing sales engine versus struggling to replicate the heroism of founder-driven sales.
We are very excited with what the changes that AI brings to the Software market and, even if we could, we wouldn’t pick another decade in the history of technology to be investors in the space.
Appendix
A summary of the key functionalities and differences of select AI tools for software developers
Vercel v0/ Bolt/ Lovable
Text-to-app AI builders of web and mobile apps. They don’t allow (easy or at all) direct editing of the code by the user.
v0 is front-end focused and strong in User Interface. Bolt and Lovable act as a “full-stack engineers”.
Generate front- and back-end code, set up frameworks and link to back-end 3rd party solutions for one-click database creation and authentication (Supabase), and deployment (Netlify for Bolt/Lovable, Vercel for v0)
Lovable also includes Stripe integration for payments making it more suitable for building ecommerce sites
Anthropic/ OpenAI API
Backbone of AI coding agents
Anthropic powers v0 and Replit Agent, ChatGPT-4o is used in Cursor.
Additional connections to their API to add analytical and thinking capabilities to their prototypes, e.g. summarise the content of a page
Developers also use their chat interface to get help before (e.g. guidance on application design) and after the coding execution (e.g. debug complex issues that require inputs from logs of different applications)
Supabase/ Firebase
Back-end-as-a-service applications that help build a database, user login and back-end services for Web and mobile apps
Firebase is developed by Google and runs on NoSQL database (more flexible and suitable for real-time apps)
Supabase is open-sourced and runs on SQL database
Cursor/ Windsurf/ Cline
AI-enhanced development environments (IDEs) that provide deep control over development cycles, across various languages and frameworks
Integrate AI suggestions directly into the coding flow (autocomplete)
Chat interface to ask AI for advice
Agentic mode to get the AI to perform code transformations or write entire sections of an application
Cursor is packed with more functionalities, while Windsurf is a minimalist design and embeds its AI functionality in a more subtle way
Cline has less functionalities but it is open source
Netlify/ Vercel
One-click hosting and deployment platforms that are less flexible but easier to use vs. AWS or GCP
Automated deployment interaging with online code repositories/Git (e.g. Github and Gitlab)
Support of continuous online services (e.g. “whenever this happens, do that”)
Muy bueno Aris. 👏👏👏 es un buen ejemplo para usar paradoja Jenvons. El desarrollo de software es clave para una futura sociedad. No tiene límites.