I’m not sure if it’s always been this way and I just never realized it but it seems there’s a lot of specialization happening within the software engineering industry. For a long time it felt that the majority of the software industry field was shallow enough that being a strong developer was enough to get into anything of interest. Now it does feel as if the industry is turning a corner and there’s significantly more specialization. There have always been exceptions in the past but it does feel specialization was along the edges - now there’s enough depth in the industry that it’s difficult to be a general software engineer, especially further in a career.

Just by looking at various job postings I see the following roles: frontend developer (and within here there are various splits by technology), data engineer, machine learning and AI engineer, mobile developer (which is further divided by iOS and Android), devops engineer, security engineer, sales engineer, and database engineer. And this just scratches the surface - there’s also a ton of software engineering work happening on the hardware side which comes with its own principles.

On one hand it’s possible to make a solid living as a software engineer that ties various third party libraries together in order to deliver new features. This is by no means easy and requires a solid understanding of software architecture and the ability to quickly process spartan documentation combined with the ability to write code in a futureproof way. At the same time this is very different than pushing the boundaries of a discipline.

It’s definitely possible to specialize in more than one area or switch among them but it requires significant effort and will only get more difficult over time. I don’t know what this means other than to be thoughtful about the roles you’re taking and whether they’re something you want to keep specializing in.

Read more!