Career goals are a very common topic of discussion in my chats with colleagues. The quality of my contributions in those discussions varies wildly depending on what’s top of mind for me. So I thought it would be a good idea to write down some of my thoughts with a clear mind. A few quick caveats:
- Most of the ideas are based on my experience as an engineer. I have tried to make them fairly role-agnostic but some of them may not translate well to other roles.
- A lot of these ideas are applicable when setting career goals while growing within a given role at a given company. There is probably a version of this that helps you take a more holistic look at your career as a whole across companies/roles but this is not that article. I also don’t feel ready to tackle that yet.
Here are the things I have learned about setting goals (in no particular order):
1. Identify ways you can grow
Unless you are in a narrowly defined role, it should be possible to identify a bunch of areas to get better at. Here are some popular ones for an engineer:
- Growing technical skills (Frontend / Backend / ML / mobile etc)
- Learning project management skills
- Becoming a good mentor
- Developing management skills
- Improving communicating skills
For all of the above, you could explore a new area or build more depth in a familiar area. Once you identify what you want to optimize for, craft a compelling vision that you are excited about. Example: Become a strong frontend engineer who can build UI components from scratch using React, TypeScript, CSS. This vision could be on a slightly longer timeline like 6 months to 1 year. It should also be something that will make you feel proud/satisfied once you get there. To help you make progress towards this vision, the next step is to set achievable short-term goals. The more concrete the goal, the better. Finally, your managers/leads should help you find projects that align with those goals.
There is a possibility that here is no current project that aligns with your goals. This happens quite often with changing business needs and the need to manage career growth of others on the team. (What if two people wanted to build a big technical system and there is opportunity for just one?) In situations like this, identify another area that you want to grow in and where there is a current opportunity. Periodic check-ins with your manager/lead is the key to making progress towards your ultimate vision! (In the worst case, you realize that there is no way for you to achieve your vision on your current team/company. So making a switch maybe the only way forward and that’s ok.)
2. Identify what to optimize for
An important question we haven’t addressed in the above bullet is this – how do you figure out what you want to optimize for? There are a few ways to go about this:
- If you have a general sense of what you want to do in your next role, optimize for being ready for that role. Example: If you want to become a Product Manager, it’s probably a better to invest time in improving communication and project management skills as opposed to building more technical depth.
- If you are thinking of leaving your current company, optimize for skills that would be relevant in the industry. Example: Getting better at using a standard open-source tool/framework with wide industry adoption maybe better than becoming an expert in some home-grown framework.
- If you are curious about some new technology and want to get some hands-on experience with it, then optimize for teams/projects which will give you that. Example: A frontend engineer who does not have room to grow in their role may want to switch to learning to do mobile development.
- If there is someone you want to work with / learn from, find a way to get on the same team/project as them. I have done this multiple times and it has worked out for me.
- Pick something listed on the career ladder as an expectation for getting to next level and work on it. (more on this later)
- If none of the above apply to you, try something new for a short period of time. It is hard to underestimate the value of extra knowledge even if its value may not be immediately clear 🙂
3. Leverage career ladders
Every company of a reasonable will have its own career ladder/rubric to clarify the expectations at different levels. It is an important document since it clearly lays out what’s valued and what isn’t. Here are the career ladders of some companies that have made it public:
- Medium (the one linked has been replaced but the visualization tool is pretty still cool to see!)
- Rent-the-Runway (one of the earliest to share their ladder publicly inspiring other companies to do it)
- Circle CI (I love that there is a dimension for “feedback, communication and collaboration”!)
(A more comprehensive list of publicly shared career ladders can be found here)
Career leaders give you a lot of direction when you are not aware of the ways to grow and you have no idea what to optimize for. This is the experience of new engineers fresh out of schools/bootcamps and is quite normal! There are plenty of reasons why following a career ladder is helpful early in your career:
- It is always good to be aligned with what is valued at the company since that will help you build credibility, be on good terms with your manager, get promoted, get more opportunities etc.
- For new engineers, the areas of growth with highest impact are fairly well-defined without a lot of variability across companies. These include things like – writing good quality code, maintaining the team’s systems, being a good teammate etc. So blindly following the career ladder is a good strategy early on when you don’t know how to set career goals.
4. Avoid the promotion trap
At my first job, I worked really hard because I enjoyed what I did. I cared a lot about getting promoted because I craved recognition and validation for all the hard work I was putting in. It happened! And I was happy! The euphoria lasted for a week or two and then I was over it. I realized that nothing really changed except for a document and a pay hike (which is nice!). So I realized that external recognition is great but it isn’t lasting. It can be a useful extra motivator but achieving it isn’t a meaningful goal in itself. Since that realization, I have definitely stopped caring about promotions and it’s been very liberating. I am able to pursue things which are fun for me without having to worry about whether it will get me promoted.
Overall, I believe promotions can be a useful forcing function for identifying career goals early in your career. But later on, skill-building should be the the main goal with promotions being a nice side-effect. It is possible to align promotions with skill-building but I think there is a chance of tension between the the skills you want to build and the skills that will get you promoted.
(There are obviously a lot of benefits that come from promotions like getting titles and these matter more for underrepresented folks. So my goal isn’t to devalue the benefits of promotions or titles but to caution against common failure modes.)
I spend a lot of time thinking about career goals and I’m sure I’ll be writing more about this in the future. I’d love to hear your thoughts in the comments section – let me know what’s missing, what you agree with, what you disagree with 🙂
