How to Design your Career as a Software Engineer: Insights
I found that the best way to accelerate one's career growth is to ask someone who has been in your shoes for advice.
So I turned to Emre Turan, an established Tech Leader, to help software engineers like you get inspired and hopefully accelerate their growth.
Every answer / insight that you will read here comes from years of experience, trying and failing, reflecting and succeeding. I encourage you to reflect and think about how you can implement at least one thing in your career in the next few months.
This came from a live video webinar. If you prefer to watch it, please find the link in the comments.
Here are the written insights from the conversation:
If you tasted the sweetness of startup success, why did you go the corporate route?
I was lucky that my startup succeeded. In order to scale the business further, I needed different skills and business knowledge that I didn’t have back then (scaling a team, marketing, branding).
If you know how to play the game, you can make good money in the corporate world.?
Why did you decide to go the management path and not the IC path?
You need to know yourself and understand what is better for you.?
I have always been a people person, I always have good relationships with the people I work with.?
If you are a good coder and you have people skills, you have a strong competitive advantage in this industry. So I took advantage of that.?
Rejection from a coding interview with Google made me realise I was not that great.
Since then, I invested a lot in my people management skills and I knew I wanted to become a CTO and lead a big group and very technical engineers.
There is definitely a gap in good leadership. I’ve worked as an engineer and had experience with bad management. It is demotivating and can lead to burnout.?
I’m so happy that now, individual contributors can also have quite good career paths. Not everyone should become a manager; it is not good for themselves and it is not good for the people they are leading.?
What makes a good engineer?
A good engineer is someone who can solve complex problems in an efficient way. If it’s going to take forever to solve them or the code is not understandable by anyone else, not maintainable or doesn’t cover more than one part of the solution, then it is good engineering.?
Especially that in the current world, most of the companies don’t build complex products. To be able to do that, you need to write code that is adaptable to different circumstances and it’s easy to change the code as well.
The second angle is that it doesn’t matter how great you are technically, if you are an asshole, you are not a good engineer.?
If you solve a problem in an hour that I could solve in a day, but you make people feel bad about themselves, I am going to think many times before promoting you. I would rather have a happy team than having lots of features and having top productivity.?This is because the collective mind is better than the individual.
领英推荐
A cohesive and productive team will always beat a top individual.??
How can software engineers develop their soft skills? What are the most important soft skills?
Before I start here, I am going to assume first that you know data structures, you know algorithms, you know the basis of computer science. Then you can grow in a robust way. Otherwise, someone is going to realise that you are bullshiting.?
Once you have that solid base, I learned that it is essential to make people feel good about themselves rather than always trying to prove that you are better than them.?
People want to be with other people that make them feel good about themselves and they feel understood. That is the first skill.?
If you need to deliver feedback, you have to do it carefully. It’s hard to hear something like “You suck! I am better than you.” Software Engineers do it a lot.?
If you want to have a successful career in the corporate world, there is one simple trick to get promoted (apart from changing jobs all the time): think like your manager. Ask yourself: “what would I want if I were my manager?”
If you are able to deliver that without that person asking you, you are going to be a couple of steps ahead. As a leader, all you want from your people is “let me handle this for you”.?
Barack Obama said that. What do you need from people that work for you? “I need people who say: let me handle it !”?
As a C-level or a director, you are dealing with many things at once. You need people that alleviate some of the burden.?
As an engineer, as I said, you need to solve problems, but it doesn’t have to be technical problems only. A problem is a problem and it’s your job to solve it.?
Could you give us an example of a non-technical problem?
We had some issues in the communication flow with product managers and someone proactively suggested a way to fix it. It didn’t require a lot of time to do it, he didn’t have to work after hours or on the weekend, he just understood the problem, analysed it and came up with a good solution. People just followed him.?
Is it better to change jobs every 2-3 years or sooner?
I believe that in the early careers, it’s better to change jobs faster. You can be more risky then.?
As a manager though, it is important to stay longer than 2 years because leadership jobs are tough, you need to manage multiple stakeholders and make changes. If I see a manager changing faster than 2 years, I will think that the person is escaping from the problems rather than escaping them. Solving organisational problems takes time, they can’t be solved in a couple of months.?
As an advanced individual contributor as well, I would recommend staying longer than 2 years. It’s because you are expected to solve bigger problems and have an impact further than your team and that also takes time. The same logic applies here.?
What is the best company size for early careers?
I would recommend going for a smaller company in the first years, so that you can touch and try many different things.?
Once you know what you like, you can go to another bigger company to specialise in that and earn more money that way.?
What is your advice for someone graduating now and facing a tough market?
Find a way to stand out. One of the best ways is to contribute to open source projects.
Besides adding that to your CV, it has the magical side effect of making you a better code reader. When you start a new job, you clone the project and understand how it works. You can do exactly the same with open source projects. It is valuable experience that makes you already one step ahead.