Working remotely as a Software Engineer
Tags: remote
Published: 2020-08-21 13:45:42

---
title: Working remotely as a Software Engineer
published: true
description: My experience working as a Software Engineer on a remote company. I'm going to give you some tips on communication, organization and remote culture.
canonical_url: https://carloscuesta.me/blog/working-remotely-as-a-software-engineer
tags: remote
cover_image: https://dev-to-uploads.s3.amazonaws.com/i/4e0fcjty6qsnww9b24zs.png
---

Since March due to the _COVID-19_ 🦠, the company I work for, decided to **ditch the office** and go **full remote** 🌍.
Within a day everyone moved his workspace from the office to elsewhere 🏠. Actually we do not own a physical space and there's no intention to have it anymore.

I'm going to give you some **tips** based on my **remote working experience** as a **Software Engineer** on a team that is on the **same timezone** ⏰.

### Communication

The **communication environment** at the office is _usually_ **synchronous** and **face to face** 🗣. It's really easy to reach anyone, you just need to approach to his table, and that's all right ?

However working **remote** means you can **work anywhere** you want in the **world**. So you don't have the possibility to reach your colleague table and talk with them.

This leads to the most essential part of remote work the **asynchronous isolated communication** 💬. From this point you should understand that you'll be communicating through a screen. This **introduces** a **layer of complexity** to the **communication process**.

Why? You might ask, we can use video conference software! Yes but, it's not the same for the reason that we are **not used** to it, because [**humans** by nature are **social animals**](https://www.goodreads.com/quotes/183896-man-is-by-nature-a-social-animal-an-individual-who) and we are made to interact physically.

Keep in mind that a video conference is a _synchronous_ process, so you won't be able to use it anytime, it will depend on the momentum of the coworker you want to contact. Luckily **text communication** comes to the rescue! ⛑️

#### Assume positive intent and be kind

Always begin with a **position** of **positivity** 😊, the communication will flow a lot easier as a result of how our brain 🧠 processes positive intent ❤️

Before sending a message read it a couple of times and think about this: _Would I say this exactly word by word to the person's face ?_ — If the **answer is no**, **don't send the message** ✋

When you are on a situation where you are **not understanding a colleague**, **jump** on a **video call**. You will find that a long discussion could be closed on a **10 minutes talk**.

#### Use public channels

When using your company's internal communication tool always **try to communicate on public channels** avoid **group chats** or **direct messages** as possible. For the simple reason that [private communication discourages collaboration](http://blog.flowdock.com/2014/04/30/beware-of-private-conversations/).

I'm pretty sure that anyone on your team could benefit from reading certain discussions to stay informed on whatever you are working on. This will help to embrace team work and collaboration 💪

If you feel that the topic/resolution is important, **you should document it** somewhere else **outside** the **communication tool**. Otherwise you'll be losing **essential information** that could be shared and will be lost on the history of the chat.

#### Connect with the team frequently

Do **video calls** with your team mates **frequently** to make **them feel connected**. Working with nobody next to you could be tough and depressing sometimes. I found that proposing a **10 minutes daily meeting** from the beginning of our remote situation helped people to feel better.

Add a **social aspect** to those meetings, talk about trivial things, sports, news, personal stuff... You'll maintain and improve the relationship with your colleagues 🙏

### Organization

As a distributed team it's essential that **everyone** on the squad **knows** the **company roadmap**. As a Software Engineer being aware of the objectives will provide us a **comfortable habitat** to work on. Because we won't like to feel as machines 🤖 who write code without any clear purpose 👎

Personally, I feel much more **motivated** with the product and problems If I understand the **background** of what I'm working on.

Knowing **what** person **is working on** is really valuable for the team. It will help to avoid blocks between engineers and provide them a **clear picture** of the **status** of any **task**.

#### Use a software development methodology

Choose a **system to distribute** the **workload** on the team. Try the different frameworks that exist out there and pick the one who works best for your team. We use **[Kanban](https://en.wikipedia.org/wiki/Kanban_(development))** flow and we're pretty happy with it.

With a methodology like Kanban you'll **reduce** the **overhead** of **organizing tasks remotely** and you'll make visible the work that every member is doing on a daily basis to the rest of the team 👀

#### Manage your working hours properly

The first two months of going remote I made a **ton** of **overtime hours**. We had a critical situation at the company and we had to make an effort. I spent a big time on my home office / bedroom coding. Since our **whole country** was on **lockdown** 🔒 due to pandemic, I had nothing else to do 👨‍💻

You should **be very careful** with your **working hours** on remote, because our **body** needs **rest** time 😴 **sport** 🏊‍♂️ and **entertainment** 🎮. A situation like this could end up with a **burn-out** 🔥, make sure you **protect your time** 💖

**Adjust** your **schedule flexibly** to your **daily routine**, that's one of the **best perks** of working remote!. You can code whenever you feel most focused, **need a break**? Go for a walk and grab a cup of tea 🍵

### Documentation

**Writing documentation** is an **essential process** on a **remote based company**. Have you ever hired someone remotely? _What an onboarding should be to a new engineer?_. _How our business model works?_. All those questions and _more_ **should be documented** on a **knowledge base**.

This is something really important because you won't be at the office anymore so it's not that easier to communicate with people, specially with someone you don't know.

You will **repeat and explain** the **same information** to every new employee, so you have a great opportunity to write it down ✍️ saving you some time on the future.

There are multiples documentation tools you can use, I'll list some of them as an example: _Confluence_, _Notion_, _Dropbox Paper_, _Google Docs_ etc.

### Workspace

**Setup** a **comfortable** and **ergonomic** workspace. Design your space as the home office you would be proud to have. You'll spend a lot of hours everyday inside them. Create **your space**, here's a list of things to consider when designing your setup:

- **Lighting** ☀️: Pick up a place with good lighting, a space that have a great amount of **sunlight** if possible.
- **Office furniture** 🪑: Get a **good & ergonomic chair** and **desk** your body will thank you later.
- **Ventilation** 💨: Ensure that you have a decent airflow.

### More resources and tips

Here's a list of useful links about **remote work companies**! Hope you find them interesting 👇

- [Gitlab's Guide to All Remote](https://about.gitlab.com/company/culture/all-remote/guide)
- [Slack – Remote work tips](https://slack.com/intl/en-es/blog/collaboration/remote-work-tips-from-slack-engineering)
- [Buffer – 40 Lessons From 4 Years of Remote Work](https://buffer.com/resources/remote-work-lessons/)