Around three years ago, a day I will never forget, a day that changed the course of my life. Marked the beginning of both my personal life (the day that my dear daughter was born) as well the day that the legendary entrepreneur and investor — Eyal Gura called me and asked me to join the visionary team at KolGene together with Dan Faszczyk and build a revolutionary idea — a marketplace for genetic tests which turnout to be a platform to managing all genetic tests of the hospital. And the rest is the history :)
This post will not focus on how we raised our first seed round (but we did!) Or about how we made a successful pivot and acquired our first customers (hard work!) and all of the other fuck-ups we encountered along the way. But rather, about my personal journey to becoming and being a CTO. I was recently invited to talk with Zell students about what it means being a CTO in a startup world. While preparing for the presentation I became inspired to share and write this blog post.
The first thing you need to understand is that a CTO position ranges from company to company (Like every position!).
For example, a CTO of a small startup is very different to a CTO of large corporate company. The first requires you to do everything — from the product, tech, managing and of course developing all by yourself. While simultaneously acquire investors and attend meetings. While a CTO in a large corporate company is far more tech only oriented, where your main responsibilities are to find out the right tech stack for a company product and explain it to the rest of the companies stakeholders.
Prelude: Personal experience
I was lucky enough to be able to observe various CTO’s in different companies embarking on different stages: from corporate to fast-growing startups like Gett. But, since this is mostly about my journey let’s talk about my personal journey to becoming a CTO. For years I was “the” go-to guy, the guy that everyone looked to for solutions for all Android development. During my time at Gett, I was lucky to be able to learn backend and experience various architecture-growth problems and then KolGene happened which required me to figure-out-on-my-own what does it really mean to be a CTO and of course make all the mistakes possible (I mean we are only human).
Part 1: The Story of the Co-Founder
What does it really mean to be a CTO of a startup? A startup of literally two people! Well, It’s basically being a developer that also tries to understand from the customer what their needs are and how we can meet them. In our story, our CEO brought an idea based on his industry experience. And I was a developer that was trying to figure out what the hell he meant. I mean I was only using A4 paper and a pencil. Later, I was sitting alone at home and trying to put all of those chaotic ideas into a formal product specification with wireframes, user flow, and a story.
Yes, it sounds like work for the product person but, remember when you’re the only team of two we all have to wear many hats. On that same note, at the start of any startup even when the company begins to move forward until you have a product manager it is the CTO’s responsibility (along with his many other hats) alongside with the CEO to manage your companies product.
And when a business is thinking in a more abstract and chaotic way, the developer is actually the only one who can bring more of an “order” and structure to what will eventually be built. And then, of course, build it.
“Building” is separated into two things — or you know all tech stacks and you can build it alone. Or you can find someone who can build it for you (for money or equity). And here is where you actually make the first transition from being a developer to CTO (welcome to my place). In our case, we wanted to move fast and we had some funding so we decided to leverage my Russian roots and outsource development to one of the Eastern European countries.
After some investigation, we found a company in Ukraine.
Part 2: Building Product part
The first thing you need to accept is — You Are Going To Make A Huge Mess. You are going to make all possible mistakes. A CTO position in its early stage startup is to develop the product with minimum effort for the minimum amount of time. You will be required to compromise. On developers. On tech stack. On solutions. On product decisions. Developing product requires you to make a lot of the decisions where you don’t have any significant knowledge. Just gut feelings. Yours and your partner’s. And your developers. Especially when you’re a first time CTO.
Once you accept and let it go — the next thing is to learn as quickly as possible all the skills that you are missing. Not as an expert — but to have enough of it down to move towards your goal.
For example — we realized very quickly that our customer 95% of the time was using the web on their desktop so all of our Android & iOS apps were irrelevant. We started to adopt our platform to the web. I never developed something for the web. (I mean unless you count those days in school when I was writing some basic HTML website — we all have to start somewhere).
How do you write product specification for a platform you have never had any experience building on?
By learning. Very fast. Asking questions, the dumbest questions to your developers. Hiring developers, interviewing them and asking them the same questions. Actually, I was asking those questions during an interview — “Hey how should we build this?” or “I didn’t get it about how PHP should work with React?” Yes I know! Nobody’s perfect but I then learned from their answers.
Part #3: Building product #2, With fewer errors
Now you have a team of developers, you manage their sprints, tasks and daily meetings. The first version was shipped and you have your first customers. And now starts the hardest work.
There is a word you need to learn. Product market fit. It’s a beast which is very hard to tame. (If it was easy everyone would do it). It means that your product, the one with lots of bugs and bad architecture is actually a really good solution which solved real pain and once users find it — they can’t leave it.
And your job together with your business is to tame it.
The taming process is an actual ongoing process where business (CEO) together with your (CTO) gather feedback from customers, analyze it and try to translate it into the changes that should be done to your product.
Feedback could be formal (email from a customer) and informal (like Fullstory for web or TestFairy for apps).
It’s not an easy process and it requires you to manage customer expectations, deal with immediate issues and find the best solution for this current moment (and not necessarily the right ones for the long-term).
It requires you to move as fast as possible. Move faster. Break things. You will understand much more from the production rather than just guessing based on your gut feelings! Make mistakes — Bring the success closer and closer.
And outsource everything. Everything that you can. Starting from developers to using external APIs to bring the necessary functionality. We hired an in-house developer only at the later stage of the company. Design and QA we outsource until today. We used all possible API for everything. From tracking the blood sample with FedEx to sending emails to our customers. Even a dashboard I built using Grafana library.
Part 4: Becoming CTO
During the taming process, you will figure out that being CTO is much more than just being a team leader to your 5–6 developers. You are required to pay a lot of attention not only to bugs, tech questions, and architecture but also to all aspects of a product and operational needs. It’s actually to figure out the right balance between three fields: Tech, Product & Business.
- Team leader
- Solution Architect
- Understanding business requirements
- Structure it and write product specifications
- Divide it into tasks for developers
- Business driver
- Salesperson ( To developers, to employees, to investors, to potential customer)
- Taking a wheel when CEO is in hard times
For me personally, I succeeded in some of them and failed in others. But it’s clear to me that it’s an ongoing process. And it’s never late to learn. Hey, I’m still learning!
We already paid for this lesson (by creating mistakes), now it’s a time to learn from them :)
I totally believe in going out of your comfort zone. It’s hard. It’s nervous. But when I look back on my life — the wonderful things that happened to me when I stepped out of where I already am and started to do something for the first time. That’s when the magic happens.
So it’s doesn’t matter how hard it is — never give up. Building a product is hard. Being CTO is hard. But it’s possible. Totally possible.
You dream is around the corner. Go get it!
Thanks for reading. If you liked it, please give me your 👏 👏 and share this. I’ll also love to hear your comments and suggestions :) Thanks