How to grow your career as a software developer
![Erik Mellum](/assets/images/team/erik-avatar.gif)
![Erik Mellum](/assets/images/team/erik-avatar.gif)
Introduction
Growing your career as a software developer requires intent. Leaving it to chance means a higher chance of being left behind while others move ahead. I'd like to share some of the lessons I have learned as I move ahead in my career. This article focuses on growing your career in startups in a growing company. It can look different in other circumstances.
Overview
These areas of growth are most commonly neglected; planning for the future, continually improving, and communication. It is expected that if you are here reading this that you are already a competent developer. Competence is a requirement to moving up in your career. One of your first focuses should be becoming an excellent developer who can deliver tasks. Once you have that down, let's move to the softer skills.
- Plotting a course for the future
- Continuous Learning
- Planning and estimation
Why do this at all?
The times that I experience the least career satisfaction and the most burnout are the times when I'm not intentional. Personal mental health and job satisfaction are big motivators for caring. However, just as motivating is the concept of my company being successful. Many companies offer incentives to the employee based on the outcome of the company. These could be RSUs, ISOs, or some other concept like profit sharing. I want to give myself and the company the best odds of being successful. It's more rewarding, and it gives me the resources in life to do the things I want to do more, like take my family to Disneyland. Your reasons can look different, but I can't say strongly enough that being intentional is a big reward all on its own.
Plotting a course for the future
Plotting a course for the future means playing strategically. What does your employers future look like? Is the company growing? What about the department? Where do you fit into these growth plans, and is your boss aware of your aspirations? Don't sit back and wait for opportunities to come to you. Carve out your place in the growing organization.
Getting buy in on your growth
Bosses all behave differently, but one thing remains constant. You want your boss to be bought into your growth and success. That will not typically happen without working closely with them on your career. I find it best to establish rapport and let your boss know that you have aspirations to grow. Some questions that I like to think about:
- What does the company need right now, what will the company need in the future?
- How do my skills help solve the needs of the company now, and the company in the future?
- What skills am I missing in order to fill these needs right now, and in the future?
- Does my boss know that I want to work on what I'm missing, and utilize what I already can do most effectively?
- How can I get my boss invested in my success, so that it is linked to their own personal satisfaction.
Look at things from your bosses perspective
Your boss already probably has a lot on their plate. What are their levers to help them do their jobs more effectively? Look for wins that make your boss look good and make sure you are celebrating wins together. Listen to what the stressors are on them and push yourself and the people around you to make sure that you are on target. Remember that convincing people requires you to consider things from their perspective. This conversation can't focus on everything you want, especially not initially. You need to help them by using your competence to solve their problems as well.
Starting the conversation
One magic phrase I use to get my boss invested in my success is:
"Can you give me some advice?"
This lets them know that you are willing to listen to their knowledge. It let's them know that you want to work with them. I will use this to lead into the answers to the questions I posted above. Pick three things at any given one on one to review with your boss.
Over the course of 4 - 8 weeks from starting you should ideally be in a place where you and the boss have come to an agreement about opportunities and where you fit into those. Try to be observant in the workforce.
Celebrating Wins
It's critical that you celebrate your wins with your boss. Everyone will notice your misses. They will stick out in their mind. Are you celebrating your wins and letting your boss know when you see a deficiency and you go out of the way to fix the problem? If you are doing the fixing but never celebrating the wins then you are doing it in silence. You're a fantastic worker, but nobody will celebrate what they never heard about. This is one of the most overlooked areas of my early career. Advocate for yourself and your career by celebrating wins!
Pointing out opportunities
When you do see an opportunity it's not necessary to always fix it right away. It's usually better to discuss these before you take action, so that you can bring your boss along for the ride and celebrate the win together later.
"I noticed <insert observation>. We are spending extra time because <insert cause>. I think there is an opportunity to fix this by <insert potential solution>. What do you think?"
Example:
"I noticed our backlog grooming sessions are not productive. We are spending extra time because the stories are not defined before we get into backlog grooming. I think that if we have these ready to go before we start it will be a lot more productive. I would like to have a conversation with our PM to make sure that they have what they need and that expectations are clear. What do you think?"
Notice how in this example we are providing an observation, a cause, a potential solution, and offering to implement the solution. We are also seeking wisdom and advice before acting. The plan is going to be improved based on your bosses feedback, and they will be eager to see if the outcome improves measurements that affect their own performance, such as team velocity. This toy example is slightly contrived and possibly even too small. I want to caution against bringing something minor to your boss, ideally we want to be making observations that are large enough to merit this conversation.
Defining your gaps
Let's assume that your boss is in agreement that the company is growing and that you want to be a part of the growth. Maybe you want to move to an architect role, or senior SWE, or management, or some other role. Give your boss an assessment of the skills you believe that position requires. Then assess your own skills and ask them to review it with you. Can you tell me if you agree with my assessment? Do you think there are other gaps that I need to fill in? What will the plan be to fill the gaps so that when this position does open that you are ready to jump right into it.
Let's now talk about how to implement our plan to fill the gaps.
Continuous Learning
When was the last time you took a class or learned something new in a structured way? I hope that you said sometime in the last quarter. If you didn't then I want to plead with you to take this seriously. This is one of the biggest opportunities you can take. Every employer should be willing to help you find the time and the money to take online courses. Three possible options are Udemy, Coursera, or Linkedin Learning. This is absolutely not optional from my perspective, because you don't know what you don't know. The only way to find out what you don't know is to expose yourself to new ideas and new technologies.
Specific Skills
Picking a course is as simple as deciding if there is a specific technology or a general skill that you should pursue. For example, if my company is using GraphQL and I don't feel strong at GraphQL, then that's a course I should take. Courses around specific skills will focus on increasing your competence in a subject area. This pays dividens because it will allow you to estimate and deliver more effectively. These courses can be targeted to your company and role. If you are a leader I would highly recommend requiring each of your team members to complete at least one course a quarter. These courses are typically in the 2 - 4 hour range, so it's not a stretch to challenge your employees to do this. They will thank you for it.
General Skills
If you want to go with a general skill, consider what skills you think are valuable for your career to improve. Project management, agile methodologies, and estimation are all skills that will make you a more effective team player and leader. Everyone wins when you learn these skills as well. In this case you can look at courses offered by your provider with a high rating and lots of learners. This will help you to easily find high quality content that gives you new perspectives.
Reading Books
Reading books is one of the best ways to get exposed to new ideas. People mention the best books they have read in passing all the time. It's also a great question to ask someone that you respect - "What are your top books?". Some of my top books include: The Lean Startup, Principles: Life and Work, The Innovators, Zero to One, The Speed of Trust, The First 90 Days, The Art of Woo, and How to Win Friends and Influence People. Some books on my list to read: Radical Candor and Measure What Matters.
Continuous Learning Wrap Up
You will never reach your potential without exposing yourself to new ideas on a regular basis. Never settle for only what you already know. Commit to slightly less every week to leave time for making yourself a more rounded employee. These are skills that will continue giving, even after you move on to a new employer someday.
Planning and Estimation
The best reports for any boss are the ones who can deliver on what they promise. Companies depend on engineering teams to deliver features. These features drive sales, investments, and the company. Reliability should be the relentless focus of startup engineering teams. Reliability around delivery is incredibly hard at startups. Almost by definition a startup never has quite enough resources to fill all the gaps, and goals are constantly changing as new data comes in. That's not an excuse for being unreliable.
You need to become an excellent planner and estimator if you want to move up in your career. Planning and estimating effectively is the number one way to relieve stress and crunch. Burying your head in the sand and saying "we will just work as fast as we can and deliver when it's done" is just not acceptable if you are moving up in your career despite how true it may be.
Setting dates
Our industry seems to shy away from the concept of setting dates and expectations on our software engineers. This isn't preschool though, this is a professional work environment. Dates are part of the job eventually. You can always provide a SWAG (Scientific Wild Ass Guess) that is based on your experience. At early stages your SWAG / T shirt size is going to be imprecise. That's why you define it in weeks. It might be plus a week or two, or minus a week or two. If you literally have no ability to estimate you can always....
Set a date for a date
This is the point of a spike in agile. There are times when you can't provide accurate estimations. This could be for epics because the scope is ill defined. It could also be for stories because there are too many unknowns. You should always be willing to set a date to have a date. "I don't know when we can get this done by, we need to research x, y, and z. Once we research those I can give you a date. I'll have the research done by next Friday".
Resource and quarterly planning
I have a blog post dedicated to resource and quarterly planning that I recommend you check out. You can view that blog post https://blog.rune.tech/posts/software-engineering-quarterly-resource-planning if you would like to become better at this process. It's a requirement to move up as a software engineer into a role with more responsibility.
Summary
This all comes back to what your own personal goals are. What are you bringing to the table at your workplace and to those around you? I want to improve those around me and challenge myself to become a better person every day. We've examined how to plot a course for the future with your boss. Questions to ask yourself, starting conversations with your boss. We've included spotting opportunities and surfacing them. Making sure that our skills are growing and we are learning the unknown unknowns. Dates and planning. There is so much more than this but these are basic concepts that I have neglected to my own dismay at various points. I hope they are helpful to you in your career.
From the blog
Come see what we're up to. We are excited to add new content regularly. We write content about new technologies, new products, and new business opportunities.
Test Deployment
Erik Mellum
Do you embrace change or fear it?
Erik Mellum
Six reasons dropbox paper is better than notion
Erik Mellum
Why you should estimate development tasks not stories
Erik Mellum
How to grow your career as a software developer
Erik Mellum
Resource based planning for product and engineering teams
Erik Mellum
Tips and pitfalls of setting up a monorepo with Turbo, Nextjs, and Vercel
Erik Mellum
Best practices any team can use with their typescript projects
Erik Mellum
How to Implement Invisible Captcha with Next.js in 2022
Erik Mellum
Where Do Computer Viruses Come From?
Erik Mellum
Rune Launches in Chico
Erik Mellum
Why Do Computers Break?
Erik Mellum