On Being Freelance and Remote

remote

Two months ago, I shared some updates on my coding journey. The main news was that I was going to start working remotely and as a freelance for my previous employer. Here are some new updates on how things have been working for me since then.

The quick summary is that I’m very satisfied by my new working conditions. Actually, it’s almost a dream come true. So much so that I’ve decided to put on hold my application for the London-based distributed startup I mentioned in my previous post who wanted me as a long-term employee and not as a freelance.

Since mid-November, I’ve been working between 20 and 25 hours a week, with very flexible hours. Every Monday morning, I participate to the weekly planning with the team I’m working with, and I tell them how many days I can work the coming week. They then try to find projects and specific tasks I could fulfill during the week. Apart from a few time-bound constraints (like scheduled remote meetings with some of their final customers), I have almost complete freedom for how I organize my work. If the grandparents take the kids a given day, I can go into the zone and put in 10h in a single day. Or if I have other family-related tasks to get done during the day (like bringing the car to the garage or going to IKEA), I can cram in a few hours at night when the whole family has gone to bed. And if I have the kids for 2 whole weeks during the Christmas holiday, I just tell my client that I won’t be available during that time. That’s it. I don’t have to argue over the schedule or ask any permission.

Of course, this is not vacation. I have some serious work to get done with deadlines. But the key to my fulfillment is the new freedom and autonomy I have found. It’s actually the main reason I’ve decided to refuse the employment offer from the hot startup that used to be a dream job and company for me. Even though they’re are fully distributed and can offer flexible work hours, I will never be able to find the same freedom as an employee that I’ve found as a freelance.

The magic here is that I’m able at the same time to be the main caregiver for my 3 kids, take care of everything home-related (groceries shopping, cooking, cleaning, fixing things, maintaining the car, etc.), find intellectual stimulation and bring home a relatively good paycheck.

Concerning my work as a developer, even though I used to work for the R&D department as a software developer, I now work as an international professional services consultant whose main role is to customize the standard solution to specific customer needs. The R&D provides a JavaScript sandbox and API both server and client side that I now use. In terms of “stack”, I don’t have the same freedom as I used to have when working for the R&D department. Everything I do is sandboxed and the JavaScript engine used for the back-end only supports the ES5 version of JavaScript (or in other words, JavaScript 2009). As for the client-side, I use an API provided by R&D that encapsulates the DOM and we need to write code that can run on IE11 without transpiling (that only supports JavaScript up to ES5). This means that I can never directly access the standard web-APIs, never update the CSS and never use new features from JavaScript 2015 and beyond.

From a purely technical standpoint as a developer, my current role is way less interesting than what I used to do when working for the R&D department or what I would have been using for the startup that wanted me (i.e. work on a full-stack Node/React web application). However, from a business perspective, it is fascinating. What my customer pays me for is as much my JavaScript skills as my domain expertise. After almost a year working in a R&D team focusing on Sales Order Processing, I’ve developed a good understanding of this business domain. Moreover, I’m now working directly with final customers, which means that I have direct feedback on my work. I see the impact of my code and work on very tangible things. Here are a few business needs I had to implement the previous weeks:

  • Update the order recognition for a major soft drink producer so that they automatically ship their beverages at ambient or chilled temperature and at the right destination depending on various parameters found on the order
  • Automatically extract Asian specific dates (e.g. the Minguo calendar where it is currently year 107 or the Buddhist calendar where it is year 2561) and convert them to standard formats in orders for a worldwide customer implementing our solution all over Asia
  • Interface our solution directly with a manufacturer of power tools’ SAP using Web Services so that their employees don’t have to enter data coming from orders manually, which frees them to have more time for more intersting tasks which add more value to the company (like building good relationships with customers).

Scripting in the Vanilla ES5 flavor of JavaScript can still become pretty complex and interesting from a technical standpoint. But as a developer, I still long for more in the future. I want to work on full-stack applications and grow my skillset to be able to design and architect elegant solutions. But this is currently a trade-off I’m willing to make to have this tremendous level of flexibility.

Recently, my eldest daughter overheard a mum saying to her kid on the way to school: “Come on, hurry up, I’m going to be late for work!” She then started smiling and jumping around, saying: “My daddy’s working from home and can have lunch with me everyday!” Below is the face she made. For me, this is worth everything in the world.

daughter

2 Replies to “On Being Freelance and Remote”

Leave a Reply