Going places: How to manage your career
After my last post on how I got my career back on track I was flooded with (at least 3) requests to share my advice on what I did to “level up” my work so other people could get ahead the same way.
The easy answer here would be “I can’t say”. Each person, each manager, each organization, each situation is unique and who am I anyway to be giving advice on things I’m still figuring out myself. That said, my “obvious” might be someone else’s “mind blown”, so here goes.
The first thing you have to figure out is where you want to go, or what counts as progress for you. This isn’t a life-goals-what-do-you-want-to-be-when-you-grow-up kind of question, it’s smaller in scope. More like what do I wish I could be doing right now or what do I want to be able to achieve in the next year or two.
My first instinct is to go new-age on you and tell you to spend some time reflecting on what you like and dislike about your work or thinking about someone we aspire to be like. However, most of us don’t have the appropriate context to understand if what we like/dislike is actually important for our growth and wellbeing, nor do we know what that person we admire really does and if we’d like doing it. So let’s not waste time on ineffective low-context self-reflection.
Instead, let’s look at some options for growth and try them on for size. Exploring most of these options will have little to no effect on your career. Even if you choose one of the more extreme options (like switching professions) as long as the experiment is limited in time, the long term effect on your career will probably be minor.
Climb the stack
If you are a frontend developer — learn some backend technology. If you are a backend developer — do some frontend. If you’re a product engineer, perhaps you think your stack is full — you can still try some platform or infrastructure work. Platform engineer? Try some product work.
This will expand your skill set and give you a wider view of the different groups, their culture, work style, constraints etc. Whether you like your new area or decide to go back to where you were before — you will have gained a unique and important perspective.
This could be a minor move like switching from react to angular or .NET to node.js. It could be a major move to an entirely different stack like web to mobile or almost (but not quite!) an entirely different profession like switching to DevOps or machine learning. The more major the switch — the harder this type of change will be.
If you’re switching from angular to react, most of your existing know-how will still be applicable. This might shake up things a bit, give you that sense of freshness that comes with learning something new — but in most cases it’s not an upwards career step, unless! Unless you’re trying to become a generalist-expert in your field who can easily switch between stacks. Good for you if you enjoy programming languages and tech stacks for their own sake (not me).
If you’re trying a major change like getting into ML or DevOps you’ll have a lot of catching up to do. A lot. It’s not impossible, but you should take into account a period when you’ll have to learn a lot of new things you may not have been trained to do before. Going back to being a newbie is not always easy emotionally, but if you think you’ll enjoy it it could be the start of a beautiful new career path. You can always go back if you change your mind! The cost? Maybe a short while doing something that doesn’t directly lead to a promotion. The benefits? Knowing and understanding first hand what other teams do might give you new ideas on how to do your own job better, and most certainly makes you collaborate better.
I know some companies already do this, but I think everyone would be wise to have loaner programs in place where software engineers switch teams for a short time to gain insight on different ways of doing things and perspective on other parts of the engineering org, perhaps even extending to customer service and other business-y functions. The experience will make them better engineers, not to mention the gain from building personal relationships across the org.
Become an expert
Another way to grow is to dig deep and become an expert in an area that interests you. Read the documentation, follow relevant releases and blogs, try to get assigned tasks in that area or initiate your own projects.
Writing is always a good idea, but for this career path writing about what you learn is especially useful. It can be internally in whatever tool your org uses for group communication or externally in your own blog. Writing has two advantages for you:
- It forces you to become an expert. You can gloss over points you don’t quite understand, but most people will realize as they’re writing that there’s a point they don’t quite understand and go figure it out. Be that type of person.
- It positions you as an expert. If you write about it — you must know what you’re talking about, so you’re the person to talk to if there’s a problem in that area! More questions, more digging deep, more expertise. Virtuous cycle.
If you want to go down the expert path, make sure it’s something you like doing a lot — imagine becoming the go-to person on something you hate. I do not recommend.
Consider if there already is an expert on the subject in the organization. If there is — is the organization big enough to have more than one expert on this subject? If you feel there’s room — join forces with that expert, you can learn from them, and eventually they may also learn from you. If you feel there’s only room for one expert and you’re not that person — maybe you should try to become an expert in a different area. Don’t turn it into a turf war, that’s not good for anyone (not to mention it’s likely that the current expert will win).
Moving on up
The obvious road “up” is to become a manager. However, in many engineering organizations nowadays. there is also a path to become a senior IC (Individual Contributor, i.e. someone who “just” works without being a manager). The senior IC path deserves a post of its own, there’s so much to discuss, but for the scope of this post I’ll stick to the basics.
When you’re fresh out of college (or bootcamp) you’re expected to know the basics of programming, but not much else. As you gain more experience you’re expected to be able to handle increasingly complex projects increasingly independently. Eventually you might be expected to define technical strategy, lead and provide technical guidance to others. This is the essence of the senior IC path.
If your company has set career ladder expectations — great. Use that as a reference. If not, look up other company’s career ladders. Having worked there, I’m most familiar with Dropbox’s but I’m sure there are other ones out there.
Look up the level you think you’re at and go over the expectations. Check how many of the sections you match: The one’s you’re already doing well are strengths to build on. The one’s you don’t feel you do well are your areas for growth. If you feel you cover almost all the expectations of that level — look at the next level up and repeat the process. That will be your outline for growth.
Moving on out
Sometimes switching to a new company can be exactly what you need: Moving from a 1000+ organization to a small startup or from a mid-size company to a “big tech” company can be an amazing opportunity for change and growth. Each size and type of company comes with different challenges and requires a different skillset. Startups can be chaotic, while offering a fast learning curve and a lot of scope for responsibility and influence. Larger companies are a good place to learn how to navigate organizational politics (in a good way, hopefully) and execute at scale.
Now to something completely different
I love being a software engineer, therefore I’m not encouraging you to be something else. However, people are different and you may not enjoy it as much as I do. Strange but true. Assuming you want to stay in tech, there are other adjacent professions you can explore. The most obvious is to become a product manager, but product analytics, UX, L&D (learning & development) are all viable options if you feel like changing direction entirely.
Try to find out which other roles exist in your organization, talk to people in those roles and try to figure out if you think you’d like to do them. It’s OK to change direction, just because you’ve been doing a thing for a while doesn’t mean you have to do it for ever. Really.
Tip: Play to your strengths
It’s easy to make the mistake of focusing on everything you don’t know or don’t do well. Those are painfully present when we think of our performance at work. However, when we’re going for growth — that’s not always the right path to take. Improving our weaknesses will only get us to ground level, making good use of our strengths will take us to new heights.
So, you’ve done your research and decided what you want to try next. We’ve outlined a rudimentary path on how to get there. However, even if you decided to switch companies — doing it on your own will prove to be difficult. In order to do our best work, we need some kind of feedback and support system in place.
In a perfectly ideal world, you would be able to talk to your manager about what you want to achieve and they would help you find the right opportunities. If such an opportunity doesn’t exist in their team or organization they would even support you in finding a new job elsewhere. But in the less than ideal world we live in, even the best intentioned manager may not be able to provide the perfect opportunity right away. Even so, your manager is probably best positioned to help you.
Help them help you
My ex-manager Jonathan Seroussi told me once (not an exact quote, in a different context), that once you reach a certain level, pointing out what’s wrong is no longer enough. You have to show up with a plan how to fix it. But even more so, you have to be willing to invest time and energy to fix it yourself, otherwise it’s just complaining. Trying to find your next opportunity is similar in some ways — you can’t expect to be passive about it, and the more senior you become, the more active you should be.
So yes, talk to your manager about what you want, but don’t let them take all of the burden. Come up with some initial ideas or a high level plan for what you’d like to do and ask you manager for help achieving it. This will open up a discussion that can point you in the right direction, while showing you as proactive, motivated and worthy of the opportunities you’re asking for.
You should also:
- Keep your eyes and ears open for opportunities and ask for them specifically.
- Create opportunities for yourself by identifying existing pain points or ideas in your area of growth and suggesting you work on them.
- Remind your manager occasionally where you’d like to grow and ask them how you’re doing. A (not so) gentle reminder to look for relevant opportunities can’t hurt and their feedback can help you focus on things to do or stop doing in order to achieve your goals.
Unfortunately, some managers are stretched to thin and don’t have time or mental energy to look for opportunities. Maybe they don’t have enough organizational pull to get you considered for relevant positions. Maybe you’re so invaluable in the team and role you’re in they don’t want to risk losing you… A million reasons why your manager might not be helping you with your growth goals.
Don’t give up.
If you can get your skip-level manager on board with your goals, they might be able to help you directly or help your direct manager help you, so if you’re diplomatic about it — this can work.
Another good option is to find a mentor. Someone who works in the level or area you’re interested in. It’s best if they work in your organization because they’ll have more accurate context and more power to actually help you, but even someone from outside your company is fine.
A mentor be able to provide valuable feedback and insight how to achieve your goals. If you manage to build a solid relationship with them — they might be able to tell you about opportunities you can try to get or even sponsor you in getting them. You’ll still have to put time and effort in making the mentorship effective, but it’s something you can do while still working on your regular tasks.
If you ask me how I got pretty much anywhere, it’s hard to give an exact recipe. Not only is every situation different, things in real life aren’t linear. Some things you worked on because they had to be done end up being a huge growth experience. Projects you were sure would get you to the next level fizzle out and die. I think many people with inspiring careers are at least partially restructuring their narrative in hindsight, making things that were lucky accidents out to be premeditated.
This is not to say hard work is not necessary, it is absolutely necessary. This is also not to say luck is everything. I think that success (whatever that means to you) is a flywheel of lucky opportunities appearing, being able to identify them, and applying skill, drive and hard work to make use of them. This, in turn, will make more opportunities available and your ability to notice and take advantage of them greater.
Get the wheel going.