Why I Chose to Be a Generalist Software Engineer
The tech industry is tough these days — layoffs, hiring freezes, uncertainty everywhere. I’ve been talking to friends who are either searching for new positions or stressed about the future of their careers. It made me want to write this short article about my own path (not as advice, but just to share my experience ^ — ^) and why I chose to become a generalist software engineer instead of going deep into a single specialization.
Most people in tech will tell you to specialize and avoid jumping from one field to another.
I… didn’t exactly follow that path.
My Journey: From Unity → Backend → Game Backend → Unreal
I started out as a Unity developer, working on client-side features for nearly three years. Then, for personal reasons, I made a big switch and became a Python backend engineer — and that’s when everything changed.
During my backend journey, I didn’t just write APIs. I worked with databases, machine learning models, data analytics dashboards, built scrapers, learned some devops things, and helped frontend teams integrate with backend logic and so much more that I can’t even recall :D. I didn’t plan to do this; it just happened as I kept jumping into whatever needed to get done.
I didn’t plan any of this. I just kept jumping into whatever needed to get done.
A few years later, I found myself back in the game industry — this time as a game backend engineer, using Go and .NET, two languages I had never touched before. I joined with nearly zero industry experience in either.
But here’s something I truly believe:
Programming languages are just tools. What matters is logical thinking and understanding how systems work.
So I took the risk.
And honestly? I’d do it again without hesitation.
Not long after, I was asked to help with Unreal Engine development. I installed it for the first time, jumped into the project, and treated it as another growth opportunity — even though I didn’t really want to go back to client-side at first. The first couple of months were rough, but eventually it clicked.
Now I can actually do real work in Unreal (yay!).
I still like to call myself a backend engineer because that’s the area I enjoy the most, but the truth is:
I’m a generalist, and I enjoy being one.
The Pros of Being a Generalist
1. You’re adaptable
Working across different areas makes you flexible. You can switch contexts quickly, join new projects faster, and handle unexpected challenges better.
2. You’re more resilient
If the job market shifts or a tech stack becomes irrelevant, it’s not the end of the world.
I’ve pivoted before — I can pivot again.
3. You see the bigger picture
Understanding how systems talk to each other helps you build better solutions.
I know how backend decisions affect gameplay. I know how game logic can stress servers. That context matters.
4. You can step up when others hesitate
I’ve taken on tasks others didn’t want: deployments, new languages, scary legacy code bases.
Generalists often thrive in those gaps.
The Cons of Being a Generalist
1. You don’t go deep in one thing
I know multiple languages, but I’m not the top expert in any of them. I can work with game engines, but I’m not the engine guru.
2. You’re not always the “go-to” person
In many teams, specialists have a clear domain. As a generalist, you’re often the support player, not the star expert.
3. It can slow down career progression
Some companies reward deep specialization more than breadth. Having spread-out skills can make climbing the ladder harder.
4. You risk burnout
Constantly jumping into new areas — sometimes under pressure — can be exhausting.
This path isn’t for everyone.
Why I Still Choose This Path
Honestly?
I get bored fast.
Doing the same type of work over and over kills my motivation. Being a generalist keeps things interesting — there’s always a new stack to explore, a new challenge to solve.
And this mindset isn’t just something in my work. It’s part of who I am.
I have a bachelor’s degree in computer engineering and a master’s in space engineering. Outside of tech, I’ve tried all sorts of things. I’ve trained in karate (black belt), competed in fencing (and even won national medals in both), picked up sports like horse riding, tennis, swimming, shooting, skating, …! I used to play Setar, and these days I’m learning piano. I guess being a jack of all trades has just always been part of who I am.
I don’t mind the tradeoffs.
I like adapting, taking risks, and solving real problems across different domains.
I like not being stuck in one box.
It’s not always easy — but it works for me.
Final Thoughts
Being a generalist software engineer comes with tradeoffs. It’s not the fastest or easiest career path. But it’s full of learning, growth, and opportunities to step up when it matters.
If you love variety, enjoy solving different kinds of problems, and don’t mind jumping into the unknown once in a while, being a generalist might be a great fit for you.
As for me?
I’ll keep doing what I do: learn, adapt, and explore.