Has the role of a Software Engineer changed in the last 20 years?

10/22/2024 | Ben

Has the role of a Software Engineer changed in the last 20 years?

2005

The year is 2005. YouTube has just launched, Tom Cruise is bouncing on Ophra’s sofa screaming his love for Katie Holmes, and I started my first job as a Junior Software Engineer. I was given a desk, a PC, and a technical book on VB.Net.

I was then asked as my very first project to build a tool that logged developers’ time against projects. This was to be used for accounting purposes to bill certain departments for our time.

I was working in the IT department of a very large shipping company. This was my big break.

The tech stack at this point was cutting edge. It was a good as it gets. It was three tiers! We used VB.Net as the language, WinForms to develop the thick client that our internal users used, Microsoft SQL Server as the back end and Microsoft Visual Sourcesafe to keep our code safe.

It was glorious.

I was fortunate enough to work with some very friendly and smart people, so If I got stuck, they were there to help. But that was it really in terms of help. Other than a textbook and hoping that some random person had written a blog post on what I was also stuck on.

ChatGPT was just a glint in the eye of a young man, StackOverflow hadn’t yet even been started. The options for help were scarce.

That’s what we knew though and we got by.

2009

Fast forward 4 years and I’m moving to my second ever job, this time as a fully-fledged Software Engineer. The stack was similar, but a little different. It’s here I found my love for C#. It was VB.Nets cooler and more elegant sibling. We were still developing thick client applications using WinForms with a SQL Server back end, but the winds were changing. Enter WPF and Silverlight.

This was a brave new world where design patterns such as MVVM and MVC were emerging. We were tasked with creating an online version of the thick client, and knowing with 100% certainty that Silverlight was the future and this thing called jQuery and jQueryUI would never go anywhere, we went with the obvious choice of Silverlight. That was a mistake.

Silverlight was a cut-down version of WPF. It used the same patterns and markup but with fewer options as this needed to be developed for use in a browser. Silverlight was new. No one had experience with it. How would we get answers to any questions we had?

Fear not, StackOverflow was the new kid on the block and the saviour to software engineers around the world. Ask a question, wait a few hours and you’d at least get a few answers. Some of them actually good. Make sure you ask the question well though, otherwise, the StackOverflow gods would not be happy. The older developers would tell the younger programmers that asking on StackOverflow was cheating. It was too easy. Just look at the textbook so that you can truly understand what’s going on.

StackOverflow won out though and people used it daily. This pattern played out again a decade later. But we’ll get to that. This was around the time that I started seeing more and more people describe themselves as “Full Stack”. They could create a website, write the server-side code, and also write a pretty decent database query.

I truly believe at this point that people could be full stack. The stack wasn’t as full as it is these days.

2012

The weather is hot, the beaches are full and I’m working on the other side of the planet in Sydney. I had a 6 month work visa and got a job as a software engineer in a financial benchmarking startup up. Now this was cool.

Living in Sydney and working for a start-up. I had made it.

The tech stack was getting more broad now. I had to know WinForms, WebForms, MVC, MVVM, and jQuery. We were developing a thick client WPF application for use in entering and monitoring data, and a website that the clients would use to view the data. All are backed by Microsoft SQL Server.

Things were changing though. People didn’t like SQL anymore. They hated it so bad, they created “No SQL databases”, like mongoDB. In memory databases were all the rage for improving performance and not requiring those pesky database connections all the time. Against all odds (not really), jQuery and jQueryUI had won out and Silverlight was on the wain. The websites had to be “responsive” and “adaptive” and it was no longer ok to have static pages, they needed to whoosh and slide and fade.

2014

I’d moved back to the UK and the Australian startup I worked for had asked me to start up their UK engineering office. We had just landed a massive contract and client in the form of sorting out the LIBOR issue that had plagued the UK banking system for many a year. We were working with the New York Stock Exchange.

Us as the company that would write the software, them as the collection point for all of the financial data. They wanted a fancy web interface that would update in real-time as data came in. They wanted to see breaches of tolerance highlighted in red and raise signals to the user. Enter the SPA - Single Page Application.

Gone were the days when you had static web pages that linked to each other through separate URLs. You now had one page and everything was loaded dynamically through JavaScript libraries. It’s ok though, there were two whole JavaScript frameworks to pick from!

Knockout.js (an MVVM framework) or angular.js (an MVC JavaScript framework). Sprinkle in some jQuery and you were golden. Now, I’m probably oversimplifying this and I’m sure there were more frameworks than those, but there was a manageable amount. StackOverflow was now one of the largest websites in the world.

You could almost guarantee that if you had a question, someone else had already asked it and had it answered on SO.

2024

Let’s fast forward a decade and see where we are now. I’m a Software Engineering Manager in a very large FinTech company. I have an amazing team who are constantly wanting to learn new things and try out new technologies. According to a quick Google, there are 83 JavaScript frameworks, 343 database technologies, and up to 10,000 programming languages. AI has replaced StackOverflow as the go-to for solving programming problems, and new engineers are entering the job market at an all-time high rate. Can I tell you what hasn’t changed?

Smart people are still solving smart problems. And fundamentally that’s what a Software Engineer does.

It doesn’t really matter where we get the knowledge of how to write the code. It doesn’t matter what the language is, or what framework we use. The bottom line is Software Engineer’s solve problems. That’s it.

So has the role of a software engineer changed in the last 20 years? As always, the answer is not straightforward. Yes, it has changed. We went from barely any online help and using printed media (textbooks, magazines, etc) to help us solve coding problems, to using AI to generate code that is created for us at the click of a button.

We went from a quite sparse amount of languages and frameworks to more languages and frameworks than any one person could hope to even name, let alone understand. But the fundamental role of a software engineer is to take a real-world problem and solve it with code. This has not changed.

Ben @JATechLead