5:25 am

First alarm rings. *Snooze.*

6:30 am

The final alarm rings and I know this is the last one, so I get up and immediately start making my bed. I open the curtains to take a look at the weather and the early morning light. I walk to my balcony and stand there to breathe some fresh air. This awakens me and makes sure I do not doze off again.  

I am very obsessed with having a neat and clean bed.  It gives me satisfaction and starts a day with positivity and the sense that I can complete the tasks lined up for the day. 

7:15 am

Now is the time for some yoga and Surya Namaskar. This is a habit I have picked up from my parents (my mom mostly). Then I have a shower and get dressed. 45 minutes of yoga is so refreshing, and makes you feel light and happy.

8:15 am

Once I’m done, I’m ready for my kids. I have 2 kids — my son is 4 years old and my daughter is just 7 months. I help my son with his morning routine and prepare a quick breakfast for us.  I put on some instrumental songs to lighten up the mood. Lastly, I set up everything for my son so he is all ready for his online school. The pandemic has affected everyone, but he has now trained himself to navigate through his online classes. 

The past few months were both challenging and exciting for our family.  The COVID-19 pandemic has impacted us all. Suddenly we were working from home. My wife went into labor during lockdown.  We rushed to the hospital and out came our little princess. Slack supported me throughout this phase like a lifelong friend. They announced “Friyay” (one Friday off a month) to re-energize and focus. I have 12 weeks of paternity leave spread across a year from the birth of our daughter. The company and my manager have allowed flexible timing for work when needed. Our team has adjusted meetings accordingly to maximize both productivity and rest.  

9:30 am

I’m finally in my home office with my cup of tea. The first thing I do is check my notes from last evening and my calendar to see how my day is planned. Then I start going through my unread Slack messages. They are a combination of team activities, tasks, jokes, announcements, and some fun from around the globe. I generally use this morning time with the San Francisco team to gather for tea, drinks, or code kata. Often we just come together and talk about any topic under the sun and just connect with each other. There are many famous code kata problems on the internet; I usually practice one of them but my favorite is Romans to decimal and vice versa. I spice it up by challenging myself either by having a time limit or following TDD.

10:00 am

I start with any pending code reviews. This is a good time to look at some code — at the start of the day when you are fresh. I also take a look at any review comments pushed for my code. 

Everyone on our team encourages each other to spend time on code review. This not only improves code quality but also acts as a great knowledge sharing session. I personally love the constructive and (innovative 😅 ) review comments from developers here at Slack.
example: 
Let’s replace this with the more standard <<library_function>> for uniformity.
This change looks good, “May the force be with you” Let’s launch 🚀

We also use this time for celebration(s) of our recent releases where all team members from Pune and SF join. 

10:30 am

Slack has introduced the concept of Maker Time, where we have an uninterrupted three hours, three days a week to focus. Meetings are not allowed to be scheduled during this time across our product, design, and engineering organizations. This has been the best time for me to be productive and organize my thoughts. 

I’ve been working on a couple of things. One is Org-Apps, enabling scalable distribution of Slack apps across Enterprise Workspaces. The second is refactoring a huge piece of code related to OAuth flows during Slack app installation. My first priority has been Org-Apps, which we just launched to everyone. This is an important feature large enterprise customers have been waiting for and they have loved the beta version. 

I find a task on my plate where we want to fix the user experience when a Slack Enterprise Workspace Administrator is granting or revoking Slack app access to teams in their org. We want to show which teams are eligible to grant or revoke apps, while adding the ability to select all or paginate. I see there is an issue with the way the backend API is set up to pull indexed results. I remember pairing with my SF colleagues on this piece of code in the past and I start to propose a solution for this.

My elder kid has informed me that his online lesson is over and he is ready for games or another activity.

Noon

Time to grab lunch! This is the time I play with my toddler and my elder kid walks me through his drawings or other activities. During the pandemic while working from home I have taken longer lunches. With my wife, kids, and parents all at home we divide tasks amongst ourselves and take turns to take care of the toddler and also to have lunch, do the dishes, and clean up. 

1:30 pm

Yes! I’m back at my desk. I open up VSCode to start investigating a piece of code which is breaking granting and revoking app access to teams. I ask my teammates Dinesh and Neha to pair with me on this, and they come up with different edge cases which would appear if we added pagination. We follow the same path and it looks like we find the issue: A change in the backend API is returning an extra count. I apply the fix and update test cases for the code path. This fix corrects the pagination cursors as well as resolving the user experience issue. I quickly raise a PR for the issue. 

3:00 pm

It is Wednesday which means Chai Time.  This is the most engaging time for our Pune office. We all join a video call and discuss random happenings and fun facts. It helps us connect with each other here with other Pune team members across different departments. We used to have a physical chai time when we were all in the office and it has been great to continue the same via video.  

3:30 pm

I sync up with my team member Dinesh and discuss planning, designing, and breaking up stories regarding refactoring the OAuth flow. This is a very important flow and we want to ensure a correct implementation as it is the starting point of app installation with Slack. We already have a good understanding of the problems, but want to break down the work. This takes about an hour and a half. 

5:30 pm

I go through my notes and add anything which I need to remind myself for the next day. I post my daily standup details in our team Slack channel. I then cut myself off from the office and spend time with my family, play with the kids, and have a fun evening followed by dinner. 

 9:30 pm.

We have a sync up with our entire engineering team.  We make sure not to overshoot the time to be mindful of each other’s personal time throughout the globe. This is the time of the day we sync between Pune and the SF team. We will typically use this time at the beginning of the week to plan or discuss project status. Once a month we will hold a retrospective of how things are working or how we need to change. Most Wednesdays are reserved for specific technical discussions. 

10:30 pm.

It is story time for the kids and I put them to sleep (if they are not already ). I have a list of good books to read or just have random discussions with family about anything we learned during the day. This helps me relax and prepare for a sound sleep.  Then when I see my bed all ready (which I made up first thing this morning) it reminds me of my accomplishments and, with a happy mind, I can rest.

About Kalpak

Kalpak is a Staff Engineer at Slack. When Kalpak joined Slack, he worked on features in Email Bridge. More recently, he joined the Platform Admin team and works on the backend to build and support admin APIs to make life for Slack Enterprise App administrators easier. 

Life at Slack

In our “Day in the Life” series, we hear from Slack Engineers in different offices and specializations to learn more about what a typical day looks like. We previously heard from a Frontend Foundations engineer, a Mobile Product engineer, a Backend Product engineer, a Frontend Product engineer, and a Backend Foundation engineer.