The Future of Software Development

2025-01-289 min readBy Patrick Nercessian

The Future of Software Development

Most experienced software engineers will recall constantly needing to stay up-to-date with changes in software technologies in order to partake in most of the industry. Today's landscape is not an exception, but it does come with some notable differences.

The new players in the field (as it relates to this blog post) are not new programming languages, libraries, nor philosophies of code quality. Instead, they are large language models and their ability to code, test, make architectural decisions, and (soon) automatically perform deployment and other necessary actions.

Coding and Testing

In any given timeframe, software engineers are now able to create vastly more value, as some of the most time-consuming parts of coding are now essentially automated. Tools like GitHub Copilot, Cursor, and more are able to quickly implement:

  • Boilerplate solutions
  • Code Refactors
  • Translation to alternative programming languages
  • Debugging
  • Unit test creation
  • Increasingly, entire features across multiple files

This allows mindful software engineers to move quickly, focusing their efforts on:

  1. Directing the AI
  2. Making high-level and architectural decisions (in order to do (1))
  3. Carefully reviewing AI output

At Vectorial, we take this very, very seriously. Each of our engineers is highly encouraged to take advantage of models and tools such as OpenAI's o1, Anthropic's Claude 3.5 Sonnet, Cursor, and/or GitHub Copilot. However, we recognize that these tools often make mistakes, so we also emphasize the engineers' responsibility to review code heavily, and require all delivered code to be peer-reviewed by another human engineer.

The balance we strike here allows us to deliver software and AI solutions at a higher quality and a greater speed than ever previously possible.

Architectural Decisions

State-of-the-art models are increasingly becoming useful at more high-level tasks, such as designing entire technical architectures. Models such as o1 and Claude 3.5 Sonnet can often create exceptional first drafts of an architecture for a new product or feature.

These architectures are still prone to mistakes, which have the potential to be more dangerous than code bugs, as they are less detectable and fixable. Following them blindly can often be a one-way door that you can't easily reverse down the line.

That being said, having a human engineer treat these drafts as mere (possibly faulty) suggestions is often higher-quality and discovered faster than the architectures that a junior or mid-level engineer would come up with on their own.

Automated Software Engineering

As frontier AI labs continue to improve these LLMs, we continue to progress toward a future in which these AI models are able to perform every aspect of a modern software engineer's job. Currently, it does not seem clear to us at Vectorial whether or not software engineers' skills will continue to be useful by "moving up the abstraction ladder" if non-technical people can direct the AIs just as effectively.

Products or technologies like Devin, OpenHands, Aider, v0, and Cursor Agent are all early versions of this. You simply explain in natural words what you want to build and the models continuously run, working on the code, and eventually come back with either questions or results (or failures, hence the "early" label!).

An Example

Take a quick look over our website. Look at the particle effects, the landing page, the blog post you're currently reading (not the words, but the code). This is all nearly 100% created by Claude 3.5 Sonnet (using Cursor) and o1. The particle effects are a custom implementation, fully developed and iterated on by o1. We estimate that building the website to its current state would have taken at least 3-5x as many developer hours without the use of AI. A completely non-technical person could have likely built and deployed this website in just 2-3 days.

How to Prepare

Today, it is a good idea for software engineers to get acquainted with generative AI coding tools and agents. It is common to have a few bad initial experiences with generative AI, and avoid using it entirely, to one's own detriment. Instead, one can refine their abilities of using the tool (similar to the older concept of "Google-fu") and can remember to push the limits of the newest models as they are released, as previously failed uses may now be within the new models' capabilites. It is also important, for the time being, to maintain existing programming skills, to avoid helplessness in times without access (such as in jobs/interviews where generative AI usage is forbidden).

In the medium-term, software engineers should prepare for the likely case of rapid change followed by near-full automation. This involves the job requirements changing rapidly every year or even every few months. Soon after, it may become the case in the late 2020s that non-technical people can use these AIs just as effectively as software engineers. In this scenario, it's best to save as much of your income as possible today, as it may drop significantly (or to zero).

In this same scenario, software businesses should also prepare. "Tech debt" that can stay "unpaid" for a couple years may be worth making, since the cost of fixing it will continue to drop. It may make sense to stop hiring junior software engineers, and eventually mid-level engineers.

And businesses in general can prepare for significant technological disruption. For example, modern CRMs can, at risk of heavily oversimplifying, be described as a large user interface and user experience (UI/UX) operating on a database. Will that paradigm remain the same if a small team is able to simply ask OpenAI's future o4 or o5 "generate and deploy code that can listen in on users' calls, emails, and messages, and store data related to deals, meetings, etc. for them to ask about later"?

Key Takeaways for Software Engineers:

  • Adopt AI tools to stay competitive, but maintain rigorous review processes.
  • Keep your skills sharp — both technical (for deeper debugging/coding/architecture) and in AI usage.
  • Prepare for rapid changes in the job market: be financially cautious and professionally adaptable.