What I have learned from eight years of being a remote developer

Ivan Neto - Jun 10 '18 - - Dev Community

I enjoy working remotely. There are many advantages such as not having to commute to an office; having more time with my family and myself; being in a reserved workspace which helps with concentration and boosts productivity; being able to travel more often, having flexible work hours and the list grows.

For people who don't work remotely or have a home office (https://www.quora.com/What-is-the-difference-between-remote-work-telecommuting-and-a-home-office), it sounds like we are privileged. Most of my friends' jobs are not suitable to be remote one day and many consider remote jobs as dream jobs.

It's often difficult to see the hitches related to remote work. What I want with this post is not to give tips on how to handle to work properly, how to find remote work or how to purchase the proper equipment for that, but to show through my experience one face of it that is not easily perceptible. Only after some time you are capable to note details that make remote work amazing and are surprised by others that are extremely hard to anticipate when starting.

Let's see...

No perfection

“Do you work remotely? Do you work at home? Oh, that must be perfect!”

No, it's not perfect. Everything has advantages and disadvantages.

“Working remotely is bad, you don't have anyone to talk, you are mostly alone.”

Every choice you make has the good and the bad side. During the working hours, you are probably isolated (and this is not 100% true), but it's a matter of choice to not be when not working.

No dogs

This is a joke, of course. What I mean is, make sure you are in a peaceful environment, mainly if you have to do many video calls. Ensure there are zero chances of a neighbor dog barking in your background while you have to talk. I had this experience and someone complained, it's frustrating.

Really, no dogs

If you need to move, do. Maybe a soundproofing office? I'm not kidding. When you are working remotely, you have to take it seriously. Once I had to talk in a meeting and I couldn't. I missed a golden opportunity. Having to keep muting yourself because of some random unexpected noise hurts and might determine your next career step.

This means you need to choose carefully the place you live, the people around you, to guarantee you are able to work when you need to be in a silent place.

Split the office if possible

If you live in a house, it's not a bad idea to consider a small garden between it and the room you use for the office. That induces a psychological state of “leaving home” and “entering the office” and the opposite. For me, it works to perfection.

One of the big problems remote workers have is not setting boundaries between work and home and mixing everything.

I'd say the same for the office format. I don't like making my bedroom as an office or my office as a bedroom. No beds. Just office furniture.

Family

Many think you are not working! You are at home, aren't you? They knock the door, make random requests, the phone rings, as does the bell, the postman arrives, and they request you to receive the package, they shout “food is ready” when you are in a meeting.

They need to learn, as well as you do. You need to have a conversation with them a couple of times to make them understand. Or they do, or you'll end up renting a room or going to a co-working space every day.

The most difficult thing is teaching them are not at home. You are only at home after you leave the office room. That's the hardest.

Internet

When you start working by yourself, you start simple, of course. Then after a couple of years, you see yourself charging three times more, leading teams, working on big projects.

How do you feel about saying something like “hey, I'm not working today because I have no internet connection?” A contract with two ISPs and also a mobile 4G/5G connection as a backup is mandatory for me.

Equipment

So I have a Nobreak. Because if I have no power, I can stay up for eight hours and still work. I checked to make sure my two ISPs used different links and even if there was a general power outage, my mobile provider would stay up (because it's a national one) then I could keep working.

Once, we had the experience of losing the first 30 min of an hourly meeting to set up a microphone. It's bad when you have to do the same for another one. Don't ever allow that to happen twice!

I have backup headphones. Once, I had the experience of not having an extra pair, my main ones broke and my sound naturally had a lot of echoes. It was very difficult for anyone to understand me. People complained, of course.

Another essential topic is your furniture. If you do videos, it's crucial to have good furniture, to show you are in an office or at least show some professionalism. Additionally, they add to your physical (ergonomic means fewer doctors and medicine in the future) and psychological (work/home split) states.

Computers

Two computers as well are also good to have. One to keep at home, one for traveling, or going to events, or to keep safe until the first one breaks.

Bed is not for working, pajamas neither

I don't like to work when in my bed. It activates me. I have problems trying to sleep later. There is a similar situation if I try to work when wearing pajamas. I'm still trying to get up and don't make progress fast enough. That's the same splitting problem. I need clothes to work and clothes to stay at home. They don't need to be better, just slightly different. Tell your brain when you are in your bed, it's not working time. And when you are using pajamas, it's still not working time.

Dropbox

A Dropbox (or similar) account. What if you go on vacation, don't bring your computer and there is a critical bug in production? Only Dropbox and any PC saves you. Or be terribly sad with your early trip back home to fix that bug.

Clients

Regarding clients, I have observed a curious behavior. As they don't see you, some think you are a robot 24/7 living inside the chat app. Of course (and I keep saying that, because it's important to emphasize), everything depends on your relation to them, and whether you work alone and deliver your stuff later or work with a team and need to be online for a couple of hours.

It's fundamental to work with good clients, be very selective as the time goes, and make sure they have experience with remote work. There are many situations:

  1. It's a one-to-one relationship, where you work on a project for a single person;
  2. A company with many remote contractors;
  3. A company with everyone on-site and you are the only one remote;
  4. You are an employee and works partially remotely and partially on-site;
  5. You own a company and have many people and companies as clients.

