Software Development Retrospective
From 2001 to 2025
It is getting easier than ever to write code.
When my father bought our first computer in 2001, I was only 9 years old.
It was a desktop with Windows XP. I read the manual and wired the cables. This was very natural to me. I was comfortable around the computer. I was very shy back then.
I first played the games that came pre-installed with the operating system (OS), like Minesweeper is a card game. I didn’t know what an OS was at that time. We used to buy from magazines that have a CD with games. My sister and I used to play a lot, alternating hourly.
After some time, I got curious to understand how the games were made, and how can I make my own games. I started with RPG Maker, a “game engine” that enables me to create my own RPG games. The problem was that it was too limited to build a single type of game. I wanted more.
I went directly to learn to build Windows applications using Windows.h in C. At that time, we didn’t have an internet connection at home, nor a dial-up connection. It was very hard to find content about learning to program for beginners like me. Going from a very high-level language/tool like RPG Maker to pure C was kind of a shock for me. I went back to study a lot of mathematics that was another topic that interested me a lot, solving problems.
I went back to programming at 2008, at 16 years old, when I passed in first place in a technical course at Federal Center for Technological Education (CEFET) at Guarulhos to do Programming and Systems Analysis.
This technical course made me learn the basics, programming logic, operating systems, networking, software development. I started programming in Pascal, doing some simple logic programs. In my spare time I developed some games like tic tac toe, snake, tetris, and the most complex was a basic side-scrolling game. We had this competition against my college friends.
We did some visual programming in VB6; it was kind of magic to drag and drop and see the code working. Most of the complexity of Windows.h in C was hidden in VB6. A good abstraction makes complexity easier to grasp.
We also used Delphi to develop enterprise apps. There was a professor who always kept the subject matter of COBOL. Maybe he was right; someone needs to maintain all these legacies.
I sold a website using html, css, and flash for R$500,00. And also an app to manage a clothing store for R$500, split with a friend. It was 2009, and people still didn’t value software.
In 2010, I went to college at the University of São Paulo (USP) to do Computer Science. It was 5 years of learning core concepts of Computer Science. Professors asked us to build something from scratch to learn how things worked. Here are some projects that we build from scratch: a full GUI using just a library that plot one pixel in a given X, Y coordinate with a given RGB color; a bash terminal; a CPU using FPGA and VHDL with their own assembly, operational system and a game running on it; OpenGL; a database; a lot of algorithms and data structures; a compiler; a neural network and probably more.
I spent one year in the USA, 9 months in Albany, the capital of New York, and 3 months at Tucson, Arizona. This was a paid program called Science Without Borders from the Brazilian Government. It was great to improve my English, to learn about American culture, and how their college life works.
In 2015, it was the first year that I started programming professionally. This was an intership at PontoTel, a startup in Brazil. This was the first time that I’ve heard about the concepts of separation of backend and fronted. It was very fast to learn all these concepts because I had a strong base of knowledge and also because of the internet and open source. Being a programmer wasn’t cool yet, but the pace of innovation and learning was increasing a lot.
Programming started getting easier and easier, with NodeJS simplifying backend development. React simplified frontend. Docker simplified how to pack applications. Cloud made it easier than ever to deploy new applications. Kubernetes simplified container orchestraction and more problems related to auto scaling. Proxmox simplified supervisor.
All these tools, open source, self hosted, simplified a lot but also increase the complexity. You need to know more about many things to be able to handle all this.
One thing changed all this. ChatGPT and LLMs in general. GitHub Copilot, Cursor, Claude, Vibe Coding and many variations launched in a fast pace. All this existing complexity can be simplified by LLMs.
A new paradigm of coding is emerging and is used every day by many developers. Many things that I didn’t do it because they would take a lot of time, but now it is possible to do them in a few prompts. Creating custom scripts is easier than ever. Converting code from one programming language to another is possible; the role of Cobol programmers may change. Understand that legacy code is possible. Contributing to open source is easier. Debug crypt errors as many as possible. Even doing beautiful design as a backend developer is doable.
In these 24 years of my time with programming, this year was the one that I’ve felt more productive. I’m not dumber for using these tools, as some people argue on X. I’m getting smarter faster. Even reading harder books is possible and simple now.
The pace of innovation won’t reduce; it will only increase. A human driving a car will be seen weird. Writing code by hand without code completion or LLM will be seen as primitive.
The only thing that won’t change is that we will keep solving problems.


