written on 05/26/2021
11 Things experienced Software Engineers would have done differently
Recently I have reached my 5th anniversary as a Software Engineer in the professional world. I have experienced so many things and it made me think of all the good and bad things regarding my career. I want to help you with my experiences and what other engineers have observed about their career journey. 11 lessons learned!
Prioritize living near your family and friends
For me, it is super important living near my friends. I can meet with them at almost all times. It is great. I live in a walkable city with great public transport, Berlin. And it is amazing to meet up, and go home at any time, even at night.
Another point is to have family around. I have a small family that lives a 2 hours train ride away, so it is easy to visit them, but still having an own spot/circle to live within. In general, this will help you to still feel connected to other people other than your colleagues. And this is important!
Get a good first job, if possible
Getting the first job is difficult these days. There are many tips from perfecting your resume to finding an internship or create real-world side projects. Many tips to get into the industry. But the first job is also an important one. It will educate you on how it is to work in a corporate environment, dealing with other people, and collaborating on a product with other engineers. This can be difficult, for personal reasons or professional reasons. And it can change your whole view on the career. So make sure you like what you are doing overall in your first job. If it is not perfect try to switch the job to get into a better environment. Do not get discouraged by one bad job.
Make career growth a priority
A big point in my life was when I was not getting a promotion, even though I was performing well enough. The promotion period in my company, Klarna, ended and I was not getting promoted by my boss. I asked: “Why?”. They answered that I did not ask for it. That made it clear to me. You have to be on track to pursue your career path. The best places are probably 1-on-1’s with your manager. Talk about your career, where you want to go within the next three years. Your manager should support you with this ideally, but if you cannot find someone, find a mentor inside your company or even outside your company. In general, I can also recommend following a career ladder and tracking your work. It will help you to reflect on yourself and see where you need to grow.
The important bit is to make it a priority yourself. Higher management does not care often about the growth of individual employees. So the only person responsible for your growth is yourself. Make sure your voice is heard and you are the biggest advocate for your career.
Invest your spare money
When you start your career you will be amazed by how much money you can earn within the computer science field. It might be overwhelming and uncomfortable. I come from a lower-middle-class family in Germany. My family never was rich, so no great car was ever bought or any luxurious things like watches or expensive watches. This can change of course with the salary you will earn but remember to stay humble and do not overspend your money. A good way of doing this is putting money back every month and living on a budget. The leftover money can be invested into something called ETFs, an Exchange-traded fund. It is quite a safe investing strategy and will set you up for the future. Of course, there might be other products you can invest in and even government-focused. I can recommend this simple Flow-Chart: Source.
Get a hobby outside of tech
It is important to get a bit away from your screen from time to time. Look for another hobby other than technology somehow. Running or going to the gym or any other activity to clear your mind and get some reflection on other things. It will help you to keep the mind balanced and somehow prevent burnouts. Just the change of scene will change your view on many things.
Switch jobs if no growth is there
Within the first years of your career, the most important part is to keep learning. If you are a fast learner but the company you work for is moving slow, there will be two results: Fast promotions and fewer learning opportunities in most cases. The learning opportunities are the critical part here. Without learning the first 10 years of your career, you will fall back in comparison to the other people in your expertise. So make it a priority to learn within the job. If you feel you plateau search for another job with more responsibilities or other learning opportunities.
People tend to stay at their jobs a lot because they have a sense of loyalty. It sometimes feels like a family to work there and that is ok, but the loyalty should go both ways. The company should support you the same as you support the company. This becomes critical if you want to focus on your personal career growth but the company prioritizes a different topic. That is the point where you should actively look for another opportunity. Remember: You are in a business relationship with the company - you do work to create profits for the company in exchange for money.
Focus on Core Skills
A lot of times young engineers focus on the hottest technologies in the industry. It was MongoDB some years ago and now it is React for example. But these things will change over time. Once you have found a job focus on the skills that can be transferable throughout jobs. Some can be technical like database design/querying or coding patterns but a lot of the important things are soft skills and rather general skills like:
- Reading: Reading depends on each person, learn how you can summarize information the best and remember it
- Writing: The writing well handbook
- Presenting: This is a good skill to have but difficult to learn. But be open to present at meetups and similar. Outstanding experience.
- Leadership: The Manager’s Path and lots of my bookmarks here
- Group Work: Do pair programming or mob programming
- Organization: Learn how decisions are being taken in your company or in other companies (hint: Tech blogs from the big companies might help)
- Negotiation: Blog - How I negotiated a $300,000 job offer in Silicon Valley - the golden guide on negotiating salary
- Making friends quickly: Book - How To Win Friends And Influence People
- Small Talk: Just talk to the other people in your team and go to team events
A lot of these skills will not just help you in your current job but in your overall career. So be a sponge and try to collect all the information you can.
Take Data structure and algorithms class more serious
When you want to apply to bigger companies on the range of FAANG (Facebook, Amazon, Apple, Netflix, Google) who are known for paying a big salary for software engineering positions you must know common data structures and algorithms. A good thing is there are free resources on the internet to help you with this. A good list to go through is presented in the following teamblind post: New Year Gift - Curated List of Top 75 LeetCode Questions to Save Your Time. It is really helpful and will prepare you well for the interview process at top-tier companies.
Learn to master your interview process with my newsletter
Most computer science students might only need a refresh on these small tasks. It is far easier if you spend time understanding the algorithms and data structure course at your university, but even if you did not go to university or did not have a proper course, follow the list linked above to have a chance to compete for those high-paying jobs.
Apply to big companies
Most of the people reading this article have never worked at a big company and this is ok. This is likely to be caused because a small company can feel like a company quickly if the social aspects are set right. Another reason is that it is intimidating to apply to bigger companies. Higher salaries, higher requirements and a lot more people which means that you are also more likely to work with even more smart people. It might cause imposter syndrome and slight discomfort to work in such an environment but overall it will be helpful for your career because you can learn a lot. So apply to bigger companies even if you think you do not have a chance. At least you have tried and you can always reapply after a year at most companies.
Move to a high cost of living area when young
When you are young you have fewer responsibilities because kids and family life are more unlikely to be there in the 20s. This does not apply to everyone but if you find yourself in such a situation I recommend moving to a high cost of living city. Why? Simply because you can save more money there and can find yourself in a better financial situation once you want to start a family. Your 20% savings rate will not save you as much money as a 20% savings rate in let’s say San Francisco. Of course, within the US, it is easy to move but you can find a job but for other countries, it might be a bit more difficult. Europe is quite open to immigrants though throughout the EU BlueCard program, so try your shot with that as well.
Make connections, talk to more people. Networking will become important
An important thing is to network. It will become increasingly important. The simple reason for this is that you will always meet people twice in your life. You never know if the people you are meeting today might be able to refer you to a bigger company in the future. Maybe they will be even your boss and having a connection beforehand can pay off quite hugely. So keep the connections you have at work right now but also make some new connections. You could be active on social media like Twitter where there is a big developer scene or after COVID-19 with meetups. Be present and talk to people, you can always learn something from seeing something from a new perspective.
You might also like
Let your Projects section shine
Project section on top of your experience or below in your resume? These and many other questions regarding your projects section will be explained in this blog post. Improve your CV with these simple tips that helped me to get interviews at the biggest tech companies in the world.
The #1 tip to familiarize with new JavaScript Codebases
Getting thrown into a new codebase is difficult. But with tools for architecture analysis you can make your journey at your next job's JavaScript or TypeScript codebase a breeze.