Skip to content

Instantly share code, notes, and snippets.

@mlantz
Created March 16, 2020 03:18
Show Gist options
  • Save mlantz/a26a0a9ac52a5adee84d90f727ed26c0 to your computer and use it in GitHub Desktop.
Save mlantz/a26a0a9ac52a5adee84d90f727ed26c0 to your computer and use it in GitHub Desktop.
Presentation on Working Remotely
# Working Remotely
---
## Matt Lantz
- Canadian (doesn't really matter)
- Software developer (has meaning)
- Has worked for Fortune 50, 500 and small companies (:+1:)
- About 10 year experience (sure, whatev)
- Currently works remote, most often in pyjamas (🤦‍)
^Hey everyone, so I’m Matt Lantz a developer from Canada and I’ve been a developer for just over a decade now. I’ve worked with small teams in small offices with no windows - no joke - well there was a couple windows in the conference room - but the staff all sat in back just staring at screens. I’ve also worked with large companies including BlackBerry and now Pfizer. I’ve worked with small teams that lived in the same town and today I work teams that are made up of people from around the world. For a while I was having meetings with people in Dubai at 6am my time every day. I’m really glad I don’t have those meetings anymore. I’m going to talk today about working remotely. It seems like something that would be amazingly easy and that its guaranteed your productivity would be better but there are a handful of slippery slopes so hopefully by the time I’m done talking you can walk away with a set of strategies and tools to help you stay on point and work in your pyjamas.
---
# DO *NOT* DISTURB
### All day, F**k Pomodoro
^In general the first thing I do on any given workday is disable notifications, I put my phone on silent, flip it upside down, and make sure all my do not disturb settings are on. I’ve never been one for liking interruptions and though you get them far less when working remotely, a spam phone call can ruin hours of focus on a single task. Keeping tools like Slack and Email open during the day let you see when things come in or at least let you peak at them occasionally when you want to, versus having your day filled with pointless popups. If you’re the type that likes Pomodoro method, I’ve actually got an Alfred workflow on GitHub which enables DO NOT DISTURB for however many minutes you want. I used to use it but then I just got to the point where turning it off for the whole day became easier.
---
## Conversation vs. Communication
#### It's not *Slack* vs *Discord*
^ Whether you’re in an office working side by side or in countries separated by oceans, you’re going to have conversations. Some of them will be work related but many of them are not, that’s fine that’s just part of life. Like many other developers I’ll keep Slack open all day long, and jump in and out of conversations, while keeping an eye on team communications to make sure I’m contributing where I can.
Sometimes on Slack and Discord I’ll get lost in debates on what technologies to use with co-workers and sometimes I’d get deep into chats with friends, what I found challenging about conversations whether in Slack, Discord or any other platform is isolating how much time I’m spending on it, and then how much time I was spending on numerous things. Whether that was email, actually writing code, having lunch etc.
---
## Perception of *Time*
#### And its value ⏳
^ What helped me start to make sense of my day was downloading an app called “Timing” which has now become my go to tool for understanding how much time I’m spending on any given app each day.
---
## Timing
##### *https://timingapp.com*
#### You may not be happy with the numbers you see.
^ Timing can let you set various domains and directories as projects or specific clients which is perfect for the person who wants to automate their workday. For me the biggest solution was being able to look at Timing and see that I spent 10 hours on my machine on a given day, and potentially 1 hour was spent in Slack but maybe 5 hours was spend in VSCode and a few more hours in Chrome.
---
## Developers don't just write code
##### They also make coffee :coffee:
![10%, inline, center](https://images.unsplash.com/photo-1508739826987-b79cd8b7da12?ixlib=rb-1.2.1&ixid=eyJhcHBfaWQiOjEyMDd9&auto=format&fit=crop&w=3066&q=80)
^ Being able to distinguish what my average work day looked like vs days where I felt thoroughly productive vs days I knew I was slacking helped guide me toward tools and workflows to keep me focused and delivering my best work. It’s also very humbling to see when you’ve only logged 3 hours on a given day because you got distracted or had personal things to deal with.
Being able to look at the numbers helps drive you to be more proactive with your time and make sure you get done what you need to get done. The other advantage to time logging in this manner is it helps you realize how much of your day gets eaten up by Slack, Email, Social Media, and even task management. As a developer you don’t just write code, so don’t assume you’re only productive when writing code.
---
### Documentation counts as Coding
#### [fit] Within the format of a workday
^ Documentation counts, a little trick I use for mental organization is keeping a `.notes` file in each project and have it set in your global `.gitignore`. It started becoming imperative for me to have my own notes on how some things worked and details I needed to remember about projects and clients, sql queries whatever. I tried using platforms like Notion and Bear but I found that most things I needed to make note of where just for me, and not really relevant to the team, so sharing wasn’t needed and Bear was too detached from the project. I found that the more often I jump between apps the less focused I am.
---
## FOCUS
#### It's not free (*neither is the app*) :moneybag:
^ Focus takes time and energy and its easy to get lost in social media and other platforms, even sites like the news, one minute you’re writing down a note then next second you’re catching up on twitter. I have at times found my mind wandering and just browsing social media and news feeds and just doing some click following. You’re less likely to do this at an office gig because people are often walking around and no one wants to upset their boss. However when working remotely its easy to spend tons of time on these platforms and continue extending your workday.
---
## HEY *FOCUS!*
##### *https://heyfocus.com*
#### You will likely turn this off once a week.
^ Since I found myself guilty of being easily distracted I enlisted the help of https://heyfocus.com to get me stay off social media on most days. I filled the app with motivational quotes so if I try to visit Facebook or most other platforms from 9 - 5 on a weekday it’ll replace the screen with a dark text quote from someone inspirational - reminding me that Facebook, Twitter, LinkedIn, Reddit and the other sites can wait. There are times where I will open a tab in Chrome without a seconds hesitation to visit Twitter or Facebook and see what’s happening in the world around me. What I’ve learned is that though Twitter and Facebook and other platforms are great for sharing information and connecting with people they are also giant time sinks, and its better to have access to them for short 5 minute breaks occasionally rather than accidentally spending an hour reading threads that result in me learning and creating nothing.
---
## Valuing *TIME*
##### :moneybag: + ⏱
^ The point of platforms like Focus and Timing is to ensure that while working remotely you value your time. This means being assertive with your communications when you’re blocked, and voicing your opinions on projects and ideas. Being hired to work remotely does not mean your time is less valuable or your opinion less valid, working remotely requires you to value everyone’s time including your own.
When working in an office you’re locked in to someone else’s management and monitoring of your time, and they set a value of what that time means to them. When working remote you need to value your time and ensure that you’re getting the best results out of yourself so you don’t create a burnout situation. Some people say its a matter of having a go-getter attitude, I see it as a matter of you being alone in a room. Which means no one can hear your opinion unless you speak up. Working remotely requires you to value yourself and what you mean to a company. Passive, uninterested people working remotely don’t often work remotely for very long.
---
# [fit] Avoiding
# [fit] Burnout
![20%, right](https://images.unsplash.com/photo-1552345387-07e60f8985fb?ixlib=rb-1.2.1&ixid=eyJhcHBfaWQiOjEyMDd9&auto=format&fit=crop&w=3300&q=80)
^ I’ve been in the situation before where trying to handle multiple clients and keep up to date with all the new trends and technologies, and being active on social media has me sitting at a computer for 16 hours a day. This is an immanent train wreck or classic burnout, and it’s never pleasant. You end up taking a few days off which means you’re likely losing money, and even if you’re on salary it means you’re out of the communication of the projects you’re involved in, which means you need to play catch up later, and then the cycle continues. There is not likely anything of value on Twitter or any other platform which you wont hear about tomorrow. Trends come and go quickly in the the software industry but they are very rarely overnight and even more rarely would impact your day to day life. Learn new technologies and trends with a degree of patience. Great technologies stick around for many people to learn them, fads and trends in technology lose focus and concern quickly. Keeping yourself focused on your remote work helps you avoid taking on too much and becoming burned out.
---
# Taking Time off, *Isn't being Lazy*
^ One challenge some people have with working remotely (though this isn’t exclusive to working remotely) is being willing to say I need to take a couple days off. Maybe there are family issues, maybe you’re getting married, or moving, or need to buy a car, it can be anything. One of the advantages of working remotely is being able to take time during a workday for your own personal needs. In my experience its always better to tell your team or boss that you need time to handle your personal tasks, rather than again causing burnout by trying to keep up with everything at the same time.
---
### It's a work*DAY* ☀️
##### Regardless of timezones.
^ When I started working remotely I was so excited that I could work for a few hours in the morning take a long lunch, do a workout, grab a coffee with a friend and then like many other developers work late in the evening in the dark with my headphones on, zoning in an being my most productive self. Though there are times where this has been accurate, those occasions have been rare. More often than not, if I’ve started my day early and taken the afternoon to do errands or hangout with friends then by the evening I have had no energy left to focus on delivering high quality code.
At the same time if I've had focus turned off and I’m able to visit social media platforms or just browse the web indefinitely I can easily end up losing a night of productivity, doing busy work, or tasks that aren’t really needed but make me feel somewhat productive.
This was really hard for me for the first year of working remotely since I would just assume why not work in the evening, I didn’t commute after all. But it’s a slippery slope allowing your workday to extend late into the night. Set an end of workday time, and pretend that you left the office and someone locked you out. It can help reduce your stress levels and force you to prioritize your work tasks and avoid creating late nights. Though there’s always exceptions, the general 9 - 5 makes for less catch up, late nights, poor sleep, large amounts of coffee, and eye strain.
---
# The Value of *Sleep*
##### Should be a whole talk by itself :sleeping:
^ Like we just went over the general 9 - 5 is significant, because sleep and rest is far more powerful than you may realize. Allowing yourself to not only break your sleep cycle but essentially disregard it can have long lasting effects on your health. Sleep not only helps maintain healthy brain function it also helps alleviate stress and improve your emotional health. There’s a valid reason why naps help people of all ages. Even losing as little as an hour or two for a couple nights in row can result in mental performance drops equal to not sleeping at all for a whole night.
If you’re feeling drowsy watching tv, reading book or watching me give this talk, you’re likely sleep deprived. Which means you’re more likely to miss details and take longer to perform tasks. Value your sleep and the effect that it has on your code quality.
---
### *Simplicity* is the ultimate sophistication.
##### - Leonardo Da Vinci :man:
^ Maintaining simplicity gets hard when you have multiple projects on the go, it often feels like one project or client spills into another and having to jump between projects and communication platforms becomes tricky. There are tools like Trello and JIRA for project mapping and issue tracking. Though I wish like many other developers that there was one single platform for all the people to ever use and it was good and not slow as hell like JIRA. But, that’s wishful thinking. In reality many of my clients use different platforms, and I’m stuck with maintaining access to several systems and monitoring multiple platforms. As a result it takes some time to mentally shift from one client to another, which has resulted in a sort of sandboxing my development time per client.
---
# [fit] *Pomodoro* your clients
##### So maybe not f**k pomodoro :tomato:
^ So instead of using the pomodoro technique on my workday I generally use it on my clients. So I’ll start my day with one client, have a stand up or meeting, then after a few hours switch to another client. I’ll toggle them around throughout my day to make sure I’m making progress for each of them but I find its better to work in short bursts, then pause, do lunch, make more coffee whatever fits your daily routine. This helps reduce clutter on multiple levels, since when switching between clients - 90% of the time after I’ve finished a task - you switch projects in VSCode, close a bunch of browser tabs etc. Though one more tip, pin the tabs of project management suits, it makes it easier for fast project switches and just keeping aware of what your teams are doing.
---
# Unsubscribe
#### I'm not anti-email, I'm anti-time wasting: 📫 + 💣
^ This has also resulted in a a handful of email filters, any email with the word `unsubscribe` gets dumped into a universal notifications inbox, which is what I look through usually in the mornings to see if there is anything of value in it. It’s usually just email based notifications of things I already know but it’s nice to get a recap from time to time, and sometimes you’ll notice things you missed in stand up chats, and Slack conversations. There are often emails that I subscribe to in this collection. If I look at it a couple times or noticed that I have not read one of the emails in a long time I force myself to unsubscribe. Outside of general reduction of workload, as I see it, if I haven’t read a newsletter in a long time then it’s not likely a good fit for me and I need to let it go. If its right in the future it’s pretty easy to resubscribe.
---
# [fit] Remind me to write *presentations in advance*
^ We all have reminder apps, I'm sure you’ve all tested out a variety of them over the years, or maybe you’ve stuck with the same one. Either way, reminders, particularly ones that can be set with deadlines are crucial to working remotely. Though platforms like JIRA, Asana, AirTable and many others have deadlines of tasks etc, if you’re managing multiple projects on multiple platforms you’re likely going to copy some of those deadlines to your personal reminder system. I find it most beneficial to have tasks like: tracking my work hours, updating clients, code reviews, and meetings listed in my recurring reminders. Though these do change on the odd occasion it’s great to have an extra reminder to help jog your memory.
---
## [fit] Beeee Yourself
### - Genie (Aladdin)
![50%, right](bee.jpg)
^ Though it’s clear when having meetings or discussions with team mates remotely you need to maintain a degree of professionalism, you’re also not on trial. You don’t have to have perfectly trimmed hair, and you don’t have to keep quiet until spoken to. Being yourself helps you open up and keep the conversation amongst team members flowing. There is no need to walk on eggshells, your whole team is made of human beings who make mistakes, say dumb things, and sometimes just don’t understand stuff. Being willing to be open and clear about what you understand and don’t understand helps the team work well with you. Doing your best to avoid taking the conversation too seriously allows for a sense of camaraderie to form. Some of the people I consider amongst my best friends I talk to daily on Slack and only see once a year. This also involves sharing amongst your team mates on various platforms. If you had a great date let your work friends know, if you had to sell your car, or bicycle or stubbed your toe really bad when you woke up share it. Building a friendship in work, whether remote or in person requires being vulnerable and connecting withe people. Working remotely makes it harder since its often just a profile pic to the person. Opening up to others helps you build a supportive team and feel less alone even when you’re working from the closet in your master bedroom.
---
# Get out of your *house*
##### sometimes, just go for a walk :walking:
^ As someone who lives in a country which can have temperatures of both +40 degrees and -35 degrees Celsius its sometimes hard to convince myself to leave the house. Working remotely especially when working from home has some drawbacks including the lack of movement. I used to walk 35 minutes to my office when I lived in downtown Toronto, but now its about 15 steps from my bedroom to my office. So on days where you don’t even have to go to the store get outside and go for a walk, if you bike, bike, if you lift weights do that. Working from home, avoids the challenges of commuting but it also means that overall your life has less movement, and humans are not meant to be stationary. I’ve always been a fan of doing weights or stationary biking while listening to podcasts or watching documentaries. It’s a fantastic way to learn new things, and keep active at the same time. Personally I use Pocket Casts for listening to podcasts, since it lets me create a queue of episodes I want to listen to, since I often am only interested in every couple episodes of most podcasts.
---
# How to get a *remote job*
##### Networking, and connecting.
##### There is no magic trick.
^ Now this is likely the main point that many of you have been waiting for, the moment where I’m going to tell you how to land that awesome remote job where you can work from home in your pyjamas, while still getting some exercise, building long lasting friendships, mastering the work-life balance while valuing your time, focus and avoiding burnout. In my personal experience the best jobs, whether remote or in office, come from meeting people you’d like to get to know and work with. All of my best jobs have come from meeting people and having referrals. My current job came from doing a podcast with some friends, a one of my previous jobs came from meeting some other developers at a community tech meetup. Building your network of associates and business relations will lead you to a place where you can work remotely (assuming that’s what you want to do) or working with a team that will help you grow and make the most of your career.
---
# Takeaways
- Monitor your time, reduce distractions (all of them)
- Communicate frequently with your teams
- Pomodoro your client time
- Keep a regular work schedule, regular sleep, exercise
^ Software development is an industry where remote work continues to become the norm of both large and small scale companies. With platforms like Slack, JIRA, Github, Harvest and other tools businesses are able to maintain active employees and contract workers throughout the world. Stipe and other companies boast about actively hiring remote talent. In my experience getting a remote job is no different than getting an in office job. The challenge is maintaining your self discipline and focus when you’re on your own and no one is there to judge what you’re doing. Being mindful of your daily schedule, enabling Do Not Disturb mode, staying active in social channels, while maintaining a steady output of work is critical, to making the most of working remotely. For some people working remotely can become a heavily imbalanced system of working 16 hour days and getting insufficient amounts of sleep. Hopefully some of these tricks and apps can help you maintain a better balance and enjoy working in your pyjamas, and spending more time with your family and friends.
---
## [fit] Thanks!
@mattylantz [twitter]
@mlantz [github]
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment