Choosing a technical focus as a software engineer
Young technologists have a wonderful opportunity to explore. Software is involved in almost every company; software ate the world. Whether you’re a software engineer, data scientist or product manager you can work on more-or-less anything.
I love learning. Years ago I wanted to work on everything, learn all I could. For quite a while that was my main career goal. I’ve worked on a huge list of things [1], from Signal Processing to DevOps, Archaeology to Web Development. I’ve worked in startups, academia, government, and enterprise.
There are huge upsides. I have relevant experience for almost all technical job postings. That feels awesome. I can navigate away from difficult problems a long time before they happen. “Your opinions save lives,” to quote some feedback.
The downside is time. It’s harder to count years of experience when you were doing radically different things from year to year. If I’d focused on Web Development work I might have made more formal career progress… or I might have bored out.
As usual this issue is not clear-cut. It’s good to have a mix of specialism and general competence, called the T-shaped engineer.
My scattergun approach to learning showed me enough different workplaces to learn that human factors deserved most of my attention. Politics or our own issues dictate a lot of “technical” outcomes.
These days I’ve settled down in the DevOps/Cloud space. My past experience helps – particularly Cybersecurity – but I don’t expect to move into a different technical area soon. I’m more likely to move into management, as these days my learning is mostly about People issues and not Technical ones.
[1] Games, Frontend Web, Backend Web, Data Analysis, 3D Model Generation, Archaeological data, Cybersecurity, Signal Processing/Machine Learning, and DevOps