Welcome to Path to Staff Engineering! I’m Sidwyn, and I will teach you the skills to level up to the Staff level faster. If it's your first time here, subscribe to continue receiving this free content.
This is the last part of the series of "Act Like a Senior Engineer." If you want to read the first two parts, check them out here: Part One, Part Two.
In this last part, I want to share a skill I've seen honed in many senior engineers: Prioritization.
Prioritization is the art of ordering your tasks based on their importance, urgency, and impact. With this order, you can decide where to allocate time and resources.
Why should I care about prioritization?
As you level up to a Senior Engineer, you’ll often be pulled into multiple high-pressure situations. Without clear priorities, you risk burnout and frustration. Managing your time is crucial, ensuring you focus on what truly matters and prevent being overwhelmed.
Three-Step Guide to Ruthless Prioritization
I want to share a three-step guide to ruthless prioritization:
Choose tasks wisely
Prioritize tasks based on Impact
Drop existing tasks from your list
Choose tasks wisely
If you're in a team that deals with many issues, make sure to pick your projects wisely. This is the most crucial step since removing it from your to-do list is much more difficult.
You'll find that people will ask you to take on projects. Before accepting something immediately, say, "Let me consider this idea before getting back to you." Understand that every task you take on comes with a cost.
Ask yourself these key questions:
Right Task: Does this task fit my strengths? Will I enjoy working on it? Does this align with my goals? Do I have enough time?
Company Values: Are they well-aligned with the company's mission/values? How will I be graded against them?
Risks: What if I say no – will the company or my team implode? Will I be penalized heavily? Are there many opportunities like these that come by?
If your answers are: it's the right task / aligned values / high risks, then you should take it on.
If you're unsure about one or more of these, then your answer should probably be "No." Once you've decided to say "No," you can take one of my suggested blurbs here.
Make sure that you've thoroughly thought through your answers before replying. It is OK to take time to decide before choosing to put something on your list.
Found this helpful? Subscribe to make sure you don’t miss new articles.
Prioritize tasks based on Impact
Once you have a list of tasks, it's time to prioritize them using the Eisenhower Matrix.
BUT, while the Eisenhower Matrix might be helpful here, multiple tasks usually make it into the important and urgent bucket.
So how do you prioritize within the "Do" bucket? I want to share this framework: Prioritize by Impact. You want to pick the one that has the highest impact.
To figure out what has the most Impact, find what has the highest business value. This can be company revenue, developer efficiency, or your team's goals. This is best if it's aligned and can be tied to the company's goals (e.g., increasing revenue / reducing spend).
If something has high Impact, everyone will notice. If something is of low Impact, it's just a blip on the radar.
Once you've sorted your tasks in the green box, you have a sorted list to start with.
Drop existing tasks
You have to regularly reassess your list on whether you can achieve them.
This means going through the list and asking yourself:
Did I have time to make valuable progress on this project?
Was there progress made without my intervention?
Does the project still need me?
Do I still have time for this, as promised by the deadline?
Once you realize that you can't fit this anymore, it's time to drop them. Doing this early is essential – it helps your manager and teammates plan better.
Here's what I usually do:
Hey Josh, I wanted to give you a heads-up. I won't be able to take this on to deliver by next week. Something else came up, and I need to prioritize that. Sorry about this - please let me know.
This is a strong pushback, so make sure not to overdo it. But also remember, you won't be doing this often. As you get better at planning and understanding your capacity, this step hopefully becomes optional.
That's it! Hopefully, this three-step guide will help you better prioritize your tasks.
TLDR
Choose tasks wisely. Ask yourself if it's the right task. See if it fits in with the company values and judge what the risks are.
Order tasks based on impact. For important and urgent items, rank them based on impact and business value.
Drop existing tasks if needed. If you are unable to get to an item, drop it early. Do this occasionally.
Thanks for reading. I hope this helps you in your journey to grow as a software engineer. These are shared from a decade-long journey working as a software engineer in startups and Big Tech.
Have thoughts or feedback? Comment or reach out to me here or on LinkedIn.
A co-worker asked me once: Marcos, how can we handle multiple things at the same time?
My answer was: it's not possible. Every thing has a priority