What you don’t get told about being a software engineer
Being a developer has its’ ups and downs. Its’ frustrations which don’t often get talked about. The nuances of a career which are always there but never mentioned.
One thing that has stood out for me since I have become a software engineer is that you have to make your own way along this landmine filled industry. I say landmine filled industry in the sense that Tech is so vast, expansive and ever-changing. There are a million and one things to dip your toe in to. For example cybersecurity, frontend, backend, project management, quality assurance… to name a few. It can be very difficult to know which area is right for you based on your individual needs.
Your interests may change over time and that’s fine but no one is out to help be your guardian angel, navigating each of your individual steps. You have to be proactive and conscious of where you are going and where you want to go at all times. Consistent worries about being pigeon-holed by a specific technology, programming language, cloud platform or problem domain are a constant.
Trust your intuition on this one, and this should help you navigate the tricky industry which is software.
Opportunities for career progression don’t always present themselves in clear and obvious ways. During career check-ins, you may get feedback that to progress to the next level, you need to have more of a presence within the company or you need to work on more technically complex tasks, for example.
However what if you work on a team where the work is often repetitive and complex technical work is few and far between. You often need to carve out your own opportunities to show what you are truly capable of. Using your initiative to find new work or being creative enough to suggest a new project idea are ways to combat this.
Always be on the look out for new ways to impress and be a better engineer. If you see a team process which has holes in it, fix it. Look out for areas of improvement which often come up as topics for discussion in retros and be proactive to work on new ways to combat these problem areas.
Your team is everything
Your team and who you work with will be the crux of how much you enjoy your work. You may love the language you are using, the flexible work hours, the office you work in but if your team are toxic… you have no chance.
Luckily I have always had a great experience of working with a great team but this one goes with out saying. Be conscious of who you work with and your own role within a team.
Burnout & Agile progress
The agile process is designed to help software be developed in accordance to new requirements easily. However for developers the constant iterations of sprint after sprint can cause a nagging feeling that there is no end in sight.
Develop, Release, rinse and repeat. The feeling that you are never finishing anything. There is no line in the sand where your team can celebrate the work you have done. Within sprints we are often refining work for the next set of sprints. Ensuring there is enough work to be completed next. Before you even have the chance to finish your current sprint work.
This process can take its toll and it’s a reminder to be conscious of the valuable progress you have made whilst developing.
Be aware of egos
Egos are rife within software development. I am not exactly sure why this is. Maybe it’s the ability to do something a large majority of the population cannot. The high barrier to entry into coding could be one of the reasons.
Another may be that there are a million ways of writing a piece of code to do the exact same thing. Arguments can arise about the best way to do it, or the best language for a server. The list goes on.
This is not to say all engineers are narcistic egotists, but just be aware of the ones that are!
Senior engineers aren’t always very “Senior”
Finally, senior engineers often have an air of mystique about them. How have they gained such a title. As almost a badge of honor for their years of service battling bugs, JIRA tickets and their superior code.
I have often found that this should be taken with a grain of salt. Some senior engineers can simply gain this title due to years of service in the company as opposed to any real competency.
Learn what you can from your more senior members of your team but take it with a pinch of salt as they may have many bad habits! In my view a senior engineer should be one that takes responsibility, shares knowledge often, promotes good processes and most importantly supports junior members of the team. Needless to say my experience of more senior engineers is not always the case.