Career development as a software engineer
Written by Mariusz Sołtysiak
In my previous story, I was more focused on my experience from the early stages of my career. Now I’d like to continue sharing the things I learnt as a software engineer(and partially as a team leader) around setting career goals and managing self-development.
After the acquisition of our company, the team started to grow, and after almost three years I got an offer to become a team leader for four backend engineers. I had no experience managing a team, and here it was even harder as only a part of the team was working directly with me. Others were working as part of other project teams. However I wanted to become a good leader to all direct reports.
Prepare for changes
I started reading books and listening to podcasts. I watched many videos and attended a few conferences to obtain more knowledge about leadership in general. The only problem is that everything happened just too late. I mentioned during my interview that I want to become a leader, but I never expected it really could happen. I didn’t do enough on time to prepare myself and have a good starting point. Now I know how important is to prepare for changes. That’s why I decided to write this story.
Create a good development plan
You need a clear development plan to follow in order to achieve the goals and satisfy the expectations. It’s not an easy task to do, and usually, you should ask your leader for help. A good development plan should follow three basic rules:
have short and long-term goals
focus on 2–3 specific areas
have clear actions for every area — they should be measurable and checked periodically
If those points are satisfied, it’s probably enough to have something to continue the work. I strongly believe that the first version of the plan should be created individually.
How to find areas to develop/improve?
Fortunately, there are some possible solutions. First of all, you should ask your colleagues and your leader(s) for feedback. Because you want to focus on identifying development areas you should ask a few questions that will help them to provide you with ideas. Here are some examples of questions that could be used(all of them I asked and I received meaningful responses):
What do you think are my areas to grow?
What things do you appreciate most when working with me?
What should I start doing?
What do you think should be my next step in my career progression, and what gaps do I have before I can make it?
Which hard skills should I work on the most?
In your opinion what responsibilities [in the company/team context] should I have that I don’t have at the moment?
What strengths have you noticed that you think I should develop?
After you have written down your questions, it's very important to pick the correct people to send the feedback request. You most likely won’t receive a meaningful answer about hard skills from the product manager. Although, if you see that you are missing some skills around communication with business, the product manager might be the best choice.
The last step is to analyse the results. The answers might not be so specific, but anyway you should try to identify something to develop. You should also keep in mind your personal career goals and try to pick these points that could move you in the right direction. I personally always tried to pick up something that I could work on during my everyday work and current project.
Ask your leader for a review
When you have created your development plan you should ask your leader for a 1:1 meeting to discuss it. Your leader also should have the possibility to read feedback answers. Altogether you should agree and set a time range for each of the actions inside all areas. You should also agree on how often you will update and review the progress.
Do
Having everything written down and agreed that you just need to do. Isn’t it simple?
Unfortunately, it’s never easy. Being systematic is very important here. You don’t need to do everything at once. If you have agreed to a quarter, don’t try to finish everything in a week — especially the last week of the quarter.
If one of your actions is to read a book about microservices architecture, try to divide it into chapters and read one chapter every day. If your goal is to create a presentation and make a public speech — create a few slides every day, then spend 30 minutes daily to say it aloud until you be ready.
Check progress
Periodically you should update the progress about your actions and talk to your leader about challenges and learnings. Sometimes it might happen, that because of changes in the company/team some of the actions will not be possible to realize. You should be flexible about it and replace them with something else. When necessary, you can replace also an area.
Don’t give up
Remember that if you want to progress your goals should be ambitious. There is always a risk of failure, but you should never give up. If you fail to do something or won’t meet the deadline, always try to make a retrospective with yourself and your leader. Try to write down why and what could you do to avoid it. Learning from failures can bring more benefits than you can imagine.
There are other things that are important during your career development, but you should identify them on your own and adapt to your needs. I wanted to share the most important factors that I try to follow. I consider them very effective and helpful for progression.