Since I went public with this newsletter and shared it on LinkedIn, I've welcomed a surge of new subscribers and LinkedIn connection requests, notably from STEM university students and early career tech professionals.
First off, a warm welcome to you all! I'm eager to share insights that hopefully resonate with your aspirations and queries.
The influx of messages asking for career advice prompted me to dedicate an article to these common concerns, touching on points that even seasoned professionals might find valuable.
A recurring and interesting question I’ve seen people asking is:
Should I accept an offer for a job that doesn’t align with my career goals and aspirations?
A possible instance of this general question might be:
"Hi! As a Computer Science student in Germany, passionate about crypto and having recently completed a project in this domain, my aim was to join Kraken. Unfortunately, their open positions don't match my profile, and my application was rejected. Concurrently, I received an offer for a software consulting role in Belgium, which seems unrelated to crypto and offers modest compensation. Should I accept this offer or hold out for a better fit?"
This scenario doesn't have a straightforward answer, but I can offer some considerations that might guide your decision-making process and broader career strategy.
1. The perfect job doesn’t exist
1.1. A common mistake
This is a mistake I also did when I was younger: I would always create in my head the idea of that perfect job that I wanted, that perfectly aligned with my goals, and then be unhappy about some other job offers I would get that weren’t as aligned.
I think that’s kind of normal and also not too bad of a symptom (means you at least have an idea about where you’d like your career to go - more on this later), but let me try to share some lessons I’ve learned about this over time.
The perfect job you have pictured in your head in fact is not perfect.
1.2. The Kraken dream job example
Let’s take the above example about the new grad hooked on crypto who wants to work at Kraken.
It’s great that this person has a passion, some skills and some ideas about where to go with their career! But, they don’t even really know what this ideal job at Kraken is like.
Maybe they are passionate about writing algorithms for distributed transactions and things like that, but then the job ends up being about writing Python scripts all day to speed-up the deployment of new patches, or about refactoring the integration tests to improve security, or about creating a UI to visualise metrics related to the platforms.
Maybe they’ll get hired in a team which is lacking some directions on the product side, and they’ll be spending most of their time talking to business colleagues trying to scope requirements and build a roadmap for the product, writing very little code.
Maybe, while they thought that remote work was much better for them than in-office work, they start to realise that they find it hard to focus while being on their own or that they lack some social connections on their day-to-day basis. This last aspect could even make them re-think all their careers’ plans since most crypto companies are remote-first and given the realisation that remote is not a fit for them, maybe they should change field all together?
1.3. The value of flexibility
You get the idea, there could be so many details that could turn a dream job into something you’re not really happy about. Maybe this could be related to the technical work you do there or about how much you are learning or maybe some operational aspects like remote/office setup, colleagues you don’t like, company culture, relationship with your manager, work-life balance, reward systems and promotion, pay, and so on.
So, while it’s of key importance to have a strategy and a direction, it’s also valuable to be flexible with regards to the actual opportunities that are presented to you, and to be able to make smart decisions about which of those it’s wiser to accept, how to enjoy and make the most of them after having started, and how to best leverage any job for your career growth and life satisfaction.
This is true in most careers by the way, not just in tech.
1.4. What skills are required across the board in software engineering?
In the context of software careers, there are some aspects of the job that are shared across most positions in the industry: you’ll always have to know how to use Git well, how to build and test largish project without getting stuck, how to make good estimates regarding tasks you’re assigning yourself, how to work well in a team and strike a balance between being productive and learning from senior folks and not taking too much time from them to assist you, how to work with large non-academic codebases, how to optimally work with your manager to make them happy and grow your career, etc.
1.5. How to approach “sub-optimal” job offers
Maybe a job that doesn’t strictly align with your professional aspirations will help you relocate to a new country and make you more comfortable with living and working speaking in English or learning a new language, experiencing life abroad such that you can see if it’s for you or not.
Maybe you could get an offer for a job that is not optimal but where they require you to move to a country that you really like, or vice versa maybe in a country that you don’t like too much but for a great job.
All these “imperfect” opportunities have tons of upside and are worth exploring.
You’ll always have time to adjust your trajectory and plan your next move.
Also take into account that being a “job hopper” and staying less than 2 years at one company is not really looked down anymore, especially from top companies.
2. Always have a strategy
It’s important to have a vision and a direction for your career.
2.1. The “A-Student” strategy
School does a very poor job at fostering this, since it’s built in a way that makes the student a very passive learner, who waits for assignment and tasks to come to them, to only reactively act on this input and deliver something to the teacher.
This is really terrible and if you maintain this mindset throughout your career you are quite likely to achieve unsatisfactory results unless you get lucky.
Before I dive deeper into this, I will bring up the classic case that can be considered a bit of an exception to this rule: the case of the disciplined A-Student with a good relationship with the teachers. This is the student who always studies very hard, gets the best grades, is praised by teachers and professors, has some work opportunities “fall” to them through the professors, ends up with a good job, performs well there too, has a good progression etc.
The above case basically highlights a strategy (note: it’s still a strategy) that is very lightweight regarding planning and “active” strategising, and very heavyweight with regards to task-work. I don’t think it’s a bad strategy overall, and for some people who find strategising very annoying or boring, and working heads-down on something that catches their attention fun, could be a good strategy. The problem is that in my opinion is not optimal with regards to risks.
2.2. Limits of the “A-Student” strategy
If you care about goals and results, then you might want to have a high probability of hitting your goals.
If you care about having a career that feels successful to you, you probably don’t want to rely on your professor or manager to give that to you if you show them that you’re smart and hard-working. It could be that your professors or managers don’t deliver, and then you’ve “failed”.
Moreover - although this might be very much related to your personality - I think if you spend time planning your own career, you’ll be more satisfied because your path will feel more “yours”.
Having highlighted the “exception to the rule”, now let’s dive deeper into what having a strategy actually means and how you can construct yours and what are the advantages of having such a strategy.
2.3. Strategy for people who take ownership of their career
If you’re still in school, I recommend that you start getting an idea of what waits for you afterwards, this could be through internships, talking with professionals, checking the career pages of companies you know, being in touch with your university’s careers’ website/office, signing up and using LinkedIn, checking out related content on blogs and social media, etc.
This way you could start formulating some ideas and hypothesis about what seems like an attractive path to you, and then dive deeper into these paths checking the details related to them.
If we’re talking about technical careers in software, you could check out job requirements for jobs that seem cool to you, see which skills you’re missing, note them down, and try to acquire them in your free time, studies, internship and full-time job opportunities.
Also try to find people on LinkedIn who’ve walked that path and see how they got there: I strongly encourage you to seek mentorship there and text as many people as possible that have the jobs you want and seek advice for them. This is important but also not necessarily very easy. More on this later.
Especially if you’re based in Europe, you should start getting an idea about where you would want to work and live. Location is going to influence your life and career a lot, so it’s good to have an idea about this. Try to take advantage of exchange opportunities while you’re in school, or try to work abroad for internship and full-time jobs. Also try to network with internationals as much as you can, such that you will have an easy way to learn about many countries without having to live in all of them.
Of course if you don’t like travelling or relocating and want to stay in your home town or country, absolutely nothing wrong with that in my opinion. But then leverage this piece of information trying to find out what careers are available in that area and seek local mentors.
2.4. Combining Strategy with Flexibility
It could seem like this advice of having a strategy contradicts the first one about being flexible, but actually that’s not the case.
In fact, having a strategy allows you to be aware of what skills are important for you to know and look for them in work opportunities. This allows you to be more flexible, because, given this assumption, there’ll be many jobs where you could find some aspects and learning opportunities that align with your high-level strategy. Even if these jobs are not your “dream jobs”.
Some examples:
Let’s say you found out that you want to move to Switzerland and have a software engineering career there, then some company offers you a job as a business analyst in Zurich. You could think: “omg this is terrible, it has nothing to do with my career goals”. But actually, since you did your research and realised that even as a developer you need some skills regarding working in a corporate environment and so on, you might think: “ok, I could take this job, check my box about moving to Switzerland, learn what I can while I work this job without overworking for it, and in the meantime keep my coding skills sharp and apply to coding jobs in the same location”. This could be a smart strategic decision.
Or else, let’s say you bought into the idea that working for big tech is the best thing ever, and that is your dream now. Then Microsoft offers you a position to work in Tallin Estonia, and you don’t want to move/live there. You could take this offer, enter big tech, and after less than one year you could easily change location either within Microsoft or with another company. And in that year you’d have made real progress in your big tech software engineering journey and if you had the right mindset, probably you’d also have enjoyed that year in Estonia.
3. Seek mentorship
Last advice on this list, potentially even the most important.
Tech folks usually tend to be introverted and not like outreaches and messaging strangers asking for help.
3.1. Why mentorship
This is quite harmful. The value you can get from someone who’s several step ahead in their journey with regards to you is invaluable. Something that could take you years to figure out, could be told to you by them in 2 minutes.
I think everyone should be as proactive as possible when it comes to this. The internet is a great tool and LinkedIn in particular I think it’s an amazing platform for this: you can make very detailed searches filtering for location, job title, company etc and find all kinds of people that have your dream job and try to connect to as many of them as possible and ask for their advice. Maybe someone will make you a referral in the future or give you some key insights.
3.2. Getting (good) mentors is hard
You also need to be quite robust to rejections because most of these people will ignore you :)
They have better things to do and probably have nothing to gain from interacting with someone that’s very early in their career and very little to show for. But a lot of people like to share their experiences and if you try hard enough you’ll get something out of it!
3.3. It can be a worthwhile investment
Also consider paid mentorship opportunities. Depending on your budget, this could be a wise investment. I believe that oftentimes one year with a mentor could cost you much less than a master’s degree and yet provide you with more value. I think a good platform for this is mentorcruise.com, you can check it out and see if you can find someone that could fit your case. I’m also there (https://mentorcruise.com/mentor/nicolaamadio/), although I don’t have a lot of bandwidth at the moment for mentorship.
3.4. Networking
Similar to mentorship is networking, which is basically any kind of relationship that could have some positive impact on your career or life in general. This can be among peers too, maybe people you meet during your studies, experiences abroad, interviews etc. Always make sure you connect with people you encounter in your journey and share your contact details and/or Linkedin/Instagram/Telegram profile etc. If someone needs a favour from you or asks you something, always be ready to help.
3.5. Online presence and personal brand
Having a presence online can be useful too, although it can end up taking quite a bit of time.
To be honest, I wouldn’t stress too much about this if you’re very early in your career as there are probably higher leverage things you could be doing with your time. But if you like it and have time/energy for it, why not.
Usually a LinkedIn profile kept in decent shape could be enough at the beginning, while later on (depending also on your personality and passions) having a blog or a YouTube channel could have its advantages, as well as taking part in some open-source projects or publishing apps and websites.
Conclusion
To summarise:
Have a strategy;
Be flexible and know how to leverage opportunities;
Seek mentorship and network.
Most importantly, enjoy the ride!! :)
I'd like to add something that rhymes with the flexibility you have mentioned.
It's about taking advantage of the opportunities that appear in your way. Sometimes you won't be able to fully choose the job you want to do. But even if you don't, there will always be interesting things to learn. Be conscious about the opportunities coming your way, seize them, and they will become new sills in your skill set.
I will give an example based on learning languages. I spoke good English when I was 16, but I only learned French when I was 27 because I did an internship in Brussels. I learned Italian at 30 because I got a job in Italy and lived there for 2 years at the time. I learned Portuguese at 33, because my wife is Portuguese.
I never planned to speak 5 languages, but I took the opportunities that were appearing along the way. I think this can be extended to other skills too.