Posted on

Table of Contents

In the summer of 2022, I landed my first major SWE internship at Salesforce. An amazing place to work. It was a brief 8-week internship, where I was given a project with crystal-clear requirements, a mentor to help me anytime I was blocked, and constant positive feedback for every PR I raised. Honestly, I didn't even do much, but this dream internship was a breeze, and I received a return offer to join Salesforce in 2023, right after my graduation. I left my internship with just one thought:

Damn, working in software is so easy, anyone can do this! In the end, Googling/StackOverflow/Teammates/LLMs (recent) will eventually solve all your problems.

Boy, was I wrong.

It has been a year now of working at Salesforce, and my opinion has done a 180-degree turn from what I thought during my internship. During my internship, I only had to be good at "executing," but I have now realized I need to be proficient in many more areas. I have divided this into three goals to be conquered:

  1. Planning
  2. Executing
  3. Getting Visibility

In this blog, I am going to write about the first goal-post: planning things and planning them well.

Planning:

1. Maintaining a daily log-book:

I maintain a simple Google Sheet with just three columns: Date, Things Planned to be Done, Things Done. Just before starting my work, I fill in the Date and Things Planned to be Done columns, and at the end of the day, I fill in the Things Done column. I also mention any ad-hoc tasks that come up during the day, blockers I have faced, and so on. I color code the days which are weekends/holidays/PTOs and the days I am on-call.

I have logged around 200+ days like this, which absolutely unlocks a lot of productivity and helps me keep a self-check on where my time is going. I never fumble during stand-ups and give my updates with utmost confidence.

2. Maintaining a Doc of Docs:

In my company, docs are pretty scattered across multiple platforms: Confluence, Google Docs, and Quip. Unfortunately, we don't stick to one platform, making it a nightmare to find the correct docs. Many docs written by my team members need to be published but aren't, making them impossible to search for on these platforms.

To solve this problem, I maintain a Google Sheet of all the docs I have come across. I simply fill in the cell with the doc title that is the most natural to me and then add the doc hyperlink to it. This becomes a personal repository of knowledge, and because the doc titles are written by me, it becomes very easy to search.

For example, if the doc title is just "Secrets Migration," which actually contains a lot about using Hashicorp Vault, I would add it to my list as "Everything related to Vault" and then link to that particular doc.

3. Maintaining a repository of learning:

Needless to say, especially as a junior engineer, I learn a ton of new things every day. On days that I don't, I make it a point to ask questions, read something, dive into the internals of what I am working on, linger around the info docs, and so on. Then I make short notes of it and put it in this blog. This helps retain things in my memory for a long time and adds a lot to my confidence as a SWE.

4. Maintaining Progress docs:

I came across this hack somewhere online. Let's say I am working on a project named "Kraken." I would create a "kraken.txt" file locally, and inside it, I would document every single process, steps to do a certain thing, latest updates, questions I have, solutions I found, relevant Slack threads, related docs, etc. Two good things here: I add things chronologically, not in random places. And because this is in my natural language, it becomes super easy to query through!

5. Drilling down on goals:

Every morning, I ask myself these broad questions:

  1. In this sprint, what am I working on?
  2. In the next sprint, what will I be working on? To answer these questions, I no longer need to look at my sprint board; The repetition in my head has given me that clarity. Knowing the answers to these questions keeps me on track to finish the overarching goals of that quarter/software release cycle/financial year. It gives me immense confidence every morning when I start work.