Remote Work: What I've Learned from a Decade as a Remote Software Engineer
So, why work remotely? Well, because you can! As a software developer, you’re one of the lucky ones, in that, with a semi-decent computer and access to the internet, you can work from pretty much anywhere. Short of company policies, there’s really nothing that would require you to be at a specific place to do your work. You’re also lucky because you’re working in an industry that actually offers these kinds of positions. And there are more and more of them every day.
The benefits are numerous. You get access to exciting job opportunities around the world without the hassle of relocation and the added expense of living in various tech hub cities. You can stay close to your family and friends. You avoid wasting countless hours being stuck in traffic on your daily commute. If you want, you can even travel the world as a digital nomad.
But remote work also comes with challenges. The lack of face-to-face contact with your coworkers can be isolating, and without proper workflows in place, your productivity can suffer. Additionally, when you’re working on your own, it sometimes requires a lot of effort to be disciplined and/or motivated. I’ve now been working remotely for more than 10 years and have faced many of these challenges myself, so in this post, I’ll be sharing some of my experiences and tips for making the most of remote work.
Remote Employment vs. Freelancing
I started my career as a freelancer. I was finishing university when the mobile revolution happened and the first iPhone was introduced. I immediately jumped on the bandwagon and started building my own apps and contributed a bit of open source code to the newly developing platform. This quickly led to my first commercial freelancing gigs.
While I really enjoyed the variety of work, it also came with some downsides. Ambitious deadlines led to some long days — and nights. Cost estimation and negotiations were a constant hassle. And because of the nature of freelancing and working with many clients, I didn’t ever quite feel like I was part of a team.
Knowing what I know now, to make the most of remote work and to best advance your career, I would recommend full-time remote positions over any freelancing gigs. This is a recommendation I’m not alone in sharing. First of all, focusing on a single bigger product is more fulfilling work, as you’ll be able to shape the product more over time. But another benefit is that as you integrate with your team, you’ll be able to learn more from your peers and feel like part of a collective. That’s something that’s just not possible with the occasional freelancing gig.
Joining the Right Company
If there’s one thing you take away from this blog post, then please make it this: Find the right company to join. I know this is a fairly obvious thing to say about any sort of employment, but keeping this in mind is even more important if you intend to work from home. The company needs to be fundamentally set up for remote work, and it has to be the right fit for you personally. If either of those is not the case, you’ll have a miserable time.
The right company is one where a significant part of the team is already distributed. It needs to already have workflows in place that ensure communication is handled in a way that works for a distributed team. Over the years, I’ve heard plenty of stories from fellow remote developers who were complaining that they felt like they were an outsourced part of a company instead of being considered part of the team. They were constantly out of the loop and simply didn’t know what was going on. They had no personal relationship to the rest of the team. What they did here is they joined the wrong kind of company.
To avoid making the same mistake, be sure to ask the right questions during your interview: How many team members work remotely and how often? Are there any expectations about office hours? How is communication handled across timezones (especially meetings and announcements)? Where are workflows written down? How does the mentoring and onboarding process work for remote employees? How well are tasks specified and how are they assigned to engineers? How can people ask questions? How does code review work? Where’s all the documentation? Does the company hold retreats or similar team activities?
The company also needs to be the right kind of company for you. Finding motivation to work, with all the implicit motivators of an office environment removed, can be challenging. Without finding enjoyment in your work, you’ll have a hard time starting your day in the morning and an even harder time ignoring the distractions of a casual home environment. To find the right fit for you, ask yourself if you believe in the product you’d be working on. Is the work challenging? Will you be able to learn and grow? Would you feel like you’re making a difference? Do you like the team? Do you share the company values?
Fighting Isolation
We humans are a pretty social bunch. Being able to get along in large groups was, after all, one of our key evolutionary strengths. As such, most people naturally crave face-to-face contact with other people, and your job, being a big part of your life, has to also somehow satisfy this need. This is, of course, significantly more difficult in a remote environment, where there are no opportunities for the occasional watercooler socializing.
Thankfully, due to the wonders of the internet, even this can be overcome — with some effort. One thing we’ve been pushing recently at PSPDFKit is to do more video calls, both for individual 1-on-1 chats and group meetings. While this can be more disruptive than email or Slack messages, it’s often more effective. At the same time, you also get the opportunity to see your coworkers face to face and perhaps do a bit of chit chat. To take this a step further, you can try donut calls — scheduled casual video calls with your coworkers, in which you’re not supposed to talk about work. We started doing these some time ago, and thus far, everybody is loving them.
If you’re working at the right company, you might also get the opportunity to see your peers on company retreats. At PSPDFKit, we’ve now been doing company retreats for a few years and they are a constant presence in everybody’s top reasons for working here. Some teammates have even started to group up and do some traveling together before and after the retreats. Going to conferences is another great opportunity for socializing, both inside the company and with other developers, all while learning some new skills. That said, asking about the company retreat and conference policies is another great thing to do during a job interview.
At PSPDFKit, we’re also fortunate enough to have a small office in Vienna. Most of our teammates from Vienna mix working from home and going to the office. If you have access to a setting like this, then it’s another great option to see your coworkers more frequently. For the rest of us, it takes a bit more effort. The company encourages everybody to visit every now and then, and I personally try to do this at least once or twice a year. It’s nice to spend a few days in the office and leverage the time for some face-to-face meetings. And in addition to that, Vienna is a great city to visit so I always mix work trips with a bit of personal leisure time.
Finally, if you’re at a company long enough, you’re bound to develop some lasting friendships. Take advantage of your distributed team and go visit your coworkers. You’ll see a new place, see your coworker and friend, and get a local guide — a great package deal if you ask me.
Scheduling Time
Remote work usually also comes with the freedom of managing your time on your own. This can be a great perk to have, but if you’re not careful, it can also be what destroys your social life. To ensure this doesn’t happen, be sure to set some ground rules to separate your work time from your family time and/or free time.
For me, the basic rules are pretty simple: Don’t work on weekends, don’t do chores and errands during work time, match my work hours to those of my significant other, and find time for at least two longer vacations a year. Of course, there can always be exceptions, but you should set up an ideal goal that you strive to meet.
Some of these goals will take some effort. For example, I was never a morning person. I used to start working in the afternoon and extend the work day late into the night. With my girlfriend working 8 a.m. to 4 p.m., it meant we just didn’t get any time together, so I forced myself to start earlier. After a slight period of adjustment, it’s no longer an issue.
I like to do my work in one big chunk, and I don’t take a lot of breaks in between. You might have to do a bit of explaining to justify why the dishes have not been taken out of the dishwasher and put away, despite being at home the entire day, but being able to spend the evening together with your family should be a good enough argument on your side.
The Workspace
Working remotely also means you’re in charge of your own workspace. Some people like to work at a coworking space, some go to coffee shops, and some work from ski resorts. I personally keep it rather boring and usually just work from home.
That said, one thing that helped the most with my productivity in this regard was realizing I needed a place meant just for work — a home office. I don’t always work there — as a matter of fact, I’m writing this on my terrace while taking advantage of a warm spring day — but it’s invaluable to have the office as a place to retreat to if I need some peace and quiet to concentrate, especially if I’m not home alone and things get noisy. A separate room for work can also provide closure — when you leave it, you can leave work behind. While this was never an important factor for me personally, I do know it’s key for many other remote workers. That said, if you don’t have the space to have a dedicated office, perhaps just have a designated table and think about investing in some good noise-canceling headphones.
The Takeaway
So that’s it from my side. If you’re already in a remote work environment, I hope the above can give you a bit of inspiration for what you can do to overcome some of the challenges that come with it, along with a few ideas to pitch to your company to make remote work better for everyone. And if you’re just considering switching to remote work — don’t worry. It might take a bit of effort, and it’s not always easy, but in the end, it can make for great work environment — one that is in many ways superior to the good old office space.
Matej is a software engineering leader from Slovenia. He began his career freelancing and contributing to open source software. Later, he joined Nutrient, where he played a key role in creating its initial products and teams, eventually taking over as the company’s Chief Technology Officer. Outside of work, Matej enjoys playing tennis, skiing, and traveling.