Taro Logo
0

Organizing and writing as a software engineer

Profile picture
Software Engineering Intern at Unemployed25 days ago

Hey Taro Community,

Let’s say you are working on building a new project/feature. For accomplishing such a deliverable, I learnt that planning is really important than just starting to code. How can we maximize effective planning and then execute flawlessly for pushing quality code and shipping the feature? Here are some additional questions I have about this issue.

  • How do can you start understanding different components of the code and what it does. Like what are some important questions you need to ask yourself before working on the coding.
  • How do you plan to execute writing and finishing the feature along with thinking about edge cases.
  • Another thing I saw is that when a codebase has multiple parts, I often mix up the parts due to my lack of organization. How do I make meaningful notes or what template can I start following that will help me connect the pieces together.
25
1

Discussion

(1 comment)
  • 0
    Profile picture
    Tech Lead @ Robinhood, Meta, Course Hero
    25 days ago

    How do can you start understanding different components of the code and what it does. Like what are some important questions you need to ask yourself before working on the coding.

    1. What classes do I need to change?
    2. What classes do I need to add?
    3. How will the different components I add/modify talk to each other? (i.e. define the interface)

    How do you plan to execute writing and finishing the feature along with thinking about edge cases.

    Write the edge cases down. Back when I was at Meta/Robinhood, I would literally create tasks to handle the edge cases (e.g. "Have an error screen when we detect the user has no internet").

    Another thing I saw is that when a codebase has multiple parts, I often mix up the parts due to my lack of organization. How do I make meaningful notes or what template can I start following that will help me connect the pieces together.

    Similar to before, writing more and with higher granularity is the best solution to this problem. When I was working with new interns/junior engineers, I would be extremely detailed with the tasks I assigned them. I would literally have:

    1. What class they need to modify
    2. A sample pull request that's doing something similar to their task that they can pattern-match off of
    3. What edge cases they should test (and include the proof in their test plan)

    If you're able to do this for yourself, this is a good sign you're progressing from junior to mid-level.