Jul 12, 2021
How to boost your career as a Software Developer/Architect
Since I started working as a software developer almost five years ago, I have greatly improved my skills. Working on different projects, designing complex applications, and solving tricky bugs are some of the things that helped me gain a lot of experience in this field.
Although I find myself in a good position, I am still looking to move to the next level of my career. That is why I want to share with you what are the things that I think will help me (and may help you, as well) improve my skills and knowledge about software development and makes me a better professional.
The following 7 points are personal recommendations to become a high-level software engineer/architect. they personal but hopefully might apply to you too.
1. Get a certification
Nowadays, certifications are not that important as they used to be. You can easily land a position in a well-known company without having any. But I'd say these add a plus when it comes to applying for a particular role. For example, imagine that you want to get a job as a Node.js developer, a good way to differentiate your profile among thousands of other resumes that this position has received is to have a certification in that particular technology.
However, being certified is not a direct ticket to get aboard, but is a great way to be presented. so make sure you practice and really master that tool.
2. Study the CS fundamentals
This is something that I had learned over time. Computer science fundamentals are the only knowledge that rarely varies. They are used across every brand new framework or tool no matter what language or platform you're developing on. Hence, I realize that learning CS is the most important and smart investment that we can make as developers.
Several topics are strongly recommended for any developer, such as:
- Design patterns
- Algorithms and data structures
- Secure software design
- Relational and non-relational databases
- and so on.
If you don't feel comfortable with the topics mentioned above, it's the first step you should go in order to increase significantly your abilities and understanding of developing software.
3. Improve soft skills and communication
Once you have grasped the basics and your role becomes more leadership-focused (such as team leader or senior), you will notice that everything is not just coding. You'll start to need more than that. Soft skills as empathy, mentoring or conflict-resolution will be your new tools to employ on a daily basis.
For these kinds of roles, communication is key, in order to gather requirements efficiently and explaining why a certain decision was taken you must be able to communicate with confidence and clarity to technical and non-technical people.
Most of the time we get stuck just in the technical aspect (hard skills) of the business, but I dare to say that soft skills are equally (or even slightly more) important than hard skills.
4. Be a fluent English speaker
Whether you are from Latin America (where I'm from) or any other non-English country over the world, you need to digest that English is a MUST. Have you noticed that the most relevant applications (such as operating systems) and programming languages are using English keywords? This is not a coincidence, That's because software is purely dependent on this language, in fact, all the documentation is written in it.
Therefore, It easy to figure out that this is a kind of global agreement to use English almost for everything in software development. it's commonly used as the official language to communicate with other colleagues around the world when the team is remote and multi-cultural.
A good piece of advice is to try to grow your English fluency plus writing/reading abilities as much as you can. absolutely worth it.
5. Be an expert in a specific development field
When I refer to the "development field" I mean a good technical domain that you may get good at. For instance, you might understand what processes are needed to encode a video file and eventually become a Video Encoding Expert, or having a good Pentesting comprehension and use that knowledge to be a Secure Software Developer, That adds more value than showing off just as a regular Java Developer.
I'm pretty sure that you'll increase your chances of landing a job at Spotify if you demonstrate expertise working with audio streaming than other applicants.
6. Understanding the big picture
Besides coding, what else do you understand about your job? Do you know why they're using certain technologies? Do you know how the company makes profits? Are you aware of what assumptions the company has about the user's needs? These are vital information that you need to internalize. Getting those aspects clear you'll be able to make more impact on your company than just solving small tasks of the systems.
Understanding the big picture enables us to make the right decisions and also propose competitive features that might better the overall quality to the end-user.
To do that, we have to comprehend things like:
- Software architecture
- Industry and business model of the company
- DevOps pipelines and practices
7. Never stop learning
Last but not least, we must never stop learning. it wouldn't need further explanation. As this industry evolves so fast, we need to be fast-paced as well. You don't have to learn every single new framework (it's quite impossible for a frontend dev lol), but still, you need to keep your eyes open for each new "real tech revolution" that happens from time to time, and maybe looking into the pros and cons of the new trends.
Our ability to learn fast and being a lifelong learner are the two traits that will hold us relevant in the market as long as we have it.
This is not the only path to success as an engineer, but it's the one I decided to take. I collected all the good advice the I think might be useful for any intermediate developer out there.
Thanks for reading and I hope you've found some insight on how you can create your own path to upgrade your career.