Working remotely

Many people have experienced working from home for the first time in the past few years due to the COVID-19 pandemic, and many want to continue doing it. I don’t blame them. I am lucky to have had the opportunity to work from home (or remotely) full-time since 2014. Before that, I worked from home a few days a week as a software engineer for HomeAway (acquired by Expedia.com) in Austin, TX.

Working from home has enabled me to save time by not having a commute and having fewer meetings to do more things that I enjoy, for example, writing posts like this and many more that I never published—going for long walks, taking road trips with the family, and even traveling abroad for more extended periods. However, not everything has been perfect. I do miss the in-person interactions with colleagues and even strangers. Going out to lunch with co-workers, having to wear more than shorts and flip-flops every morning, and having a clear separation between home and work.

Having a clear separation between home and work was probably the hardest thing to do initially, but it is under control now. It is too easy to end up working endless hours with the excuse of how important work is, and continue doing it all of the time when you are home. The truth is, your personal life will always be more important than any job, but understanding this and separating your work from your personal life requires a lot of discipline when working from home.

Some people are not qualified to work from home, and I am not talking about the people who are needed to be in a place physically to do their job; instead, I am referring to the people who are easily distracted and can’t focus on their work and end up slacking off instead. Working from home and doing it successfully requires discipline and effort.

Working from home is feasible and probably the best way for some people to work nowadays. If you can do your job from a computer, then I don’t see why a company wouldn’t let you work remotely if that is what you desire. At the same time, some people enjoy going to an office, working with others, having in-person meetings, etc. The ideal situation is to have a balance, but it is essential also to be part of a team where there is general agreement about the work location and hours.

I am unsure if I will continue to work from home forever, but I know that it has been a positive change in my life for many years. It has made me more productive as I can focus on my work better, and it has also helped me financially as I don’t require a second car, and I save some money in gas and food by not going out to lunch as often as I did when I worked at an office.

In addition, I am trying the four-day workweek, and so far, it’s been positive for me, my team, and my company. I feel more energetic when I am working, I feel happier, and my work-life balance actually exists. When I am not working, I use the time to pursue my hobbies, which also benefit my job. I like keeping up with technology and changes in programming languages, architecture, etc. And more importantly, I feel that I am no longer in this rat race.

Even when I still have a work routine, it is well-balanced, and I have enough time to decide what I want to do with it.

My ultimate goal is to wake up every day and do what I want, where I want, in the terms I want. That is happiness for me.

Ideal Workspace for Developers

Before becoming a software developer, I had no clue what this job required or what did a developer did through the day. Many years later, I have a pretty good idea about the workload and can share some advice on what the ideal workspace for someone that writes code is.

First of all, let’s get something clear, software developers do not write code all day, it isn’t the same as writing a blog post or anything else. Working as a software developer is something like 20% code writing and 80 problem-solving. This 80% involves thinking about a problem or a new feature. Sometimes this is a back and forth exercise where the input of other developers or other collaborators might be needed. It isn’t until you have a pretty good understanding that what can be done that you actually get to write software. And because of this, a quiet place with little or no distractions is needed to be productive.

A quiet and distraction-free place

Image credit: https://stackoverflow.blog/

A quiet place is preferred and often required if you want to focus on a problem and a solution. Many companies have resourced to open office spaces with the idea that this sparks collaboration and communication between employees. I can tell you from experience working for years at an open plan office, it doesn’t work for thinking, focusing, or getting things done. When you walk into an open plan office the first time you’ll notice is people wearing headphones, and if you look closely, many of them will be wearing noise-canceling headphones. Software developers need a quiet place to work, private offices, a spacious cubicle, or a desk at home are ideal places for this type of work.

A distraction-free work area is also important, this isn’t to minimize or avoid collaboration, the idea is to not let co-workers or other people or situations have access to a software developer unless there are a clear need and an intention to do it. And don’t worry, people can still just chat or hang out at times when walking on a hallway or via an electronic communication channel.

A comfortable chair and a good size desk

Image credit: Autonomous.ai

While it is OK to use any coffee shop chair or your couch at home, any longer-term seating setup needs to include an ergonomic chair and a stand-up desk preferably. Anyone who spent hours in front of a computer screen will benefit from a good ergonomic chair and a stand-up desk. The right size desk should fit at least two large computer monitors and a laptop, this is a very common setup for software developers.

If you are looking for a good quality desk and chair at a reasonable price I recommend the Autonomous.ai standing desk and chair. I’ve owned both for a while, and I’m pleased with it.

When working from home

If you are a remote worker, having a quiet and distraction-free place is also necessary. This isn’t difficult to achieve, most people working from home will enjoy from a quiet home during working hours as kids go to school and spouses will be at an office, or working at home and focus on their own tasks.

If you work from home and don’t have a spare room or office to work from, find a quiet corner away from the front door and the kitchen (which tends to be a place for families to hang out). Your bedroom might be the perfect place for it, that is if your partner allows it and you are disciplined about working and non-working hours.

When working from a coffee shop or other public space

Ideally, you’ll find a place with comfortable seats, good internet connection, and great coffee and reasonably priced snacks. This isn’t always possible, but if you spend enough time to find the right place(s), you’ll be surprised at how accommodating public spaces can be for you to get stuff done. You’ll need to be prepared to work at these places and to do it successfully I recommend you read this blog post which includes tips and advice about working successfully at coffee shops, etc.

Conclusion

