Code in the Time of COVID-19
Work From Home

We’ve been working from home for a while now, and some people from our team are doing so for years in a row. More than working from home, the ability to work from ANYWHERE is simply amazing.

Twitter announced that their employees will be allowed to work from home forever.

Basecamp quite literally wrote the gospel of remote work.

Some teams are more fluent than others while working in a distributed manner. Engineers have the tools, and the nature of the work is very introspective in many instances, but what happens to project managers, salespeople and others that are more attached to the office space and social gatherings?

The current state of affairs in the world has led us to rethink our physical location strategy. We do have offices, 4 in fact, and it is becoming increasingly clear that these spaces should be used only sporadically, perhaps to promote some face-to-face meetings that would be more productive in person. As our people overcome the difficulties of learning how to work from home, we asked the obvious: how about we keep going like this, and maybe use the rent money to throw a couple of in-person all hands every year? It might happen.

During these difficult times, and speaking from some experience in distributed workspaces after almost 11 years of working like this, I would like to share some ideas that could make one’s life more productive.

Mindset

Working from home has the potential to create a great benefit if the person is driven and focused. On the other hand, people may be able to find opportunities to hide behind the remote work curtain, because after all, they’re not being closely monitored. Successful teams achieve their goals because they have a common one, a mission. If a member of the team needs too many reminders, constant monitoring and checks, it’s a sign that there is something going on with that person.

It’s All About the People

Mind your people. Seriously. You may not be a psychiatrist or a self-help book writer, but you have to try to understand each person’s life, or at least their context. Your team has families, pets, houses, financial stress, and sometimes a world apart will cloak these problems. Make sure part of the performance review tackles matters of the heart and soul, not only deliverables and assertiveness.

Knowledge Transfer and Documentation

We are very luck, as we’ve been growing our team and we have experienced very little turnaround. Transferring knowledge from a person to another is a constant challenge and exercise. In a small team, one person tends to concentrate a bunch of responsibility: part of the code, cloud configuration, managing the team, understanding clients. To minimize fatigue and maximize knowledge transfer, we encourage people to rotate between teams. This will help everyone to have a good grasp of the product and also experience different managerial styles.

The Gear

With “the cloud” and relatively fast connections these days, we are moving a good chunk of the development infrastructure online. When you run multiple services in many Java Virtual Machines (JVM) and Docker containers, and perhaps a Kubernetes mini cluster in your local minikube/VBox, even the mightiest Macs will suffer a bit. Thank god for tiny fans at 6000 RPM!

Even though we don’t have a huge array of microservices, by moving all of them to a “dev cloud”, an engineer will only have to run one or two services locally to perform their work. We will continue to make sure that employees and contractors have access to good equipment and connections in a way or another, even when they need to use their own.

The title of this post is a hat tip to “Love in the time of Cholera” by Gabriel García Márquez

photo by Alexis Fauvet - Unsplash

Our offices

SF Bay Area
3685 Mt Diablo Blvd, Suite 353
Lafayette, CA 94549
USA
+1 650 523-9904
Miami
2980 McFarlane Rd.
Miami, FL 33133
USA
+1 305 967-6702