Devin, The First AI Software Engineer
The Software Engineer is Dead. Long Live the Software Engineer.
You can check out my other articles or say Hi👋🏾 on Twitter/X too!
On to today’s piece 🤝
Devin is the new AI by Cognition Labs and when the demo dropped, the discussion around SWE’s getting their jobs replaced re-emerged. Everyone from new grads to seasoned industry veterans can feel monumental shifting underfoot. Is the software engineer dead? Let’s get into it.
Devin, The First AI Software Engineer
Cognition Labs, who raised a $21 million Series A in Nov 2023, recently dropped their demo video of Devin, the first AI software engineer.
Given Devin’s impressive performance, talk about how software engineers would lose their jobs and that computer science was “no longer a field worth majoring in” sparked again on Twitter.
But despite the wow-factor, some experts such as Gergely Orosz, noted that Devin did not perform much better than existing coding assistants and that the claim of “AI software engineer” over “AI coding assistant” was likely due to severe competition:
AI dev tool startups need outlandish claims to grab attention. The “AI coding buddy” space feels already saturated. For organizations hosting source code on GitHub, Copilot is a no-brainer. For companies using Sourcegraph for code search, Cody is the clear choice. Those using Replit for development, the Replit AI tool is the one to go with. The only major source control platforms that don't have AI assistants yet are GitLab and Bitbucket, and this is surely just a matter of time.
This means, one of the few ways to launch an AI dev tools startup is to claim you will fully replace software engineers. Anything less, and there’s no reason why developers should swap their existing coding assistant, and open up their codebase for a brand new tool to crawl and contribute to.
The Cognition AI team smashed it on media attention; it feels like their launch garnered almost as much developer attention as ChatGPT’s launch in November 2022. The company broke through to mainstream media – no small feat!
And it seems Cognition Labs’s claims worked quite well; they then raised an additional $50 million Series B, for a total evaluation of $2 billion, within less than 6 months after founding.
But even if Cognition Labs’s AI Devin is a coding assistant, there is some validity to how software engineering as we know is changing & significantly so. After all, a AI coding assistant completing 1/7 of coding tasks is where we are today. It’s the floor; the performance is only going to get better from here.
So does that mean software engineers are an endangered species? Well software engineering will change but not in the dystopic way tweeters like to push it.
To understand where we’re headed, we have to understand where we’ve been.
Software Engineering: The Evolution
Intially, programming was a labor-intensive process involving manual hardware switching. Engineers interacted directly with the machine's innards, toggling switches to represent binary values—1s and 0s; with enough switches, you could create a simple calculation.
Then the interface evolved. People began using cards with circles punched out and then inserting them into slot machines. Punches in the card signified 1s & 0s and formed the basis of an equation to run. Someone who worked with computers punched cards, then inserted them into machines to run calculations and recorded outputs.
Then the magnetic tape storage in the 1950’s and terminal interface emerged in the 1960s, marking the transition from physical to electronic interaction with computers. Suddenly to work with computers was to type into a terminal; the green glow and plastic look of IBM computers are familiar in this era.
But binary is not exactly friendly; reading a long list of 1s & 0s makes it hard to tell what exactly is going on. So low level languages entered the scene. We had COBOL (1959), then later more easier to use languages such as C (1972) that handled even greater abstraction. In order to center software around handling data, methods such as object-orientated programming arose (1960’s). From there came the radical concept of the GUI (Graphical User Interface) from XParc in the 1970s (ever heard of the mouse?) followed by the IDE (Interactive Developer Environment) in the 1980s. Researchers figured out that typing into a terminal straight wasn’t too enjoyable or productive for engineers; turns out we want more than just black and green screen.
But newer generations of engineers were not satisfied. Why bother with type checking and memory management; why not have check at runtime & automatically handle memory? And so came around high level languages such as Python in 1991.
You now typed human-readable words in a relatively nice looking screen to program a machine.
From here, computer science continued to grow in popularity and in ease to learn. Version control systems like Git emerged in the 2000s to handle many developers entering the field and working on the same piece of software with cloud computing platforms (AWS) took to the scene to offer scalable resources on demand.
With massive codebases and libraries of documentation, AI-assisted coding tools such as Github Copilot and AI Devin entered to aid engineers in making sense of the growing complexity and to drive impact much sooner.
We now review each other’s code from across the globe, push&pull at all hours of the day, establish elaborate APIs + standards + system architecture, and collaborate with others to update behemoths of code that no single engineer could hope to comprehend.
While in each of these eras how we interacted with a computer changed, the fundamental interaction with computers remained the same. Therefore, our need to interact with machines won’t change; it’s just that software engineers are the latest iteration of doing so.
Today, software engineers may use LLMs to generate 50% of their code and then fill in the rest with their know-how. 5 years from now, the job title, “software engineer” may be defunct and it may be software prompters who prompt & style machine behavior to meet business needs. This may involve a long running conversation that requires great deal of effort to get that final 2% of tuning, a sort of 80-20-Pareto-principle-situation. In 10 years, it may be software facilitators who guide long running discussions back and forth between clients and machines to properly craft exceedingly complex visions into digestible instructions for highly intelligent machines.
To adapt, software engineers have to continue to do what we’ve always been doing; evolving with the technology.1 And in doing so, tomorrow’s software engineers will look different than today’s just as they always have.
-Kiran
And interestingly enough, unlike previous technologies, the introduction of LLMs acclerates learning. Whereas the transition from C to Python did not aid C programmers in learning Python, LLMs also have the capacity to cushion the disruption that they create.
If you liked this piece, make sure to subscribe by adding your email below and check out my other posts!
Kiran’s Gems 💎
If you like ramjet engines, building the next Boeing and hate packed United flights next to a crying baby, read Packy’s Astro Mechanica piece. Glad someone is doing these dives into deep tech!
“We did what we could to protect ourselves. I went away for college at the end of the summer and was told by the detective working with our family that I should consider changing my name for security purposes. They would be able to reroute my mail if anything was addressed to the name he had known me by. That’s when I became Elle.” Substack writer Elle Griffin’s harrowing experience growing up with a stalker.
“Yes, researchers will always have their biases, but they should always work hard to suppress those biases and be as objective as they can. If they let those biases run free, science becomes less capable of discovering facts about the world — facts that ultimately give humanity greater control over our lives.” Noah Smith’s take on politicized science.