A few days ago I saw a tweet asking about whether or not working remote was a good idea for junior level developers, and I couldn't stop thinking about it. I've been working remotely for a majority of my career, from junior level to senior level, and I feel I had a few things to share about how I've been able to make it successful.
So you want to go remote? I don't care if you are a junior or senior dev, the first question I'd ask is "who is your support network?" If your answer is "my coworkers" I would caution you from working remote with a team that wasn't already 100% remote. If your answer is "I have a great network of peers that I connect with via Twitter, Slack, conferences and other non-work related spaces" I'd say you have a much better chance of succeeding at working remotely, even if many of your co-workers do not.
Working remotely can be lonely without co-workers walking past your desk throughout the day, inviting you to lunch, or asking about your weekend. If this is your usual "network", you'll lose a good bit of that going remote. The only way for a company to really capture this level of camaraderie is for the company to be 100% remote. That is why if you are connected with supportive, helpful peers via Twitter, FaceBook, Slack or other channels, you have your 'remote' group of co-workers to connect with.
Can Junior Devs Succeed Remotely
I had a few years of small agency work under my belt before starting a stretch of 4 years going remote, but I was pretty green when I started at Lullabot, and I definitely benefited from the fact that this team was completely remote. This was my first experience with version control, or clients that didn't sell yogurt, so I had a ton to learn, and I had to do so without having met a single person from the company in person.
The reason this actually works is that if you work remotely, you've already invested in a workable set of headphones, and are comfortable jumping into a video call. If you work with a remote friendly company, all of your co-workers are similarly equipped. Working for a large, non remote friendly like Microsoft, this is certainly not always the case! I'm always running into co-workers that simply don't have a microphone, or aren't in an environment to take a call, or decide that skype running on a laptop in the middle of a room of 20 people is sufficient for the remote callers to participate.
You get the idea...as a junior dev, you need to make sure you have a team that understands the needs of remote workers, and is there willing to support them. In my years working with Red Hat, they were incredibly remote friendly! Every conference room had a great AV setup. Many people worked from home a few days a week and were among the remote callers, and everyone, I mean EVERYONE had a decent set of headphones at their desk to take a call. Another random thing that Red Hat HQ had that I was baffled to see...or hear missing from Microsoft offices was solid white noise! No, not the kind of white noise to put someone to sleep, but think about how it feels to be having a lively conversation in the office just as the air conditioning/heating turns off................
With consistent white noise filling the office, you could hold a normal volume conversation sitting at your desk, and the person in the cube next to could barely hear a word. All of these things made being a remote employee at Red Hat an incredibly good experience.
Continuing my praise for working remotely at Red Hat, the other thing that they nailed was the value of facetime....like real face to face time. Typically once every 3 months I would fly out to Raleigh to spend a week in the Red Hat tower, meeting with co-workers, pitching new ideas to managers, and having a great time hitting arcades, eating empanadas, fried chicken and other various southern cooking. This cadence was essential in fostering friendships, developing new ideas, and setting the stage for the next 3 months of work.
I loved these visits! But that doesn't mean I wanted to relocate there. It was because it only happened once every few months that this time was so valuable. My experience at Lullabot was exactly the same. Everyone was remote, but a few times a year we'd all get together and harness the energy we got from finally being in the same room together into new ideas, new ambitions, new plans for the upcoming year.
Too much facetime (working in an office) devalues how amazing it is to spend time with your co-workers. Being remote means that being in the same zip code as the people you work with is reason to take advantage of every minute that you have for talks, lunches, drinks, games, laughs and (in the case of Lullabot) lots of hugs.
A lot of people wonder how it's possible to work from home with all of those possible distractions. Personally, I've never been too worried by them. I typically embrace them. Walk my daughter to the bus? That's a win in my book. Make my son lunch? Another win. Talk with my wife about an upcoming field trip she wants to chaperone? I'm glad I was there for that!
Despite the various distractions I face throughout the day, I also think of all of the distractions that I miss by not being in an office. Want my attention? Sorry, you can't walk into my office. You can email me or ping me on Teams. My entire work day is async. No one expects or demands my immediate attention. Sometimes I'll get a message that demands immediate attention, and I will drop what I'm doing to help them out, but that's my choice.
Also, I really love working from a coffee shop for the morning or afternoon. Working remote doesn't always mean working from home. But if you are working from home, be sure to spend some time on your office. Yes, working from the kitchen table can be difficult with a busy household! But if you have a room where you can close the door, put on some headphones, and create some personal space....getting into the groove is easier than it is in the office.
Essential tools you can't imagine working remotely without!— Ben Hong (@bencodezen) January 9, 2018
Thanks to Ben Hong for the question about essential tools. I'll give a quick answer here, though I should do a longer micahgodbolt.com/uses post sometime soon.
Good headphones! I put this at #1 because it is seriously #1. You'll spend a good bit of your day with headphones on, either to be listening to music, or attending conference calls. You need to be able to listen comfortably for a long period of time as well as communicate effectively when it comes time to talk. So make sure they are comfortable. Wireless is okay, but be sure to have a backup if they die in the middle of the day. Don't rely on your laptop microphone or the inline mic in ear buds. I went with a pair of Sennheiser GAME ONE headphones. They are a little pricey, but for something I use everyday, they have been wonderful. Great sound, great retractable microphone, and you don't look rediculous on a conference call like you would if you wore these monstrocities.
Dedicate office space. I said it above, and it isn't exactly a physical tool, but having a dedicate office space is really important to making long term remote work. It's a space you can enter to turn on 'work mode'. This helps family to know when they can, and shouldn't bother you. A home office is also something to take pride in. Decorate, make it comfortable, work towards the optimal monitor/desk setup. It's your space, make it somewhere you enjoy working.
Back to 'tools', other than good hardware, you NEED to have good software. If all you have to connect with co-workers is email, you're in for a world of hurt. Chat software (Slack, Teams, Hipchat, Flowdock), project management, video/audio chat, document collaboration, code collaboration. If there's a missing gap, work towards filling it.
Good A/V hardware at the office. As I mentioned above, a laptop dialed into the Skype meeting isn't a great conferencing tool if there are a dozen people in the room...and even worse if the laptop user is typing, taking notes! Either make sure that the main office spaces used for video calls have dedicated A/V hardware, or at least ask your team to invest in a USB Speakerphone to get the microphone/speaker into a central location, away from any typing keys.
Going remote at a traditionally non remote company
Another great question popped into my twitter feed from Michael Head who asked:
How to land one of those jobs with a tech company that largely prefers collocation (every MS job I see is onsite).— Michael Head (@michaelehead) January 9, 2018
My story at Microsoft is that I initially lobbied for a remote position when I was about to accept their offer. Unfortunately, the team I was going to be working with was pretty adamant that I be on site. To be honest, it was probably a good thing that I was on site for that first year. In a large, non-remote org, there is usually a TON of value placed on relationships and reputation, both of which are hard to do if you are one of the only remote employees. And after spending a few months with my team, I started to understand that it wasn't my ability to do my work remotely that was the concern, it was the teams ability to get the most value out of me. This team was simply used to having everyone within a few minutes walk, and were nowhere near equipped to handle the async or audio/video communication with remote team members.
Getting the remote position
As for how I landed a remote position in a typically non-remote company, it mostly came down to building a reputation, being patient and being persistent.
I was fortunate to be working on a project that was much bigger than the department I 'worked' in. Working on a Design System (Fabric) meant that I was working with teams all over the company, and that my role entailed helping these other teams get set up and working with Fabric. So when I was looking at other departments, hoping to find something remote, you could say that I had a "very particular set of skills" that other groups were looking for. I eventually found a team that was already used to collaborating with people in Canada, the midwest, Europe, so when the topic of remote came up, and they saw the experience I could bring to the team, it was a bit of a no brainer.
So I guess the takeaway points are:
Don't expect to find remote positions published by large non-remote companies. You'll need to 'earn' and then seek out those opportunities by either building up your reputation in the industry, or within the company. If I'd applied for the job I have currently without my year of experience at Microsoft, I might have gotten the job, but I am pretty confident it wouldn't have been remote.
It doesn't hurt to ask about remote. If you aren't in a rush to find work (i.e. currently employed), take your time, be patient and be persistent. I asked a dozen different departments about remote before I found one that wanted me more than they wanted me in the office.