Discussion

(5 comments)
  • 79
    Profile picture
    Software Engineer @ Tesla
    a year ago

    I have felt the same way before - overwhelmed by information and responsibility.

    Know your scope. Find out what you're responsible for and what is expected of you. What are your deliverables and what is your role in the context of different projects.

    Time Block and take control of your calendar. Dedicate blocks of time to certain action items and focus on them (google "Deep Work").

    Delegate when you can. Master delegating items to others, you don't have to do everything perfectly. You just need to get them done and off your plate.

    Take detailed notes. Try not to keep everything in your brain. Write it down. Even if they are just daily stand up notes. I wrote about taking notes here: Tips for someone with a poor working memory (Not saying you have a poor working memory but it does seem you are struggling with balancing everything. ) Here's another link: Easily level up your meetings by taking notes

    Prioritize your most impactful tasks. Don't try to do 'everything'. You need to prioritize effectively.

    I can write more about these steps if you're interested. This is just a high-level of what you can do to get a grip on things since you didn't give much detail.

    Hope that helps!


    (Dear reader, please drop a like if this was helpful in any way, I'm trying to improve the format of my responses)

  • 71
    Profile picture
    Head of Engineering at Capgemini
    a year ago

    Whenever I feel like I'm drowning in tasks and cannot "stay on top of things", 90% of the time it's because my own priorities are not clear (the other 10% is lack of sleep, exercise, clean diet).

    I was a victim of the "efficiency" trap for a long time, where I always try to hunt down the next productivity tip, so I can get more done faster. While this is important to some degree, I had to learn the hard way that "effectiveness" (i.e. working on the right things) trumps "efficiency" (i.e. faster completion of a task).

    Figure out your personal criteria for prioritizing and filtering. When you have clear OKRs it's easier to do because you can gauge the impact + likelihood of success to derive the "expected value" towards moving your OKRs. If you don't have OKRs (can be anything similar), that should be the priority -- don't do this insolation and involve others who have a stake in this. This will be your "core" (70-90% of your time).

    Pre-allocate 10-30% of your overall time and energy spent on exploratory activities. I strongly believe in dedicating time to do this and go check out anything that feels interesting to you (e.g. another team's project, other codebases, content, etc.). Just be intentional about this, especially when you're already overwhelmed.

    • 0
      Profile picture
      Senior SWE @ Stealth
      6 months ago

      This is so helpful thank you!

  • 20
    Profile picture
    Tech Lead @ Robinhood, Meta, Course Hero
    a year ago

    I really like what Casey said about the "other 10%", but I actually feel like it affects way more than 10% of engineers (so many software folks have horrific sleep schedules). Even for the engineers who are already doing an okay job of it, they could probably do an even better one and reap significant benefits.

    That being said, here are those low-hanging fruit:

    • Get 8 hours of sleep - Your brain literally decays a tiny bit every time you don't get sufficient sleep. And no, you aren't that special engineering genius who only needs 5 hours somehow. You need 8. Get 8.
    • Go to sleep at a consistent time - "Catching up on sleep" isn't a real thing: Go to sleep and wake up at the same time every day, even on weekends. Get to a point where you don't even need a screeching alarm to wake up - Completely organic and natural sleep is the best for your mind.
      • If you need help with this, try taking melatonin. Melatonin is a natural sleep hormone, and it can help you get your brain back into that clean sleep rhythm. I take 3mg every night, exactly 1 hour before I go to bed.
    • Exercise regularly - So many engineers are seriously out of shape. Exercise 3-5 times a week for 30 minutes+, even if it's just a walk around your neighborhood. Regular exercise yields more benefits than all the drugs and superfoods in the world combined. Keeping your body fit also helps you get better sleep!

    We talk about this all in-depth here: 2 Ways To 100x Your Productivity That Nobody Does

    Both Casey and Xue mentioned prioritizing properly and working on the right thing. Here's some additional pointers there:

    • Talk to your manager - If you aren't sure how important a task is, ask your manager (and maybe your tech lead as well). A lot of junior/mid-level engineers won't have visibility on this, so people won't be surprised when they ask (and it's actually a positive signal that they're growing past these levels).
    • Stack rank your tasks - For every task you get, give it a score across each of the 2 dimensions of time and impact. Take the dot-product of those and prioritize your tasks that have a good mix of both (medium to high impact with low to medium time investment).
    • Understand success - Every team should have some mix of OKRs and KPIs that act as overall goals. Measure your projects against those to see how truly meaningful they are. If you aren't able to make the connection, ask your manager/TL to help. I have seen so many engineers surprised that the task they were given was actually meaningless in the grand scheme of things (this happens in Big Tech all the time where bureaucracy is rampant).

    Check out these resources too:

  • 19
    Profile picture
    Senior Software Engineer [SDE 3] at Amazon
    a year ago

    I am not sure in what capacity you are working on the team because the answer might vary a little based on your role. However, you need to be clear on what level of abstraction you are working on. Being involved in code reviews for all the projects might be feasible for senior engineer but not for the SDM. If you want to get a good understanding of the systems being built, getting invited to design reviews can be really helpful. For changes happening later on, you can sync up with people owning the projects. This way you can have a good mental model of the systems and how they interact with each other.