19 Example Career Goals for Software Engineers

Subscribe to The Thoughtful Leader newsletter to unlock leadership insights that elevate your team's performance.

Introduction

As I talked to many software engineers over the years, it was always a challenge for them to figure out what career goals they should pursue. In this article, I thought I will pen down some examples of career goals for software engineers. I will also put in my thoughts on why they are important because if you don’t know what these goals are for, why pursue them?

What are the types of career goals for a Software Engineer?

There are a few broad types that I group career goals into: Technical, Product, Job, Communication and Work Environment. Later, I will explain how to apply these categories depending on the Level of the Software Engineer you are. Regardless of the type of goal, make sure that you have an open conversation with your manager on which ones you would like to pursue. It is always good to have their support to help you on your journey. Remember, it is their job to do so.

What career goals should I have as a software engineer?

Technical Goals 🎧💻

Technical Goals are specific goals to help you acquire technical skills which you do not have. Some examples are: Implementing a project in a new language/framework, confidently using version control, running a project on a cloud platform. Technical skills are really the bread and butter for an engineer regardless of the level you are. It is also something that stays with you once you get it pinned down. People, both technical and non-technical, will always trust and respect an engineer for their technical skills, as such these goals should be high up in your list.

Goal 1. Become an expert in technology / language (ML / GoLang)

Being an expert requires time and effort to research, build and break stuff to know the ins and outs of the domain. This means that the effort you put in is hard to replicate and it makes you more valuable to any organization. Additionally, being an expert on ML for example, will help you build awesome applications that are powered by ML while planning for its constraints (e.g. limited training data). 

Goal 2. Design an architecture for a new feature

You can read all the books on architecture, but the real education comes in designing architecture with real requirements and constraints. When you consider the constraints, you can better appreciate the differences between architectures and weigh the pros and cons of each. So do not stop at the first architecture you find, and always get feedback on your design to learn from others' experiences as well.

Goal 3. Optimize performance of an application

Performance optimization trains so many skills that it should really be a first goal. It requires you to understand the architecture, debug it, find a correct solution that can be implemented easily and ensure that it doesn’t affect the other parts of the system. Performance optimization also could happen at many levels, it could be in the framework, application or even at the database level. In search of the solution, you would also learn more about the system you are using.

Goal 4. Build a critical system from scratch

If you are new on the job, it is very common to be working on adding features on an architecture where the foundation is laid. As such, you might not be able to know fully what makes the foundation solid. By building something from scratch, you would be able to gain skills and knowledge of a core code base (e.g. UI components, models, backend messaging systems) that help you understand system architectures better.

Goal 5. Refactor code written by others

Refactoring is an important skill to have as it requires you to understand the original piece of code. By refactoring others’ code, you will also be exposed to various programming paradigms and concepts that you might not have known of. The knowledge gained from reading code is also highly transferable across programming languages. It sometimes also comes with the added benefit of adding meaningful tests to ensure that your refactored code works exactly the way as before.

Communication Goals 📢

Communication Goals hones your communication skills in terms of written and verbal communication. Examples include: Give presentations, write an article on a technical domain, work with people outside of your immediate team. I would argue that an engineer’s main work is about communication. It could be sharing your approach to a problem to a co-worker to get their feedback or explaining how your solution works in a pull request and even providing a justification for your estimation to your product manager. As such, it is important to hone this skill to be able to work with a variety of people in your career.

Goal 6. Give a presentation at your company/meetups

Presentations require you to know your audience and cater your content to them. Many engineers make the mistake of just diving into the technicalities, hoping the listener will be able to understand. It also trains your public speaking skills. By giving more presentations, it helps you build your confidence and engage your audience better.

Goal 7. Write an article on a technical domain

Writing is a good skill to have, especially when there is a lot of communication that happens offline, be it writing comments or tech specs for the team to follow, or just communicating with your teammates via email. It is good to start by writing an article about what you know, since you do not need to do a lot of research on that. Even though it is a technical article, you should also get multiple people to read through it and give their feedback. It’s good to set stretch goals as well as to write more articles because as with all things, the more you do it, the better you will get.

Goal 8. Work with people outside of your immediate team

As you get used to your teammates, it takes less work in communication to get them to understand your ideas. When working with people that you don’t deal with daily, that same understanding is not there, and you would have to work more on your communication. Different people also have different communication styles and learning to talk to and work with a variety of styles is definitely a plus for your career in general. It is also good to pick on others’ perspectives and viewpoints as well. You could start this collaboration by asking how other teams are doing the stuff you are doing, e.g. pair programming. You might learn about tools that make pair programming easier as a result.

Goal 9. Arrange a 1:1 with your skip-level manager

As scary as this sounds, skip-level managers (your manager’s manager) are usually open to conversations with employees in their care. Communicating with them is good training for you in learning how to speak in uncomfortable situations. Do have a few talking points ready so that you are fully utilizing the time to train your communication. Once you have done this a few times, you will get a sense of what senior stakeholders think about and how to address them in future. It is also generally good to hear from them about their plan for the organization and how the team fits in the overall picture.

Goal 10. Work on an open source software (OSS) project

Similar to Goal 14, this goal forces you out of your communication comfort zone. However, this pushes it to the next level as people do not have a committed timeframe to collaborate with you, i.e.  you could be working with people in a different timezone. As there are collaborators around the world, you would need to learn how to use techniques (such as having a tl;dr; on pull requests) to reach out for a code review and get approval from different people.

Product Goals 💡

