33

How can I be better at executing on my work when it comes to coding and breaking down ambiguity?

Profile picture
Entry-Level Software Engineer [SEP] at JPMorgan Chase2 years ago

I'm currently moving a bit slower than other engineers on my team. Here are some of the problems I'm facing:

  • I talked to the manager and he said that if you get stuck after 30 minutes, just ask for help. I will often spend many hours to an entire day working on a problem before asking for help.
  • I feel unmotivated to do work until I actually start it. I need to get into the zone, and it takes a while to overcome the initial hurdle.
  • How do I feel more uncomfortable in the unknown? The uncertainty is discomforting for me.
1.1K
6

Discussion

(6 comments)
  • 25
    Profile picture
    Meta, Pinterest, Kosei
    2 years ago

    One thing I wanted to add is that sometimes the act of formulating the question is very helpful in getting unblocked. So one mind trick I play is to tell myself: "I just want to work until I get stuck, and then I'll write down my question."

    You'll be surprised how much more progress you make this way.

  • 21
    Profile picture
    Tech Lead @ Robinhood, Meta, Course Hero
    2 years ago
    • Your manager is completely correct. If you're blocked and not making progress after 15-30 minutes, ask a high-quality question. It's better to lean aggressive rather than passive with this behavior.
    • When it comes to motivation, refine your time management system and do some introspection to see if you truly enjoy the work you're doing.
    • Being a software engineer inherently means that you need to be comfortable with ambiguity and even chaos. That's just how the space works: Tech moves fast and SWEs are paid highly for a reason.
    • The key to tackling large ambiguous problems is to break it down into smaller and smaller chunks until each piece isn't scary anymore. Check out the attached article on building large software projects for an in-depth example.

    Relevant resources:

  • 13
    Profile picture
    Meta, Pinterest, Kosei
    2 years ago

    The key to making the initial planning high quality is to establish the "exit criteria" before you even start. Before you get mired in the details and complexity of the task, try to document edge cases and the happy path (write this down). Your future self will thank you!

    Another tactic is to get feedback from others about what cases to test. Make this lightweight, just a quick conversation or ping to an engineer, tech lead, or product manager.

    What makes a question high quality:

  • 6
    Profile picture
    Startup Company
    2 years ago

    What makes a question high quality?

  • 4
    Profile picture
    Startup Company
    2 years ago

    How to make sure that the initial planning phase is done right before commencing any development? Does anyone have a checklist they tick off that helps them with this and makes sure they cover edge cases?

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

    Does anyone have a checklist they tick off that helps them with this and makes sure they cover edge cases?

    I do actually!

    For large projects (>1 month), I always create a system design doc. I made a masterclass series walking through that process (which contains an example doc you can use as a checklist) here: System Design Masterclass: Taro Playlists