Remote work
I’ve been working remotely full-time for the last four years, and part-time remote for another three.
Through the process of learning and adapting to remote work I’ve picked up a few things that enable me to be productive in a sustainable way. Below are a handful of “tips and tricks” that I’ve amassed over the years.
Writing is everything
Nearly all of your communication will be written, and usually asynchronous. You’ll need to be able to communicate effectively in email, Slack, GitHub issues, documentation, and any other format that is relevant to your company. As a remote worker the burden is on you to write and communicate well.
To be successful you’ll need to actively work on improving your writing. This means writing blog posts, improving documentation, and making sure all your written communication is deliberate.
Other writing tips
- Use Slack threads to keep streams of communication on topic
- Take notes during meetings and share them with relevant channels
- Use RFCs or blog posts to write in depth on complex topics which can then be discussed
- Ensure most writing and communication is linkable (preferable in posts, gists, and GitHub issues rather than slack)
- Be positive, use exclamation points here and there, perhaps some emoticons or emojis, too
Work in the open
Your everyday work can be less visible when you’re working remotely so it’s important to communicate your progress on some sort of cadence that makes sense for your team. You can use shared channels and GitHub issues to talk about what you’re working on and where you might get stuck.
Working in the open makes it easier for team members to collaborate and provide feedback. This also helps to build up a knowledge base that can be cross-referenced in the future.
Share what you're working on early.
Be your own advocate. This might seem like it's repeating sharing your work, but it's really easy to slip into the shadows when working remotely. When you've hit a roadblock or achieved something let folks know. It's also your duty to check in with your manager and team. Be proactive rather than complacent.
Establish a work schedule
It’s important to establish working hours. What those hours are will likely be up to you, and that flexibility is wonderful. Though, without a set schedule it’s too easy for work to leak into all hours of your day. It’s common to find yourself working way more than 8 hours a day when you start remote working.
It’s easy to see your laptop and think “let me just address one more issue”. Unfortunately this isn’t sustainable for software engineers in the long term. You’ll eventually end up burned out and lacking motivation.
In most organizations you’ll also need to protect blocks of working time in your schedule. This means blocking off chunks of time in your calendar and using “do not disturb” mode religiously.
For a frame of reference, here’s a summary of my average workday:
- Wake up (usually between 5:30-7:30am)
- Have coffee, eat a snack, and hang out with my kids for about an hour
- Head to my office and “deep work” for a couple hours (usually from 8-10:30am)
- Exercise, eat, make more coffee, hang with my family
- Work for another hour or so until 1pm
- Help get my kids down for their naps
- Work from 1:30-3:30pm with an hour
- Break for exercise, reading, or writing (a few days a week I’ll go to a coffeeshop for a couple hours during this window)
- Work again, usually hard stopping around 5:30
- Dinner and activities with my family
- Get the kids down for bed (~8pm)
- Relax, go straight to bed, or work on a pet project that interests me
- Make sure I’m asleep by 10pm 6/7 nights out of the week
Knowledge work is a weird thing. I’ve found it’s best to break up my day to spend time with my family and take care of my body (though I neglected exercise for a while). This is often where I subconsciously digest what I’m working on and will often head back to work later with a fresh perspective.
This ensures I’m not teetering on burn out for when I’m suddenly really inspired by something and want to spend some extra hours working on it. Roughly five or so times a month I’ll break my schedule and work through dinner or randomly wake up at 4am with the solution to a problem I want to implement right away. Keeping my hours structured allows me to do this without putting my well-being at risk.
Craft a morning routine and "commute"
It's all too easy, especially when your office is down the hall or in the bedroom, to quickly check in to work before getting ready in the morning (whatever that might mean). Then, you'll lose yourself in an interesting code problem for a few hours, and before you know it, it's 1pm, you're still in your pajamas, and you haven't eaten.
All you've had is coffee.
This happening every once in a while isn't necessarily an issue. Though, for me, I found it became my routine and resulted in an unhealthy schedule. I wasn't properly separating my work time from my morning like what naturally occurs when you work from an office. Work and life were blending together and becoming one. This isn't good.
This blending left me feeling very anxious and a bit depressed.
After some time, I adopted a morning routine (listed above) which includes getting my "work clothes" on and "commuting" to my office in the backyard. It helped immensely and I think the manufactured commute, in particular, served as the separator between work and life.
Office space
I waited way too long to find proper office space and I didn’t realize how much it was affecting my productivity.
For a while I worked in our spare bedroom which was located right next to the kitchen and living room. If you’re a parent and working from home you’ll quickly realize when your workspace isn’t interruption free. It doesn’t matter how deep you are in a problem, hearing your child cry will snap you right out of focus.
Working from home with a family is awesome because you are there for the rare emergencies so you can help out. However for day-to-day happenings it’s important that your work time remains work time. After all, this ensures that when you’re done with work you’re present and available for high quality time for your family.
While I was still in school I used the university library for contract work which was a nice, comfortable, and quiet space to work in. However, when I graduated this wasn’t really an option anymore.
I tried a local coworking space as well. I found it nice for socializing and feeling less isolated, however this space was open and full of distractions and inconsiderate folks. Some days it’d be super quiet with only a handful of folks quietly working. Other days it’d be completely full and so terribly loud. The inconsistency and lack of predictability made it an unviable workspace for me, especially on days where I was going to be coding a lot.
When I moved into a new house I was able to use our basement for a while. This worked out nicely because it was more separate than the spare bedroom, however this was always going to be temporary since it was going to become the playroom.
So, I converted the shed in my backyard to an office and now use it as my primary space for work. I’m lucky to live in a town where this is an option.
Another nice feature that surprised me was that the short walk between my house and office serve as my work barrier. Granted, this barrier isn’t 100% respected in our ever-connected world, but it’s better than nothing.
Invest in quality work equipment
It’s easy to skimp on the equipment in your workspace, however this is an important investment for your long term sustainability and for avoiding RSI. Get a nice desk and chair. Make sure you’re working with proper posture.
Your future self will thank you.
Establish communication boundaries at home
If you’re working from home it’s useful to establish communication boundaries for others in your household. For me, being in my office means work time on weekdays. So my wife has to call or text much like she would if I were working in a traditional office. This allows me to communicate asynchronously when I’m at a stopping point.
Of course it’s also clear that this boundary is only for day-to-day things, I’m always around and available for emergencies. So far it hasn’t been anything more serious than dealing with some difficult potty training incidents, though it gives me peace of mind.
It’s easy to feel isolated
Long gone are the days of water cooler talk and informal socializing. Early into my remote working career it caught me by surprise when I began feeling a lonely since I’m an extreme introvert. But, we’re social creatures. Remote work makes it easy to lose a few weeks and suddenly realize you haven’t left the house.
To avoid this I make social outings a deliberate and planned thing. It’s especially helpful to meetup with other local folks that work remotely to shoot the shit.
Add pairing to your workflow
Spending a moment each week, even if it’s 15 minutes, hopping on a call to go over a bit of code or provide some live “rubber ducking” is a great way to make up for the missing over-the-shoulder time you get when working in an office. It helps you pick up new tricks and workflows from a colleague or refresh your understanding of something when helping someone else.
Miscellaneous
- Block off times in your calendar for deep work
- Turn off notifications outside working hours
- Take breaks for walking and coffee
- Invest in your health and fitness
- Construct a commute (mine is walking to my office that’s 20ft from my back door)
- Put on “work clothes”
Organization level considerations
Not everything in remote work is in your control, some things boil down to a company and organization-level policies to ensure success.
Fully remote team
If the team you’re working on isn’t fully remote it can make for a frustrating experience when you’re the only remote person. Sometimes companies can even experiment with a few remote employees and treat it as a half in/half out thing. This won’t typically bode well. You’ll miss out on in-person banter, but more importantly you can miss out on decision making if the team isn’t going out of their way to include remotes.
Teams can go above and beyond to include remote workers with policies:
- Everyone dials in on their own for meetings
- Decisions are made in the open and asynchronously (RFCs, Slack, etc.)
- Promoting a space where remotes can chat informally with coworkers (#random channel)
Though I’ve anecdotally found this to be an exception.
Trust
Without being able to observe an "ass in a seat", it's sometimes hard to adjust. Successful workplaces have trust in their employees to do their jobs. Especially in knowledge work, productivity ebbs and flows.
It's best to foster an environment based on trust, where it's okay to communicate things like "I slept terribly last night and am feeling off" without fear of reprimand.
Clear goals and expectations on reasonable schedules allows for folks to get their work down without having to worry about the minutiae of their day.
Overlapping working hours
One of the biggest benefits of remote work for companies is the fact that their hiring pool is no longer geographically restricted. This means you can hire the best person for the job around the globe.
For collaborative teams this will mean needing to find team members where working hours overlap. I can imagine it’d be frustrating to have to consistently attend meetings at 4am or 8pm. Though that’s really only at the team level. Companies are often made up of many teams, each of which can have some set of overlapping hours.
Knowledge base
Centralizing information is critical for remote teams. Without the watercooler it can become difficult to share the tribal knowledge that builds up at a company. Everything should be documented. Everything should be linkable. Everything should be searchable.
Gatherings
Having face time with your team is important to build trust and understanding. Many companies will schedule all expense paid trips and this is amazing for remote teams.
Conclusion
Remote work is liberating, but it sometimes takes some work to establish a proper workspace and workflow. You have to be deliberate with your time and communication, not all companies are created equal either. To properly foster a remote-friendly environment a company needs to go all in.
Remote work has drastically improved my life and I hope it becomes more commonplace in the future so more folks can benefit.
Part time remote?!: I worked at a company without a strict in-office policy so I typically spent a couple of days working from home. I’ve also been a collaborator on open source projects that were entirely remote during my free time. I incorporate this as part of my remote work experience because it’s where I was able to get my feet wet and begin learning the skills necessary to be productive as a remote employee and team member.