Product goals help build an engineer's understanding for the products that they build. Examples are: develop a product or tools that your co-workers can use, contribute to product roadmap sessions, interview customers to understand pain points. At some point, you would want to be more than a code monkey that produces code. You would probably want to help shape the product. By being able to understand the product’s goals you would be able to make better decisions as an engineer to scale the application.

Goal 11. Create your own product to help others in the company or the community

By building your own product, you get the chance to work on something that you choose. You get to try technologies that you want to use without any pressure. If you are a frontend engineer, this might also create an opportunity for you to try backend engineering and vice versa. Done in your free time, it allows you to flex your creativity in ways that could help you create better products in the long run.

Goal 12. Interview customers to understand their pain points

While you might not be able to do this on your own immediately, ask your product team if you could sit in on a few customer interviews to listen to what problems your customers face. After you feel confident to manage a customer interview, try yourself to think of good questions to ask. By talking to customers directly, you can understand how the product goals fit into the picture. 

Job Goals 💼

Job Goals relate to the job that you are taking on. Examples include: working in an early stage startup, working in a large company, getting promoted to senior engineer. These goals help you to learn from varied experiences so that you will be more valuable to the organizations you join later on. It is important to choose your job goals wisely as well to ensure that you are learning throughout.

Goal 13: Working in an early stage startup

You might have heard how early stage employees of big tech companies like Google or Facebook have net worths in the millions. While that is a big plus, it should not be the aim when working for an early stage startup. The goal of working in a startup should be learning the decisions to keep the startup moving forward quickly. In addition, given a small startup size, you will have a greater breadth of responsibility in the engineering stack. This gives you a great opportunity to learn everything top to bottom of putting a site into production, such as CI/CD practices or managing cloud infrastructure.

Goal 14: Working in a large company

The benefits of working in a large company is that there would be better engineering processes in place (not always, but often), and probably more senior engineers around that you can learn from as well. This wealth of knowledge will help you learn faster without having to make mistakes on your own. Communication is also much more important in a large company as there are just more people to talk to. Instead of sharing your code to a team of 5, you potentially would need to share about your code to a bigger team or cross teams as well.

Goal 15: Getting promoted to the next level engineer

Getting a promotion is one of the ways to certify that you are able to perform at a higher level. If you are going for this goal, you probably want to contribute more to the organization. Have conversations with next level engineers and understand their responsibilities, and try to take up a subset of those. By being able to do those tasks, such as breaking down the effort for a story, you will be able to prove that you deserve that promotion.

Work Environment Goals 🌊🌲

Work environment goals relate to how you want to work. These goals deal with your personal preferences or even circumstances. They are important because they allow you to be able to change your environment to suit your lifestyle and not the other way round. Examples include: Working remotely, working in a place with good work-life balance, getting on projects with experienced/passionate people, working at a place which shares your values.

Goal 16. Work flexible hours

This goal is suited for software engineers who enjoy working in later hours of the day because they are just more productive that way. It could also be coming to work an hour late to put in some exercise time. Although this might mean switching to another company, some companies do allow employees flexibility in the hours they work as long as they are able to do the work they are assigned. Explore your options, but most importantly be clear on why you will want that flexibility so that you could decide on your option

Goal 17. Work in a place where you are accepted

It is definitely tiring to be putting on a different persona at your workplace just to be accepted. It could be because of your identity, your values or even your working style. Do not be afraid to make a change to find a place that accepts you as there are so many other options to choose from as an engineer, there will always be a place for you. It is definitely not healthy for your state of mind if you are struggling with acceptance everyday.

Goal 18. Make X amount of money

A word to the wise is “sufficient”. It is important that your career is sufficiently able to help you live the lifestyle that you want, travel the world, start a family etc. However, pursuing jobs just to make more money will break down very quickly. Sometimes, it might mean making beneficial short term decisions but poor long term decisions. Be sure to tie this goal with other of your career goals to ensure that you are still able to succeed in the long term.

Goal 19. Work on products/teams that solves important problems and/or share your values

If you are working on a product that is doing something that you are not passionate about, e.g. promoting cat videos on the internet while you are a dog person, chances are you will burnout quite quickly. Finding your passion is not always clear-cut and finding a job that fulfills that passion might be even harder. However, it is important to avoid jobs that go against your values and put that as a goal or you will find the time spent in those jobs terrible.

What goals should I set as a Junior/Mid/Senior Software Engineer?

It is impractical to set goals that you do not have the opportunity to explore at your job role. As such, you should have a conversation with your manager about what is expected of you at your level and set your goals accordingly.

Junior engineers should focus on technical skills as 80% of your time is dedicated to technical work.

Mid-level engineers can look into building their communication and collaboration skills, as you are probably required to mentor junior engineers at this stage. There are also requirements for these engineers to participate in activities that interact with other functional roles: UX design syncs, effort estimation, backlog grooming.

Senior Engineers can focus on product goals so that they can better plan the engineering to match product goals.

What can I do to set better career goals for software engineers?

Setting clear goals is what makes managers great managers, but it is not easy to keep track of these goals and their action items. ActionPlan allows you to do that and have just-in-time reminders to check in on them. Start your journey here to be a great manager!

Subscribe to The Thoughtful Leader newsletter to unlock leadership insights that elevate your team's performance.

Previous
Previous

3 Ways to Deal with a Condescending Employee with 4 Sample Scenarios [Sample Scripts Included]

Next
Next

What Science Tells Us About How Employees Process Negative Feedback