Working on personal projects is fun. You have ownership, you work on a problem you care about, etc.
But at work, you might not care too much about the problem that the company product is solving, or you might not have sufficient ownership, or maybe your role is too restricted (e.g., you like talking to customers, but the nature of your SWE job means you are only expected to code).
Basically, you know what you like, but the nature of your job does not fully align with your desires/goals.
How do you navigate such situations?
Many people say to have a hobby outside of work so that you don’t crave fulfillment from work itself. That could be an approach, but I feel that when the work itself is fulfilling/fun/in alignment with what we want, that could be an even better way, as it’s tied to career growth.
It's pretty rare for an engineer to be genuinely excited about the product they are working on. I literally worked on ads at Instagram. Do you think I'm super passionate about making people buy crap they don't actually need on social media? Hell no. But I loved the work, and here's why:
So to answer your question, that's how you find SWE work that is genuinely fulfilling - Look for teams that can provide you these. Affinity for the product specifically is a nice-to-have, but many people think it's absolutely necessary and the only way to unlock true passion for your work. That's completely untrue.
Thanks Alex. In my case I want to diversify my role a bit, as opposed to just coding. For example, I like talking to customers. Since I was hired as a SWE, is it a fair ask to request my manager to diversify my role a bit? I only recently started my job - when would be a good time to do so?
I only recently started my job - when would be a good time to do so?
Good question! It's true that you don't want to "rock the boat" after joining. This is because you haven't earned any trust yet as a newbie. If you are doing a good job, you should be able to ask for more general responsibility after ~3 months. Follow the advice from the onboarding course to do so: The Complete Onboarding Guide For Software Engineers
Some companies even have a midpoint performance review check-in every 3 months (that's how Meta worked for me). This makes it really easy to tell if you have properly situated within the team and earned their respect. If you're getting great feedback, this means that it's safe (and expected) for you to expand your role within the team.
If you like talking to customers, you should make friends with your UXR lead (user research), product manager, and designers as they are closest to the customer. These resources can be helpful too: [Taro Top 10] Product Management For Engineers
In my humble opinion, no job in the entire world can make you fulfilled if you don't have anything outside of work to look forward to (family, friends, SO, a hobby, etc).
I have a very simple rule for generating fulfillment from work and that's to find the next opportunity to learn something new or do something you've never done before. It could be leading a large cross-functional project. It could be mentoring a junior engineer. It could be working with a tech stack you've never worked with before, etc
Nothing kills fulfillment more than being in an environment where you aren't learning anything at all or learning something so niche and specific it doesn't translate into anything fundamental (ex. very specific frameworks, etc)
Why is SWE work not fulfilling for you?
I notice your question is very general, but imo the solution is to find a role where atleast 50% is work u enjoy, 30% dont mind, and 20% dont like
I find earlier stage companies way more fun to work at
+1 to this. Startups are incredibly fun to work at, especially if you can vibe with the team and are aligned with their overall mission
I want to comment on your thought that fulfillment is tied to career growth. That's true to an extent; if someone is passionate about their product/service, they are more likely to drive results and make a business impact.
On the other hand, it may be "boring" things that actually cause you to grow and level-up. "Engineering excellence" is a good example: writing documentation, improving on-call experience, finding gaps in processes, reducing tech-debt and so on. Especially at a senior level, you will not achieve growth simply by completing the tasks assigned to you. You need to be pro-active in finding gaps and problems, getting buy-in from the team, and executing on that. These can often be tasks that people find "boring" or "unfulfilling".
Another option to consider is picking up a formal mentee or informally helping your coworkers in a variety of ways.
One low commitment way to do this is help them with ad hoc tech troubleshooting in areas you know well. It works well both ways because they find someone reliable to go to if they get stuck (and pick up new skills along the way) and you get to have a sense of fulfillment (and become a better teacher along the way).
Regardless of whether my projects were mission-oriented or not, one stand out aspect of my long tenure was the fulfillment I got from the mentorship my coworkers got from me!