No matter what situation you are, some clients want to reach out anytime. Many do not realize there is a real person outside of the chat platform and you should not allow them to ask you to do long demanding tasks when you are about to leave or at non-sense times like after 8, 9 pm or before 6 am. Of course, downtime and critical bugs happen. But we need to set boundaries and say “no, it's after 5 pm” (or 6 pm or whatever the time you stop), let's continue tomorrow. That's totally fine. Once agreed beforehand, mostly.

Still Clients

You miss the day-to-day of your client. So... you don't take the pressure the on-site guys take. You need to have a way to know something is important, so it's important to be constantly pairing with your on-site peer.

Another thing is off and on if the company has an on-site team and a remote team, they tend to not give the right value the remote team deserves. They don't see the remotes working, so you have to find another way to build up trust. Again, over communicate and keep mentioning what you are doing, one or two times a day doesn't hurt. Another idea is to improve a bit the company's process to use documents because it's easier to just people talk to each other in the office and not pass the information to the remote folks.

Organization

One of the most fundamental problems of working remotely is organization. It's OK to not be much organized at the beginning. But after some time your own body starts to ask for that.

Not only your body, actually, but your family, friends, and every other aspect of your life. You need a routine, the proper times for eating, waking up, starting and stopping working. The more you so the same activities at the same time every day the better.

We tend to forget we are working and don't stop. Or procrastinate, play PS4 too much and don't work. Another very essential point, at least to me, is clothes. As I said above, I need wearing “work” clothes and “home” clothes. This tells my brain I'm in a working or home state.

Track time

Tracking time is the best way to help with organization, and also will help with estimating future features. The tracking tools can provide fascinating reports about the time spent in a feature, talking to a person, etc. Besides allowing you to not lose when you should stop working and take some rest, this is a valuable information that can help you in the future.

Health

Following the previous topic, there is a constant need for equilibrium, so let me mention here doing something without a computer is very important. Every remarkable person we know implements that.

If we found it boring, we should keep searching until we encounter something fun. I always hated the gym. Bought a bike, a guitar, and Muay Thai gloves and those are working for me.

Family time, friends, contact with nature, everything helps.

Why am I saying all that? Remember we are working remotely, most of the time alone, so it's straightforward to lose track of the world and just stay at home all over the month. A plan of action of how to stay in balance is required, so we can perform our best in our job and also give the deserved attention to family and friends, our body, mind, and health in general.

Communication

Overcommunication is the key, IMHO. If you have a productivity app like Slack to talk to other devs or members of the project, make sure to explicitly say when you start, leave for lunch or do other things and stop.

If you work isolated and the communication is typically after some days and/or via email, make sure to keep sending emails, following up, asking for answers, send information in advance before being asked, etc.

If you are between asking or not, ask. Never assume someone knows about something. Most of the conflicts that happen in a remote environment are due to the lack of communication.

I'm still working on this, that's the part, after eight years, I'm not so good at. If I have to rate my communication, I'd say it's 85 out of 100. I need it to be 110 or 120, then I am sure I will be over communicating enough to avoid any problems or confusion.

Final words

Of course, many situations here really depend on the kind of job you have. If you merely perform your tasks and work mostly alone or asynchronously, it's OK to be in noisy environments for instance. If you are an employee working at home, that's completely different. When you participate in meetings, pair programming, lots of planning and video with coworkers, you need a different setup.

I hope this post could help not only the ones that want to start working remotely, but also everyone involved in the remote world, and if you have any question or disagree with anything, I'm happy to talk :)

Thanks so much.

  • Thanks Ron Timoshenko and Niqui Merret for their opinions and experiences about remote work, which contributed to making this post better.

Resources

Over here are some valuable resources about remote work:

https://www.toptal.com/freelance/how-to-work-remotely-and-still-be-the-best/#book-tested-programmers
https://www.toptal.com/remote/staying-healthy-while-working-remotely/#book-tested-programmers
https://www.paymoapp.com/blog/working-remotely/
https://youteam.io/blog/remote-development-team-guide/
https://youteam.io/blog/guide-to-hiring-remote-team-of-software-developers/
https://x-team.com/blog/10-secrets-to-becoming-a-great-remote-developer/
https://auth0.com/blog/21-tips-for-remote-working/
https://blog.codinghorror.com/on-working-remotely/
https://dev.to/lefebvre/what-ive-learned-after-working-remotely-for-10-years-384j
https://www.codementor.io/learn-programming/8-tips-to-become-an-effective-remote-developer
https://www.deekit.com/11-things-about-remote-work/
https://medium.com/swlh/effective-tips-for-working-remotely-23cc290a8c08
https://www.wordstream.com/blog/ws/2017/06/16/working-remotely
https://skillcrush.com/2017/06/05/remote-work-from-home-skills/
https://skillcrush.com/2016/10/10/working-remotely-tips/
https://blog.trello.com/company-remote-work-myths
https://news.ycombinator.com/item?id=16482351

Finding remote work

Below is a list of places to find remote work:

Toptal - https://www.toptal.com/#book-tested-programmers
Hackhands - https://hackhands.com/
Remote OK - https://remoteok.io/
Upwork - https://www.upwork.com/
BairesDev - https://www.bairesdev.com/
AngelList - https://angel.co/
Remote.com - https://remote.com/
Codementor - https://www.codementor.io/
Indeed - https://www.indeed.com/jobs?q=developer&l=remote
Dice - https://www.dice.com/jobs?q=&l=remote
Vibbra (PT-BR) - http://www.vibbra.com.br/
Torre Jobs - https://torre.jobs

. . . . . .