Software Development Unsplash

From Ph.D. to Independent Software Developer


Life as a Ph.D., even with its ups and downs, is a relatively comfortable life. There is quite a reasonable job security, a project, colleagues, a supervisor. But doctorates have hard deadlines which can't be extended. It forces us to think once more about what do we want to pursue for the future: academic life, a job in the industry, a sabbatical, an entrepreneurial path.

I knew academic life was not for me because of several reasons, which I hope to be able to put in writing one day. Getting a job in a company was a possibility, and I was actively applying to some roles. However, something that always characterized me was the pulsion of learning and starting new things. Starting something on my own was an aspiration, but without a concrete plan until the very last few months of my contract.

Identifying Options

One of the hardest things to do when you want to start something on your own is to identify the options you have. And once you identify them, isolate your value proposition. Of course, back then, I had no idea what the meaning of the words *value proposition* was. During my Ph.D. I had developed several skills, some directly related to my work, some in my free time.

I knew how to build websites. It was something I always enjoyed, and over time I kept updating my skills. My first option was to create a service to develop websites for small shops in my area that didn't have an online presence yet. I developed a website, built a couple of sites to have on my portfolio, including my group's website. However, it was a very time-consuming task, with little joy. Customers are always complaining, I have no design skills, and the competition is fierce.

I also knew how to work with Raspberry Pi's and Arduinos. I started thinking about building a consumer product such as an intelligent thermostat, or a private VPN to use at home. I even contacted friends overseas to discuss options. I had the base code for the thermostat, and I could monitor the temperature of my house at different points and stream the data. I also set up a VPN to work at home, with a private cloud accessible from anywhere else in the world. It was fun, but it was just a hobby. Lots of people could do it much better than me.

I knew that I had to keep thinking about what I wanted to do, time was still passing, and the end of my contract was getting closer and closer. I started contacting startups and small companies to try to understand how someone with my profile could fit into their needs.

The Serendipity

One of my former colleagues, Sanli Faez, was starting his group when we met for a beer. He told me he needed a hand developing software for controlling experiments. During my Ph.D., part of what I did was building instrumentation software to do experiments that were not possible to do by hand. I automatized a lot of repetitive tasks, and that allowed me to build statistics much faster, with measurements running overnight or even for several days uninterrupted. It also allowed me to perform measurements no one could do before.

It was just a random talk that made all my choices crystallize. In that talk, I understood that there was something I could, that very few other people could offer. I possessed a rather unique skill. Programming software for a lab is not just about being a good software developer. It is also about understanding the experiment itself. Very few people have those overlapping skills. I was not only one of those people, but I was also available to start a new project.

Opportunity, availability, and skills is a hard to find combination.

Becoming an Expert

When I started developing software for research labs, I started with what I knew. I was behaving like I saw postdocs acting. I was participating in group meetings, offering feedback. I even participated in a conference showing the software I had developed and the new things I had learned over time.

One day, out of the blue, someone wrote me asking for advice on a program they were writing. I didn't know the person, but they found me on Github, and we had someone in common on LinkedIn. The first time, it was just a coincidence, the second time, it was a pattern that was starting to emerge. Perhaps I was more than just a person developing software.

It is a strange feeling when it hits you. People are seeking your advice on a topic that you were giving for granted. At that time is when you realize that you have become an expert. It is not a choice. It is something that happens when you dedicate day and night to learning about a topic on which very few people are focusing.

Building a Brand

When people start asking for advice, when they seek your opinion or your approval on a topic, you might want to separate yourself from the product. Developing software was allowing me to live, but I didn't want people to know me just because of it. I started to build a brand, Python for the Lab, to separate me from my product. In my long term vision, it would allow me to hire people or to diversify.

I am not sure whether it was a good move or not, but I know people started perceiving what I do as a product. I have heard people talking about my website or my book, without actively realizing I was behind them. I still don't know how to feel about it. I know I should feel proud of having a relatively successful product, but not being recognized for it still feels strange.

Value Proposition and Unique Selling Point

Understanding what a value proposition is, took me a long time. Still, it is something that can be applied to many different situations. In any transaction between people, one person delivers value, and the other acquires it. The perception of the value being exchanged, however, can be very different. In my case, developing software for the lab was a natural task that I learned out of need. I hadn't realized that it could be of any importance for someone else.

It took me a while to find a way of formulating what I was doing. What I realized was that I could save hundreds of hours of a Ph.D. or a postdoc who had to learn what I already knew. Because of my experience, I was much faster at developing solutions than someone starting from scratch. Those hours that the group was saving was my value proposition. Hours are a quantifiable measure. The other aspect is the sheer interest of a researcher in learning or not how to do what I could do. Very few experimentalists want to spend so many hours behind a computer screen.

Once I could formulate the value of what I did, I had to wrap my mind around is why someone would pay me. That is also called *the unique selling point*. In the case of software for the lab, the answer is straightforward: no one else can do what I do. Better said, no one else is available to be hired for a specific project. In labs, most people are doing a Ph.D. or a postdoc. Very few groups have access to support departments that can develop custom software. There is almost no academic gain in developing just software and not producing results.

I was not looking for scientific achievements that would lead to papers.

Being already outside the academic career was my unique selling point. I could dedicate time to projects even if my name would never be close to a paper, perhaps not even in the acknowledgements. That special combination of someone from within the academic environment, but without the need of its validation, is what set me apart from people pursuing a career in Academia. Over time, the brand I was building became another unique selling point was. Python for the Lab is years ahead from anyone else who would start now. That generates a reputation that helps to justify why me and not someone else.

Not everything is straightforward

Up to this point, the way in which I decided to tell my path, it is similar to any successful story you find on how to start your own business. However, things are never trivial nor straightforward. Even though I could define my value and I could understand why someone would hire me, it didn't mean a professor would see it the same way. Ph.D. candidates are normally regarded as multifaceted people who can learn whatever they need to learn to achieve a goal. The hardest to overcome barrier is why would a professor hire someone else, when they already have a Ph.D. who can learn to do it. The equation on hours, time saved, frustration, that I perceived as my value, had a big mismatch with what the decision makers saw.

At some point you have to aknowledge that YOU are the product, and perhaps there is no product-market fit.

After the initial push I had developing custom software, I started to feel the pressure. On the one hand, spending so many hours behind a screen was no longer fun. I know I was delivering tangible products, that people enjoyed, and helped them. But there was no way of scaling up. I could deliver only as long as I could physically be somewhere working. That limited me in geography firstly, and monetary secondly. Moreover, getting new customers started to become harder once my network was running out.

In the startup world, when you reach a point of no-return, you call it pivoting.

It was time for me to come up with new ideas. However, that story is for another post. If you want to know more, you can always take a look at the things I have been building during these years.


Looking in retrospect, I could have saved much time if I would have known what I was looking for. Better said, if I would have had the tools to identify what I was able to do. I spent much time focusing on topics in which I was no expert just because it seemed like the easy path to follow. We all have heard the stories of successful websites and apps. But what I was trying to achieve was a sustainable way of life, one that could give me both joy and enough money to live.

Being able to identify what made me unique was a journey. It is hard to understand at first, until you encounter the same feeling in others. Your life experiences accumulate, and that is what makes you unique. It is not only the technical skills that set you apart but every choice, every experience from your past.

If you want to know more about what I do, follow me on Twitter