Hi, my name is Carlos, and I am a first time writer. English is not my native language, so any corrections are welcome. :)
I want to share some insight on working as a remote developer.
Working as a remote developer is harder than working in an office. I have worked remotely for 4 years and working remotely requires a lot of commitment and change several conducts you have while working in an office.
There are two types of remote development, one as a freelancer, and one being hired by a company to do remote work daily. In this post, I'd like to talk about the second type.
We can discuss the freelance life later.
First of all, landing a job like this is pretty easy nowadays, several companies are adopting this line of work because modern technology and infrastructure allow for constant communication and control over processes remotely.
Most companies will allow you to work on your own time and with your software, this "freedom" usually comes with several conditions and limits.
- You will have to deliver the product in time, doesn't matter what issues you had through the day or week.
- Commitments are closed to discussion. If you have an ETD or ETA (Estimated Time of Delivery or Estimated Time of Arrival) it can't be moved.
- You'll have to be online at certain hours to discuss items with the team and with your superiors. Sometimes this is an issue for some people, for example, if you like to work at night.
Besides those limits, there is also a high need of commitment from you, you will be handling how many hours you work every day, how you want to distribute those hours, and how much work you want to get done towards the next goal the company set for you.
This means you have to have a very strong force of will, you can't have many distractions through your coding/working sessions. And make sure you are making enough progress to deliver on time and don't overkill yourself with last-minute tasks.
My advice if you want to go through this line of work, or if you are already working remotely is:
- Use social networks the minimum you can, expend only some minutes, max an hour.
- Learn to do good procrastination. If you are tired of working for a day, read a book, improve another skill, read about some other tech you are interested in. But always remember you have to get back to the task at hand.
- Commit to work a certain number of hours every day. Those hours should be enough to advance and get the job done.
- If you are stuck with something, spend some minutes trying to figure it out yourself, if not ask asap. Google, Stackoverflow, and several other sites like dev.to are your best friends.
- Install a tool like stretchly (https://hovancik.net/stretchly/) to help you take the necessary breaks through the day.
- Learn Kanban and use a Kanban board to organize your day.
- Plan every day in advance.
And the most important item.
- Don't forget to spend time with yourself, your family, practice your hobbies, eat, have a beer or a cup of coffee, walk and enjoy life!