I’m Levi Kennedy, and I’m a remote Senior Software Engineer at Bloc. I’ve been a software engineer for eight years. Most of my background lies in e-commerce and health care. I live in Nashville, Tennessee, with my girlfriend and two cats. I want to share with you what a typical day in the life of a remote engineer looks like.
Before I jump into my daily schedule, I want to point out how important it is to have a routine when you work from home. A daily routine helps simulate life in an office, as well as helps set boundaries between work life and home life. When you work from home, the line between the two is easily blurred.
By 9 a.m., I’ve been up for about an hour. I dress as if I’m going into an office—well, I dress as if I’m going into a startup’s office. Jeans, sometimes a button down, sometimes a t-shirt. When you’re a remote employee, it’s easy to think you can work in your pajamas, but I see the value in actually dressing for work. It helps me set the tone for the rest of my day.
The first hour of my day consists of checking email / Slack conversations that happened after I logged off the night before. I’m in the Central time zone, and the rest of my team is in Pacific. Sometimes conversations happen after I’m done for the day, and I need to get caught up.
For example, at the end of my day yesterday, I finished one of my tasks and sent it to Gina, our Mentor Operations person, for QA. When I got up this morning I had a few questions to answer. This particular task was a report that predicts when we will run out of mentor availability for any given course. She wanted to make sure the report took into account freeze requests. It did :).
At noon, I take my lunch break. I try my best to get away from the computer at lunch. Again, a daily routine helps set boundaries when you’re remote. In an office, you’d likely go out to lunch or gather in the “break room” with your colleagues. At home, it’s easy to take your laptop to the kitchen table and work through lunch. I usually use my lunch time to read a book or articles of interest to me. Right now, I’m reading PostgreSQL 9.0 High Performance. I’ve been doing a lot of database related tasks, so it felt like the right thing to read right now. If I just want to browse, I usually start with lobste.rs and Hacker News.
Our engineering meetings are normally held at 1 p.m. my time, which is 11 a.m. Pacific, giving the West coasters enough time to get settled in the office. The first meeting of the week is our Sprint Kickoff meeting. In this meeting we talk about three things. First, we go over any unfinished business from the previous sprint. Our sprints are one week long, so anything we didn’t finish last week is discussed. Each engineer gives an estimate of how much work is required to finish the task.
Second, we go over the tasks that we think we will complete this week. If we’ve not discussed the task before, we open up the ticket, decide how complex it might be and assign it a point value. The higher the point value, the more complex the problem and the longer the task will take.
Third, we assign an engineer to bug duty. Last week, I was on bug duty. Being on bug duty is like being on call. If a bug pops up that affects the student experience, the person on bug duty drops what they are doing and fixes the bug. For example, a bug was introduced last week that blocked a few students from submitting checkpoints. I dropped what I was working on and fixed it in an hour or two.
The rest of my day is full of working on tickets, code reviewing, and chatting with my coworkers about things I might need some additional insight on. For example, today, Megan and I paired on a bug in one student’s enrollment. Pairing remotely can be difficult, but since almost 80% of our company is mentors, and mentors pair remotely with their students all the time, we’ve mastered the art of remote pairing. Megan drove and we worked together to find the issue.
I wrap things up around 6pm. At the end of the day we try to leave a comment with an update on the tasks that we are currently working on.