How to grow as a software engineer

Let’s talk about growing as a software engineer. Now, I know that there is a huge spectrum that you can place yourself on when it comes learning and growing, so it really is up to you. But, when it comes to software engineering and working in IT, it is quite important to stay up to date on technological changes and innovation. And how important that is, depends first and foremost on your own ambition and or interest in growing, and the kind of company you choose to work for.

Your circumstances really matter

As I said, how much you choose to focus on learning new things and becoming better, is up to you. Some level of development is required, and some might argue that it’s a natural part of working, but I wouldn’t say that that’s always the case. If you work for a certain company with a certain typ of technology or product, you might simply be maintaining and keeping things running. In which case it won’t be as much of a natural part of your job, than for others.

So I would say that being able to learn new things on the job, or as part of your job, is really a privilege, and you shouldn’t take that for granted. But with that said, use that to your advantage. Especially if you are ambitious. Use that and keep learning on your own time. You have a big advantage over the people who don’t have the same opportunity to learn as part of their job.

The second thing, on it depending on which company you work for, is like I mentioned before about which type of product or service you work on. But most importantly, it depends on the kind of company you work for and in which business. Some companies aren’t required to be at the forefront of technological innovation as others, simply due to the industry or type of business they are. So it’s important to understand what kind of company you are working on in the sense of how much technological innovation impacts their underlying business.

Why that’s important is because it gives you an indication of how important it is for you to stay up to date with technological innovation and development. If you are in a job that doesn’t enable you to learn much on the job, then it’s up to you to make sure you can spend some time on the side to stay up to date and keep learning new things.

This is in no way me saying that there is a right or wrong way of learning new things or not. I’m simply pointing to the fact that at the end of the day, it’s businesses who make money. And depending on their business model and industry, they might be more or less dependent on staying relevant. And it’s not about the latest JavaScript framework or fancy ORM. But rather foundational technological developments that has a big impact on the company’s ability to provide business value.

If you have the ability to decrease the time it takes for a critical backup to happen by 50%, it might save the company hundreds of thousands of dollars in costs, that can be better invested in projects that provide the customer with a better user experience or even makes the customer’s lives better.

So the question to me isn’t as obvious and doesn’t have to be as emotionally loaded as a lot of people make it. If you focus on what the learning and growing is for, and understand it’s purpose, then it becomes a lot more meaningful.

So, growing and learning is a part of being a software engineer, but how important it is depends.

The path you choose matters

Another part of growing is the different paths that you can choose to take as a software engineer. And there are plenty. Not only are there different stacks that you can choose in terms of programming languages and technology, but which industry you choose which in itself presents unique technical and technological challenges and how much you want to focus on code or on strategy or even management.

These are questions that usually become naturally answered as you keep working in the industry and you try new things. But that’s really the key here, is to keep trying new things if you want to see where you can go. Because we don’t really get to know ourselves by just striking gold once and now we know exactly who we are. Rather we try different things and work with different kinds of people and instead realise just who we are not, as much as who we are.

So, choosing to work in different industries can really give you a broader perspective on the capabilities of technology. Because a clothing company working mostly with e-Commerce and the web won’t have nearly the same challenges and needs as a defence company building surveillance equipment and sensors. You can grow a lot from changing the industry you work in as it presents you to all new challenges and problems to tackle.

And understanding what you enjoy about working as a software engineer, as in do you love the code more than anything else, structuring, using the latest and greatest tools and writing quality code. Or do you love being a team lead and helping others solve problems and find bugs through mentorship and guidance? That’s something that could indicate a more managerial role like a lead or manager.

So growing in general, is part of work. Unless you actively choose not to change as you work, which I wouldn’t encourage as that would greatly decrease your chances for longevity as the industry never stops changing and developing.

Growth has an impact on your salary, to a certain point

Finally, all this impacts your salary. Not only is the location of where you work a big impact, but the industry that you work in, the technology and languages that you work in, and finally, the responsibility that you take on. In the end, you can keep learning new amazing technologies and find a specific niched technology with so few engineers that your salary is 3x as high as a senior engineer in a more popular domain.

But, at a certain point, that salary will stagnate unless you choose to take on more responsibility. At a certain level, there is eventually a salary ceiling for a certain type of work without a certain level of responsibility. That’s where you gotta ask yourself if you want to take more responsibility. Do you want to work towards a C-level role? Or could you see yourself just taking on a chief role as maybe a Chief Architect? Or an engineering manager? Or are you happy where you are, as long as you get to write the best code you can and work on meaningful projects?

Final words

These are the kinds of questions and ideas that I have used and followed over the years in order to navigate the tech industry and grow as a software engineer. Personally, I want to stay close to the code for now but still take on responsibility for the things me and my team are doing. I’ve been in an Architect role where it was much further away from the code and much more towards solutioning and handing it over to teams. That was less fun and more political. So, for now, I’m going to stay close to where it all happens and build really great things.

That’s it, those are my thoughts on growing as a software engineer. Hope you found it somewhat insightful or valuable. Or even just an interesting read.

Thanks for reading!