So, you have X years of experience in software engineering?

So, you have X years of experience in software engineering?

oh really ?

Software engineers put in their resumes X years of experience working building great software. Or years of experience working with some technology building great software too.

Awesome, right?

But let's imagine the following scenarios:

Scenario #1:

Bob is a senior engineer working in the company for more than 8 years. He has mastered the company's framework. He knows that within the company framework there are frameworks/libraries like angular, spring and Postgres.

Bob Resume:

"...8 years of experience working in angular, spring and Postgres..."

Scenario #2:

Bob is a recently promoted senior software engineer with 6 years working in a company with has a lot of requests and a great number of users. He works in the HR microservice which provides internal info to the HR department.

Bob Resume:

"...6 years of experience working in a highly-available software with a great demand in the market.."

Scenario #3:

Bob is a staff engineer with 12 years of experience working in software engineering. He loves C++ and has fond memories of working with it. He is the one that keeps doing maintenance as he is the only one who knows how that software of the company works.

Bob Resume:

"...12 years of experience working with Java in software.."


Can we see what the problem is with these Bob's experiences?

No? Let's put our imagination to work and let's think that we have a game and there are two players.

Player#1 LazyFred: Easy Mode

Player#2 ReadyToSufferMary: Hard Mode

I hope it is clear now.

The point is that years of experience are not the same as having all the know-how or proof that you have learned all the skills that you need to face new challenges in software engineering. Lets us remember that software engineering is always evolving. Part of our jobs as engineers is to always be learning.

If we don't learn in our projects/jobs/freelances then we are not making any progress or not preparing ourselves for new technical challenges. We are just happily getting deprecated and older(yeah we developers age very quickly /* this is a joke */).

So the cliche phrase used in motivational posts is true:

Doing The Same Thing And Expecting Different Results

We should always ask ourselves:

  • How can you learn to scale a system if you are working on the same project that only has some internal users?

  • How can you learn the new trends in front-end technologies if you are not even using any javascript framework?

  • How can you keep updated in your field if you are just maintaining a system that is no longer evolving?

Ok. Great? Solutions?

As a good software engineer. My answer is: "it depends".

But here are my two cents(or maybe more):

  • Side-Projects: doing POCs is the quickest way to learn new technologies or explore new problems that we are not working in our daily activities.

  • Books: buy books! Not only the old ones and classics as Uncle Bob's books or that Refactoring(old) book.

  • Magazines/Articles/Google Scholar: reading magazines and papers can keep you updated on what is happening in the tech world. What is new? What is old?

  • Twitter/Mastodon/Reddit: follow the right people and get good information.

  • A challenging Job: yeah, this is the hardest to get. But when choosing a job always ask what projects are you going to work on and what technologies you are going to use. A question that you should do is always this one: "can you please describe to me what are the activities of a developer on a regular day ?". If correctly answered you would have an idea of what are you going to do there.

And that's it.

Happy Holidays !!