I originally published this on my blog in October 2018. I hope this post serves you well in these strange times. Hold on 💪.
In this pompously titled post, I'm going to share a few tips on how to be successful in working as a remote developer.
⚠️ I'm going to focus on developers in this post, as that's where my experience comes from, and I would argue that these tips can help any remote employee.
I'm not stating that no other way works, I'm just sharing what worked for me in my experience so far (10+ years = 3+ full-time remote + 7 freelance). Yes, there's a difference between freelance and full-time remote work, but we won't tackle it in this post. However, I will say that remote work is easier because you don't have to go around and chase new work/clients yourself, on top of actually finishing projects on time.
In some cases, this may feel like a 'tough love' or exacerbating kind of post, but it's not my intention to discourage you or come across as an asshole. Totally opposite, my hope is that these tips will help you and my intention is to motivate you to go and do/become more 💪
I'm all about the Pareto principle. Meaning, doing the few things that give you the biggest bang for the buck. But here's the catch, it means doing these few things in the best possible way.
My two 'must haves' can be summarized like this: do the actual work and overcommunicate that. Everything else is a 'nice to have'. So, without further ado, let's get into the details of these...
If you prefer the audio version, my friend and coworker Shawn Milochik and I recorded an episode about this on our DevThink podcast, so check that out.
If there's one thing that you get from this post, let it be this:
⚠️ There's no such thing as over-communication in remote work.
Communicate clearly, communicate often.
Here's the thing; if you're in the office, your boss sees you in the office. If you're not, how can you communicate trust to your boss that you are working and coming to work every day at the agreed time? Here are a few things that I did, and that I suggest new folks joining my team do:
Commit more often
- if you commit once every few days it could be seen as if you're not at all working. Or, potentially worse, outsourcing your stuff. Don't be this guy. However, if you do, then don't surf the damn Internet at that time - instead, spend the time to improve the business at which you're working in some other ways
Keep a detailed time-sheet log of everything you do and share it with your manager and your PM daily
- you don't have to go and document when you went to the bathroom and stuff, but each time you commit something put it in your log with the time when this happened. At the end of the day, create a summary of what you did and send that to your manager and PM (Project Manager/Product Owner) in a nice short bulleted list.
- some may see this as an overkill or micromanagement - I see it as working towards 'making it'. Some may argue that you already gave your update on the standup. I agree and will repeat: there's no such thing as overcommunication in remote work.
- the added benefit of writing these summaries is that you're already getting prepared for your yearly review, and in cases, someone comes in and asks 'hey what were you working on Monday?', you'll have a quick and concise list of things to show them. In my eyes, it's a win-win situation for minimal effort.
Check your spelling in formal communication
- when replying to official emails and in tickets, make sure to check your spelling. There are tools like Grammarly these days that can help you with that.
Become visible in informal communication
- you may be more on the shy side, and I get that but try to invest some time to:
- add 👍 and 💪 to someone's messages in #random or #general channels
- write happy birthday wishes
- post some links that you read and ask for feedback
- create polls
- share a funny image/video
- share an educational post/video/course
- you may be more on the shy side, and I get that but try to invest some time to:
Jump on a video call
- Whenever you have to discuss some idea or get some tips for solving some bug that you can't seem to figure out, prefer video over chat. It will help you to get to know the people you're working with.
- While you're on that call and when you resolve the working problem that you had, stay a bit longer on a call and get to know the person that helped you. Ask them how they're doing. But again, use common sense. Soon you'll figure out who likes to share stuff and with whom you can bond and with whom you can't.
- I'm not saying you should waste someone's time, but everyone needs a break, so use that time to be nice and genuinely get to know someone on your team. Kindness pays off in multiple ways.
- Pro tip: don't force it.
Meet in person
- Remote friendly companies get the value of this, and they get their remote employees at least once per year to the main HQ office. Accept that kind of invites!
- Even if your company doesn't pay for the trip, I'd argue that you should invest money to go to the main HQ office and spend some time there.
- Don't try to work your usual output while in the office. Instead, use it to mingle and chat with people.
- Don't restrain yourself just to the people in your team or department. I found that conversations with people from other departments helped me see some pain points they experience and was able to help them.
Use your 1on1 time productively
- come prepared to your 1on1s with your manager. If there's something that needs to get resolved, communicate it sooner rather than later.
- set goals and aspirations with him on what you'd like to achieve in the coming year (see if you can extrapolate this to personal goals like 'learn to play some song on some instrument')
- show passion and willingness to progress
- share your ideas and ask for feedback
- he's there to help you (at least I think he should be), so use that
If you wiggled your way through the hiring process in some company and got the opportunity to work remotely only to drag your feet around and do just the bare minimum to get by, then stop right here and don't read onward. You should be proud of your work, and you should strive to get better at it. I won't go into a debate of why, and I'd argue that if you're not liking what you do, then you're in it for the wrong reasons, and unfortunately you won't last long.
So, do the actual work: close tickets, add ideas, research, document and share your findings of how you think something can be improved.
Without this, you can be the best communicator ever, but if you're not doing what you've been hired to do, then you don't need me to tell you what will happen.
Don't Be a Jerk
Say you're the new breed of the term most true senior devs despise; the super⭐ 🦄. And say you truly rock in terms of closing tickets.
That's all nice, but it will only take you so far. Don't be a jerk! If you're so good, then share your knowledge, document it, help others, be proactive in spreading this awesome knowledge that you have!
There's more to a senior developer than just closing tickets... Become a go-to guy for something specific in your company, and willingly help anyone who asks you about it. Take it a step further and become a leader in your team!
Work-life balance gurus will diss me for saying this, but be prepared to go an extra kilometer (miles are overrated). Here's my why behind this:
- you will quickly show that you know what you're doing
- you'll earn respect from your peers
- you'll come across as a hard-working, willing to help and goal achieving person that you are
You ask me how should you do this? Well, remember those 2 hours (on average) that you've gained for not having to commute to work? Use them productively to get ahead at work.
If you still don't want to use it to sharpen your axe (sorry grammar,
axe sounds stronger than
ax), go for a walk/run and listen to audiobooks (Audible is worth every penny) while you do that. You'll get two birds with one stone: exercise and reading (OK, listening, but you get my point).
Don't kill yourself
Working extra is, I would argue, needed to prove your worth and I can assure you that the majority of people that achieved something that was important to them worked their ass off at some point in their career.
I'm by far the model to follow there and am working on it. Slowly.
However, even I would be stupid not to say that there are only so many hours in a day that you can be productive. So, do what you can in a day, and take a well-deserved break. Play with your kids, go out with your friends, take your wife for a date, go play some sport, take a dog for a walk, work in the garden... Whatever works for you, just go out and away from the computer.
There are a vast number of books on the topic of time management. One that I always recommend is Time Management Made Simple by Brian Tracy.
In case you don't have the time to read a book (here's simple math on why you actually do and how you can read at least 6 books per year), look into the pomodoro technique (you can learn it under 5 minutes) and apply it to your day. I challenge you to do 8 true pomodoros in a day. If you do, do it consistently for 2 weeks. After that feel free to send me a 'thank you ☕' for the increased productivity that came out of 'nowhere'.
If you have the luxury of choosing the time when you'll work, I suggest you learn about yourself in terms of when you work the best. Is it morning, afternoon, night? Just make sure to communicate that to the team, so that they know when you're available.
Work in your teams' timezone
This may or may not be possible depending on the timezone you're in. If you can, great. If you can't, make it work as best as you can. Common sense works best. People will adapt as long as your contributions/replies are often/timely.
My friend and coworker Shawn Milochik and I did an episode about Time management and productivity on our DevThink podcast so check that out in case you want to hear more about this topic.
Preferably prepare the night before, so that when you get to your dedicated place to work (see below) in the morning, you know what's first on your plate.
This is your career we're talking about, not a walk in the park, so don't take the value of preparation and having big goals too lightly.
Be it your special room in the house, your closet, or whatever, just make sure it has doors. What I mean by that is that it's so easy to get distracted in a home environment and even your family members may not understand that you're working.
So, setting some kind of a home office is, trust me, crucial. Especially if you have kids; you won't be able not to greet them when they walk past you. And just like that, you're out of the flow and good luck getting back.
Some people prefer coworking spaces, but I'm firmly against that, as it's just yet another office environment. Especially if there's an open-floor environment. No, thank you. YMMV.
Some people tend to experience 'loneliness' while working remotely. If that's you, consider going to meetups. If that's not you, go to meetups either way. It's a breath of fresh air to meet and speak with the people who are interested in the same topics as you are, and you may learn a new way of approaching things.
Any tool can be a lever or a crutch, use them wisely. Here are some tools I use on a daily basis:
- Slack - who doesn't use or at least know what's that? Emoji's FTW 💪
- Gmail - the Boomerang and Mailtrack plugins are great
- Google Calendar - if you're trying to set up a meeting in your organization it helps immensely if your coworkers share their calendar with you - it makes setting up meetings so much more hassle free
- Evernote - I use it to track all my time sheets, as well as all other notes
- KanbanFlow - task management app with a Pomodoro timer
- RescueTime - never fool yourself with how productive you were while at the computer
- Dropbox - put the stuff that you can't afford to lose here. If you're super concerned about privacy, then check out Syncthing.
- TextExpander - subjectively, this tool saved me from a lot of repetitive typing
Would love to hear in the comments what are the tools you use to stay productive/save time?
Remote work is not easy and remote work is not for everybody. If you don't possess a certain level of self-discipline, you'll have trouble working remotely.
However, as with almost everything in life, you can get better at it if you work hard for it and that's why I hope some of these tips will help you.
You may agree, and you may entirely disagree with these tips. They worked for me, and they may not work for you. When applying anything from this post, use your common sense.
Don't try to go and implement all of them at once. This doesn't work with almost anything in life. One example that probably all of us had experience with a similar statement:
I'm going to lose 20 pounds! I'm going to do that so that I'll stop eating all the sugary stuff, going to start running every morning for 5k, going to... And all of that starting this Monday!
We all know how those resolutions end up. Therefore, start implementing things one by one gradually, and move to another thing only once the previous one has become a habit and something you 'just do', and not have to think about. In case you're interested more about habit forming and similar good stuff, an awesome guy James Clear has a blog about it, and we almost always mention his articles in our podcast.
I'll end this post with butchering this well-known quote a bit:
Achieving anything worthwhile almost always means living a few years of your life like most people won't so that you can spend the rest of your life like most people can't.
A social network for devs?
Level up every day