Onboarding as a Software Engineer During Lockdown Due to Covid-19

Posted by Tony Nguyen on August 25th, 2020

Hi everyone! I'm Tony, a software engineer at Courier. I want to share my experience at Courier for the first week compared to my first week at my previous job. The first week happened to coincide with the first week San Francisco leadership announced that the city would go into lockdown. The rest of the post will cover a little bit of my work habits, my first week at my previous company, my first week at Courier, and some of the takeaways that can help us all in the future. I hope that everyone can draw some inspiration from this post and to identify how potentially good ways to promote engagement and focus.

Some Info about Me 

For most of my ~15 year career in software engineering and management, I have been and preferred working in an office with the team. I enjoy the side conversations even if I decide to block some of it with my headphones.  I'm a person of few words but always looking to sponge info through sound any chance I get. My general work from home rate before Covid-19 was about one day every four weeks.

In terms of software development, I like a balance between some weekly meetings and ad-hoc brainstorming pow-wows to move feature work along. When I'm on Zoom in a group (4+) setting, I'm that guy that would rather have his video turned off and mic muted unless necessary.

First Week at My Previous Job

Speaking of Zoom, it was not the choice we made back in January 5th, 2015. At that time, I joined a small startup of ~20 people while living in the Northern Virginia area. The office at the time was mainly my co-worker's house that was a 25 minute drive away. We were two of three people starting out on the East Coast while the other five or six engineers were in San Francisco.

I remember in order to acquire my laptop, I went into Tyson's Corner Galleria to pick it up at the Apple Store. The goal of my first day was to set up my environment and push working code into production by the end of the day. I thought at the time that it would be hard without knowing much of the tech stack and the problem domain. Lo and behold, seven hours later, I succeeded. To accomplish this, I needed to set up only a couple major repos and infrastructure pieces, work closely with a teammate to ramp up on said technology, and tackle a small bug that affected only one repo. At the end of the day, I felt pretty good about knowing a little more of the tech stack and the deployment process. 

For the rest of the week, I didn't get the same level of engagement. In fact, I felt isolated. I only visited my coworker two more times, but I really didn't know what the rest of the team was working on or talking about engineering-wise. We had video conferencing, but it was always dropping sound, video, or the entire connection, so content wasn't coming in well. I didn't make much gains on learning about the business domain. From an engineering standpoint, my contributions were still pretty small because I was still learning a pretty large codebase that was in transition out of MVP. In short, I was an effective remote worker for that week and for the next few weeks. 

First Week at Courier

Fast forward to Monday, March 16th, 2020. I walked into the Courier office of seven people with the rest of the team working remotely. I was expecting to get my new laptop and was excited to start off being highly engaged with the new team. The problem was my first week was when Covid-19 started gaining traction in the Bay Area. That weekend, Apple closed all of its stores so there was no way to get a new laptop except via shipment. I borrowed an Apple Air with 8 GB RAM to set off on a familiar first day goal: set up my environment and push something to production by the end of day.

The path toward success was similar to my previous job. Even though the surface of the backend and frontend code was larger than what I experienced in 2015, it was mostly kept a couple repos. The backend was fully powered in AWS while the frontend was up with a few commands. I was able to get set up in four hours with about two hours of distraction from Mayor London Breed announcing we would begin sheltering-in-place starting the next day. 

The first ticket assigned to me was not a bug, but rather a feature that would directly impact a customer that week. It was small enough that I could focus on shipping within two hours, before I started looting Courier’s office (with the blessing from our CEO Troy) in preparation of being quarantined. At the end of the day, besides returning home with a large monitor and some toilet paper, I felt pretty good about knowing the tech stack, deployment process, and my coworkers in person for that day.

For the rest of the week, I was able to maintain the same level of engagement. The second day, I worked on a ticket similar to the first one to help build my overall proficiency. The Courier Team used a combination of Zoom and Tandem everyday to connect with each other and  help acclimate us to remote work. They both held up quite well given the increased demand brought on by Covid-19. I was able to continue contributing and learn more about the business domain through constant communication with the team.

Takeaways and Conclusion

There are a few good points that both Courier and my previous company did well to instill engagement and focus:

  • Work closely with another software engineer at the company

  • Set up your dev environment in half a day

  • Choose a body of work that could fit in the remaining hours

  • Impact production in the first day

  • Have a demo day every week to make it easy to ramp up on business domain and provide an opportunity to build a rapport with team if you can show what you did in your first week

In general, the first day for both companies were successes in my eyes. Where they differ is overall team mentality, the tech, and my personal experience:

  • My previous company did not have a remote team of more than one person until I started that day. It was definitely an office first setup to stay engaged and focused. Courier had one third of the team remote and had to embrace a remote first setup. I think the latter helped me feel that I was with the company even though we were split apart with Covid-19

  • To build upon the first point, the communications tech was vastly different for me in 2015 vs 2020. While I was struggling to stay on a connected call for an entire meeting back then, being on a video call for 30+ minutes is not fraught with danger at all. Knowing I didn't have to worry about remote communication made me feel more confident to engage with the team.

  • I think gaining experience working with remote teams and being remote myself the past five years helped me prepare for being remote with Courier. I learned to be more assertive reaching out to people on Slack, start ad-hoc meetings on video chat to bring clarity in discussions, and added more documentation for engineers to improve their knowledge. Running standups and having weekly meetings helped keep myself engaged with the team and enabled others to stay out of the vacuum of solitude.

As you start a new company in software engineering whether you’re working remotely or in an office setting, observe the following:

  • Does your company or team have a general plan for your first day and first week? How will they keep you engaged and help you focus on activities and outcomes?

  • At the end of the week, how do you feel about your knowledge in both the tech stack and in the business domain?

  • How comfortable are team members reaching out for help whether it’s a tap on a shoulder or getting an online discussion going? Can you see silos or cliques amongst team members? 

The answers to the above questions can be leading indicators of how your experience can be at your new job. If you identify potential problems in any of those areas as you start out, you may face challenges that need to be addressed or if they are ingrained into values for the team or company, then a sign that you might have to do something more drastic.

I hope my post gave you insight one some trials and tribulations of starting out at a new company. Whether you’re a remote worker or in an office having a strong foundation in communication, keeping focused in your early work, and staying engaged can help you have a fulfilling start at your company. 

We’re always hiring so if you’re interested in joining the team, check out the Courier Job Board!