1

Seeking Guidance on Navigating Initial Tasks, Documentation, and Codebase Familiarization

Profile picture
Mid-Level Software Engineer at Microsoft9 months ago

Hi Taro Community,

I’m a recent addition to my company and have embarked on my journey with a few initial tickets, completing 3 PRs in the span of 2.5 weeks. Alongside these tasks, I’ve been provided with architectural and design documents to help me grasp the broader system. However, these documents are quite high-level and, at times, challenging to comprehend fully, especially without knowing which sections are most pertinent to my current work.

Given the breadth of information and my eagerness to effectively contribute, I’m contemplating the best approach to balance my tasks with learning. Here are a few points I’m considering and would love your insights on:

  1. Targeted Learning from Documents: Should I consult with my mentor on which specific parts of the document would be most beneficial for me to focus on initially, considering my current assignments?
  2. Codebase Familiarization: How should I approach diving into the codebase? Is it advisable to ask my mentor for guidance on specific modules or areas that align with my tickets or overall team objectives?
  3. Balancing Tasks and Learning: What strategies have you found effective for simultaneously working on assigned tickets, understanding high-level documentation, and becoming familiar with the codebase? Is there a recommended balance or sequence that could optimize my ramp-up process?

Navigating the initial phase and ensuring I’m building a solid foundation is my top priority. Any experiences, strategies, or advice you can share on managing these early stages of onboarding would be greatly appreciated.

Thank you for your support and guidance.

86
4

Discussion

(4 comments)
  • 4
    Profile picture
    Thoughtful Tarodactyl
    Taro Community
    9 months ago

    Something I've heard is that "while onboarding, everything you do should have a reason." So don't just read a document for the sake of reading a doc. Rather, you should read the doc with some purpose in mind, e.g. I want to do X, so I will read Y doc to gain context. So my first answer to your question is yes, feel free to ask your mentor where to focus on long docs so you don't waste time. (It takes your mentor a few minutes to answer this question, which saves you hours of time => that's worth it!)

    Regarding your second question, ideally you'll have starter tasks that have low ambiguity and are intended to introduce you to the codebase. If you don't, you should ask! You shouldn't simply jump into random parts of the codebase without a purpose (see my first point above)

    Your third question is pretty broad; I would look up videos on Taro about how to onboard effectively.

    Hope that helps.

  • 1
    Profile picture
    Tech Lead/Manager at Meta, Pinterest, Kosei
    9 months ago

    Is it advisable to ask my mentor for guidance on specific modules or areas that align with my tickets or overall team objectives?

    Here are a few ways to know if you are focusing on the right areas:

    • Look up "hot" areas of the codebase where lots of change is happening
    • Look up the past few weeks/months of alerts from on-call and figure out the source
    • Ask your manager/mentor/teammates what they think is important
    • Look at notes from team meetings and see what topics are discussed

    I highly recommend this: [Masterclass] How To Succeed At A New Team Or Company As A Software Engineer

  • 1
    Profile picture
    Mid-Level Software Engineer [OP]
    Microsoft
    9 months ago

    @Alex any thoughts ?

  • 1
    Profile picture
    Tech Lead @ Robinhood, Meta, Course Hero
    9 months ago

    Should I consult with my mentor on which specific parts of the document would be most beneficial for me to focus on initially, considering my current assignments?

    Sure. It won't hurt, but in general, I recommend against reading docs in general. At a Big Tech company like Microsoft, I'm sure a huge portion of the docs will be insufficient and/or outdated. Focus on landing code. Bias towards action.

    How should I approach diving into the codebase? Is it advisable to ask my mentor for guidance on specific modules or areas that align with my tickets or overall team objectives?

    Your goal should purely be to land high-quality code efficiently for the first 2-3 months. Anchor yourself against the coding tasks and use that to determine every additional action. If you get a coding task, dive into the code, and then have 0 idea how to extend it, then you can ask your mentor for guidance navigating through the task. In general, I don't like asking broad questions (e.g. "Which part of this codebase would be good for me to understand?") as the impact is unclear and it's easy to spend time ingesting knowledge which you then promptly forget.

    What strategies have you found effective for simultaneously working on assigned tickets, understanding high-level documentation, and becoming familiar with the codebase? Is there a recommended balance or sequence that could optimize my ramp-up process?

    Here is my onboarding strategy:

    1. Try stuff
    2. Talk to people

    These are very intertwined. As you try stuff (i.e. write code in an attempt to complete tasks), you will realize you need to talk to people to get the full picture. As long as you're focused on getting tickets in, striving to do high-quality work, and unafraid of asking for help, you will onboard just fine. 😁

    As the first comment mentioned, everything should have a purpose. It's easy to get lost in the excitement and anxiety of wanting to make a good first impression and overextending yourself with a bunch of well-intentioned but unnecessary "learning" actions.

    I think this other discussion is an excellent relevant read here as well: "How to avoid going down the rabbit holes when learning new things?"