The first of September marked one year of working as a self-employed data engineer. Tongue in cheek, I like to view data engineering as “digital plumbing”.
In essence, ensuring that data flows smoothly through data pipelines and intervening when any data infrastructure inevitably fails.
- choosing the projects I engage
- working with technologies I like
- reaping the benefits of my work
Before transitioning to data engineering, I worked in the metallurgical industry as a process engineer for two years. To me, it made sense to combine my experience in this industry with my passion for computers.
Having registered as a freelancer in Germany, I set out to find my first client.
Leveraging my network
The first three projects I landed were small and came from within my industry network. I delivered a data-processing and visualization tool for a former colleague and hosted two data analysis and programming workshops. One for my former university and another one for my alumni organization. I taught mathematics to university students during my studies and therefore really enjoyed the teaching aspect.
These experiences taught me that fair pricing is more art than science and that project time estimates are always wrong.
Entering uncharted waters
A quarter year later, having exhausted the opportunities within my network, I made my first steps inside the world of contracting. Contractors are placed at companies (usually through recruiters) to temporarily provide additional capacity or missing skills. It’s a great way to quickly build a network across multiple industries and to acquire a diverse set of technical expertise.
Despite the high demand for data professionals, good contracts are highly competitive. This required figuring out a way to demonstrate my expertise despite my few years of experience. This is the moment where the long term effort I put in my public portfolio paid off:
I stumbled upon a German startup that needed help with a particular technology that I had used for a hobby project I shared on the internet. By showing the client that I had already built what they needed (and with some luck) I managed to secure my first contract.
This experience reinforced my belief that it’s not necessarily about “having many years of experience” but rather “having the required skills to solve a narrow problem correctly”.
Securing a second contract is infinitely easier than the first. A successfully delivered project with a positive public review acts as a seal of quality. I felt that recruiters and hiring managers started to take me more seriously.
Enter January 2021. I relocated back to my hometown in Belgium and incorporated myself as “Gontcharov Data Services BV”. Conducting business through my own company protects me from financial liability (and Belgium’s devastating income tax). More importantly, it opens the door to do contract work for “whale” clients such as multinationals.
My second and current contract put me on a large team on a European-level project at a large multinational. Working on such a large scale brings a very different set of challenges compared to contract work for startups. The existing code base is huge and is geared towards large-scale data processing. Hence I get to work with some amazing technology.
Reflecting on the past year
I proved to myself that data engineering can be done in a self-employed manner. I feel I reached a point of relative stability where I’m confident that I can consistently secure good projects. But how did I do in regards to my three pillars of autonomy, specialization, and ownership?
Over one year I evolved from doing small projects for a fixed price to long-term contracts for a daily rate. The smaller fixed-price projects gave me a true sense of ownership and freedom. Although they were less lucrative, I enjoyed them the most.
On the other hand, the long-term contracting projects allowed me to familiarize myself with advanced technology and work with interesting people. Though such engagements reduced my autonomy. Especially when I billed five days per week.
Next year’s objectives
From the onset, even though I work alone, I tried to view myself as operating a business. I don’t intend to hire another software developer. So the only way to scale my revenue beyond a certain limit is to somehow decouple my income from my working hours.
This inevitably means moving away from hourly or daily billing to fixed cost, value-based pricing. And although this transition will likely take several years, I find it important to start working on it already.
Therefore my objectives for next year are to:
- specialize in solving a more narrow set of problems
- market my services towards one particular industry niche
- develop several “productized services”, like my programming workshops
By maintaining a laser focus I hope to one day become a big fish in a very small pond.
Perhaps the most important lesson I learned over the last year is that growth and mastery will take way more time than I had naively hoped. It took me a while to accept this fact. But now that I have, I became less rushed - both during and outside of work.