During the dot com bubble, I was a founder and startup CTO. At the beginning I wondered what to do as a CTO. There were many conflicting views on that position. From programming to vision, from technology to processes, from tools to people. After some time and more years at managing development teams and departments, my view on the CTO role is much clearer.
What do others think about the CTO role? Werner Vogels, CTO of Amazon, defines four roles a CTO can have:
- Infrastructure Manager
- Technology Visionary and Operations Manager
- External Facing Technologist
- Big Thinker
Many people have contributed to shaping the CTO role in startups. Indus Khaitan thinks the “5 Bare Minimum Things A Web Startup CTO Must Worry About” are:
- Availability & Monitoring
- Application Errors
- Source Control
I do agree with them, though I’m not sure Source Control is in my Top 5. Security depends on what you do and what framweworks you use, so this might not be an issue for some time into startup life. Availability gets more and more important when your customers increase and revenue over your plattform increases. Monitoring is a must from the beginning, it’s hard to add later - you lose especially a lot of insight if you have no monitoring, insight which is dearly needed in your first incident. Backup is often forgotten or underrated - do not forget to see if you really can get your site going again from a backup.
Eric Ries writes on the role of the CTO:
The CTO's primary job is to make sure the company's technology strategy serves its business strategy.
with five specific CTO skills:
- Platform selection and technical design
- Seeing the big picture (in graphic detail)
- Provide options
- Find the 80/20
- Grow technical leaders
This is a great oversight of the CTO responsibilities, there is much more juice in that article, go ahead an read it.
How to be a Startup CTO
Tony Karrer ponders the question “Startup CTO or Developer”:
What worries me a bit is how often I read that startups should hire a developer / hands-on lead developer. I understand the desire for hiring someone who is going to product product. But often the result of a Founder hiring a developer or lead developer or even a VP engineering is a gap created between the founders and the developers. [...] By the way, I'm not suggesting that startups should hire a full-time Startup CTO who is not hands-on. Rather they should get a part-time Acting CTO who can help close the gap.
I’ve distilled the (web) startup CTO job down to:
- Write code - often forgotten, but you need to be able to write code, and if you’re one of the first technical hires, there is not enough work for you if you do not write code.
- Decide if to hire or to outsource. There are reasons for both, but I’d say in 90% of cases one should hire. The CTO needs to decide which way to go, and - especially important be prepared to defend his decision. Buying is usually not the way to go for a technology or web startup. This doesn’t mean there can’t be a mix, there are often projects which can and should be outsourced.
- Hire developers, testers, admins and operators. Several times I’ve been asked to be the CTO for a startup, as in Germany most web startups are founded by ex-consultants or economics majors. They usually have no clue - nor should they have - about good or bad developers. As a CTO you need to provide this knowledge and hire the best you can get for your budget.
- Know how to scale development and processes (from 1 to 10 developers e.g.). Development changes significanty if you go from one to five and then to ten developers. You need some kind of process (I for example prefer Lean and Scrum). As a startup CTO you need to provide this in the first years (certainly not first months).
- Know technologies, craft an architecture and technology strategy.
- Know how to scale an application (from 100 to millions of users).
As a CTO, Interim CTO, CTO Coach - and developer - Stephan has seen many technology departments in fast-growing startups. As a kid he taught himself coding in a department store around 1981 because he wanted to write video games. Stephan studied computer science with distributed systems and artificial intelligence at the University of Ulm. He also studied Philosophy. Stephan aced all Diploma exams with 1.0. When the internet came to Germany in the 90 he worked as the first coder in several startups. He has founded a VC funded startup, worked in VC funded, fast growing startups with architecture, processes and growth challenges, worked as a manager for ImmoScout and as a CTO of an eBay Inc. company. After his wife successfully sold her startup they moved to the sea and Stephan took up CTO coaching. You can find him on LinkedIn or on Twitter @KingOfCoders