The ideal workspace for software developers continue to be a private office and having the option to work remotely whenever needed. This gives the software developer both a quiet place and a chance to work the hours that are more convenient for her/him. The private office can only help so much avoiding distractions, the best thing to avoid distractions is to form a culture of independence where people collaborate when necessary, without interrupting a co-worker, especially if it isn’t without a purpose

The advice above is by no means a recommendation to isolate software developers. However, to do their job and do it well, software developers need the time and space to focus and work on hard problems and to create solutions. Software developers will always be able to interact with others whether in person or online when needed to collaborate or just to socialize. What’s important here is to have that quiet place when you need it.

 

How to successfully work from a coffee shop, or from anywhere!

I have been a software developer for many years now, and for the last 5 years, I’ve been working remotely 100% of the time. What does this mean? It means I’ve been working primarily from home, but it doesn’t mean I’m always home; instead I try to balance my time between multiple places inside my house AND more importantly, I go out and about when I can and when the weather permits it.

Working from a place other than your home is essential in my opinion, having a different environment, a different view, and a different location to code is stimulating, and if I might say it, empowering and motivating too. Many times I will walk outside my home and just pick a random direction, but I’m lucky to live in Seattle (just moved here recently) where I know I’ll find a coffee shop (and a good one that is) in almost every block.

What happens if you don’t live in the city you might ask, well, the majority of my time as a remote software engineer I lived in the suburbs of Austin, TX. Of course, my options were much limited than now, but none the less, I was always able to get in my car and drive to a coffee shop or any other place with a good WiFi and simple food and beverages at reasonable prices, like Panera Bread for example.

OK, so enough about my own experiences and on with the tips. Below is a list of things that will help you be more successful when working outside of your home, at a coffee shop, at the airport, at a restaurant, etc.

Here’s what you are looking for

  • Portable power
    • This is by far the most essential item to have, never assume that your laptop or tablet will have enough power to last as long as you need. Invest in a portable battery that can charge both your laptop and other devices such as your phone or tablet. Personally, I use an Anker portable battery, and it is enough to fully charge my laptop once + my phone.
  • Good headphones (ideally noise canceling + mic)
    • Why? Well, as a programmer I need to focus on my code, and public places tend to be full of noise. While I don’t use them all of the time, they are definitely a handy item to have when working outside of your home and in a noisy environment. Also, if you collaborate with other people, make sure to get headphones that include a mic so you can have a conversation with your team when needed. I use the Bose QuietComfort headphones, and while they aren’t cheap, they were a good investment for me.
  • A good cell phone plan (with unlimited data preferably)
    • I cannot say this enough, you need to make sure you can provide yourself with a good, fast AND secure internet connection to your laptop or tablet when working outside of your home. Yes, nowadays coffee shops and most public spaces do offer free WiFi, but most of the times the speed and the security of these WiFi connections is questionable. If the free WiFi at your local coffee shop is enough for you then fine, but for me, it is not. I recently switched from Verizon to T-Mobile which has an unlimited data plan (and it even works internationally!). It costs me less per month, and it works much better for my family and me. I often turn on my Personal Hotspot to share my data connection with my laptop, it has saved me from poor free WiFi connections many times.
  • A newer laptop/tablet
    • While it isn’t required of course, with a more modern device you’ll benefit from the longer battery life, and while you’ll want to carry a portable battery, it is still a good idea to have a laptop or tablet that has a great battery life, if possible. I recently got a Microsoft Surface Book 2 from work and the battery life is pretty good. Tablets in general also enjoy a great battery life as many other light laptops do such as the MacBook Air, etc.
  • A great backpack
    • This is important, while any backpack will do to carry your laptop, portable battery, multiple charges, and other cables, headphones, etc. I do recommend getting something that can help you organize these items quickly and also comfortably. I have been using this backpack for a few years, and while small, it can carry all of my devices, a 15″ laptop, an iPad Pro, a mirrorless camera and a Kindle along with my cables, portable battery, and a few other things. The backpack is compact and very comfortable, and this is the reason I like it. I can walk for miles with it, and it doesn’t bother me, and at the same time, it’s small enough to place it by my feet anywhere I land. It also fits perfectly under airplane seats.

This is all folks, these are the most important things I can think of that has helped me be very productive while working remotely and outside of my home. If you have other tips, please share them below in the comments.

Portability vs. Extra Power – What type of laptop to use when writing code

If you had the option to select a laptop for software development, and the options where between something portable like a very capable ultralight laptop, or a much bigger, and much powerful laptop, which one would you choose?

The specific models aren’t important really, as you might be reading this post many months or perhaps many years after and so the particular laptop models today, would be irrelevant in the near future. What’s important here is the idea of getting a much lighter but capable laptop for software development instead of getting a much more powerful laptop, with the drawback of being much more prominent, heavier and less battery efficient.

Why the need for portability?

As a software engineer working remotely 100% of the time AND someone who likes to travel and visit coffee shops, portability is something I’ve always appreciated when it comes to my gear. However, as I continue to get more involved with larger projects, the ultralight laptops I’ve used so far aren’t cutting it anymore. In general, laptops are much lighter and much powerful than ever before, but if you want or need a laptop with at least 32GB of RAM and a Quad processor, then you’ll have to compromise and get a bigger laptop.

Today, more and more people can work remotely, and many of them are taking it a step forward by traveling around the country or internationally and getting work done while on the road. I’ve done this a couple of times and while it isn’t perfect when it comes to communication with your team due to time zone changes, etc. it works well for many people as long as expectations regarding time and availability are well-defined between the members in the team.

Continue reading →