Mastering Time Management by a Staff SWE at Meta
How to manage time as a Senior/Staff Software Engineer
This newsletter is a guest post with
. Sidwyn is a Staff Engineer at Meta and has shared his learnings in this newsletter on one of the most important skill for any software engineer : Managing TimeBefore we start, Subscribe to Path To Staff and follow Sidwyn on LinkedIN
Codebender (Collaboration)
Codebender is an education company helping developers to land their first high-paying jobs in today’s competitive market.
They recently made a list of 100 AI startups that got funding recently and are actively hiring. This list also contains key hiring contacts at each company that devs can reach out to to try to get interviews.
You can use my affiliate link for the list in button below
I’ll pass the mic 🎤 to Sidwyn to enlighten us now
As you level up, your work becomes more complex, and your time gets more limited.
In this article, I'll share more about how I manage my time as a Staff software engineer, and what has worked well for me.
I've structured time management into three key tips:
Master Your Daily Routine
Leverage Focus Blocks
Handle Unplanned Situations
I can't guarantee the ultimate solution that will manage time exceptionally well, but I do hope that these tips and strategies that I've learned over the years will help you.
Let's dive in.
Master Your Daily Routine
As engineers, this is what you need to know about time management:
You must be in charge of your own time. Do not let others control your schedule.
You will disappoint others by saying 'No'.
You cannot do everything. You must prioritize your work.
Here's how I plan out my schedule across the week. I do add flexibility into the weekends in order to balance out the more structured schedule during the week.
Weekday Schedule
Planning: I spend 5 mins every weekday before I start to prioritize what I need to do. I take a bit longer on Mondays in order to plan for the week. It's important to do this before you open your chats or email.
Questions I ask myself:
What are my goals this week?
What do I anticipate needing more back & forth this week? Can I start that early?
What am I trying to get done today?
How does that ladder up to my week's plans?
How can I order this list so that I'm working on what's most important, urgent and of highest impact?
How much buffer time should I add this week?
Which tasks require focus time? Which don't?
Reflection: Spend 5 mins at the end of the day, and 10 mins at the end of the week.
How do I feel? Accomplished? Burned out? Good?
What did I get done this week?
Did I overachieve or underachieve? Do I need to set my own expectations better?
Who did I decline this week? How did that go? How can I get better at saying No?
What should I keep in mind for next week?
Leverage Focus Blocks
As an engineer, focus blocks are very important. They allow us to do deep work. They allow us to focus on what's important.
Depending on your level, you might be involved with more meetings. As an aside, one trick that I learned with meetings: try stepping away to see if you are needed for a meeting. If no one has reached out to ask you to join, you don't need to join for the next one!
I usually take about 12 hours of meetings each week, which is roughly two days worth. I like to bunch all my meetings onto two days: Tuesdays and Thursdays. This involves reaching out to meeting organizers and participants to ensure they're on board.
The other three days MWF, are set for focus time.
Here's what I do when I go into focus mode:
Turn off chats (Slack)
Turn off email, and anything that might distract you.
Use a Pomodoro timer to set breaks
Inform people around you that you are going offline for awhile.
Let them know that I'll reply at the end of the day or next day.
Focus mode is like a superpower in today's noisy world.
Now let's jump into my last tip.
Handle Unplanned Situations
Life as an engineer is filled with surprises. But you can plan for them to the best of your ability.
Most engineers are focused on what their week looks like. But if you want to stand out, you should be thinking beyond that.
Let's take a look at some common scenarios and how I handle them:
Emergencies: SEVs, servers crashing, site is down. This is where you have to drop everything to help, as it is urgent and important. Leverage your buffer time for this.
Team asks: When other teams come to me about: "Hey have you thought about this? What if we were to do that?" For me, I bunch these replies together during my lunch break, or at the end of my day. Processing and replying to them all at one go means that you aren't distracted.
Scope creep: If this is minor and infrequent, I tend to include them in my next week's planning. If not, there's something else going on with the project planning that needs to be altered.
Last-minute meetings: I tend to decline these if they're on my focus days.
Time away: Plan for folks to be away at least 20% of the time. This includes their sick days, PTO, and unforeseen circumstances.
Every scenario is different. As such, it's hard to pin down a formula for them, but hopefully the above guide covers most situations.
TL;DR:
Time management is crucial if you want to succeed as a software engineer.
Master your daily routine: Ensure your time is well-spent each day by planning at the start of each day. Continuously prioritize to ensure that you are always working on what’s most impactful.
Leverage focus blocks: Set aside time to build and create. Do not let others control your focus blocks. Let others know that you’re unavailable at this time.
Handle unplanned situations: Plan for the unforeseen, e.g. emergencies, sick time, scope creep. If you can buffer time for this, you won’t be surprised.
As always, Happy Learning!
Also, if you didn’t notice I started creating growth content on IG. Show your support by following