Skip to main content

Disadvantages of working remote

Just ranting it out loud, I am working remote for the past two years for a startup and there are many advantages of working remote but there are many disadvantages also.

  • Its hard to chase people over phone. As people wont pick up the call or they wont reply to Instant Messages. So you are stuck in your chain of thoughts cursing the monitor.
  • You miss the coffee talk.
  • You miss what's going on in the office and really dont know whats going in the company.
  • In meetings you could be writing code and its easy to get distracted over phone.
  • Some people prefer to chat over talk and thats a pain because you already miss the social connection and typing is always a pain.
  • You miss all company dinners and lunches.
  • Because you save time on travel you tend to overwork.
  • Worse if you are working in a different timezone then people would disturb you off hours.
  • Lots of time is spent in trying to screen share or do go to meeting.
  • People will prefer to talk to person in house and unless you are a rockstar and only you can deliver the feature mostly people will prefer in house person.
  • Lots of things will get discussed in adhoc passageway meeting and you would miss all of that.
  • Dealing with HR is a pain. As you are remote you dont have the luxary of walking into their cube and getting your work done. I am literally screwed on every work that needs to flow through HR. Communicating with them on email leads to frustration and all you can do is curse your monitor.
Also check my post on Advantages of working remote


  1. Kalpesh, I understand that VERY good, I've been working in such mode for 3.5 years with timezone offset 9-10 hours.

    Last half of year of my working remotely I ended up almost completely shifted to the timezone most of the people work, which meant for me - working from 1-2pm till over-midnight pretty much all the time.

    I think I worked remotely more than enough in my life so far :) Now I'm enjoying coming to the office and talking to people.


Post a Comment

Popular posts from this blog

RabbitMQ java clients for beginners

Here is a sample of a consumer and producer example for RabbitMQ. The steps are
Download ErlangDownload Rabbit MQ ServerDownload Rabbit MQ Java client jarsCompile and run the below two class and you are done.
This sample create a Durable Exchange, Queue and a Message. You will have to start the consumer first before you start the for the first time.

For more information on AMQP, Exchanges, Queues, read this excellent tutorial
import com.rabbitmq.client.Connection; import com.rabbitmq.client.Channel; import com.rabbitmq.client.*; public class RabbitMQProducer { public static void main(String []args) throws Exception { ConnectionFactory factory = new ConnectionFactory(); factory.setUsername("guest"); factory.setPassword("guest"); factory.setVirtualHost("/"); factory.setHost(""); factory.setPort(5672); Conne…

Logging to Graphite monitoring tool from java

We use Graphite as a tool for monitoring some stats and watch trends. A requirement is to monitor impact of new releases as build is deployed to app nodes to see if things like
1) Has the memcache usage increased.
2) Has the no of Java exceptions went up.
3) Is the app using more tomcat threads.
Here is a screenshot

We changed the installer to log a deploy event when a new build is deployed. I wrote a simple spring bean to log graphite events using java. Logging to graphite is easy, all you need to do is open a socket and send lines of events.
import org.slf4j.Logger;import org.slf4j.LoggerFactory; import; import; import; import java.util.HashMap; import java.util.Map; public class GraphiteLogger { private static final Logger logger = LoggerFactory.getLogger(GraphiteLogger.class); private String graphiteHost; private int graphitePort; public String getGraphiteHost() { return graphiteHost; } public void setGraphite…

Jersey posting multipart data

This took me sometime to figure out mostly it was because I was only including jersey-multipart-1.6.jar but I was not including mimepull-1.3.jar.

So the intent is to upload a file using REST api and we need pass meta attributes in addition to uploading the file. Also the intent is to stream the file instead of first storing it on the local disk. Here is some sample code.
@Path("/upload-service") public class UploadService { @Context protected HttpServletResponse response; @Context protected HttpServletRequest request; @POST @Consumes(MediaType.MULTIPART_FORM_DATA) @Produces(MediaType.APPLICATION_JSON) public String uploadFile(@PathParam("fileName") final String fileName, @FormDataParam("workgroupId") String workgroupId, @FormDataParam("userId") final int userId, @FormDataParam("content") final InputStream content) throws JSONException { //.......Upload the file to S3 or netapp or any storage service } }
Now to tes…