For many people who look at the CTO role at a startup from afar, it may not seem like there’s that much to it beyond the purely technical. However, to be successful, there the role requires so much more than purely technical talent.
Sure, the CTO should be a strong coder, he should set a technical vision for the organization, he must manage engineers who report to him, and he must communicate clearly to both his employees and “the business”. This is just the tip of the iceberg. Most of the other skills and areas of expertise I’ll list below are learnable and can be developed with experience. Most of them are also taken for granted by non-technical folks when present and are only noticed as needed skillsets when absent.
First off, what are the obvious skillsets needed? Those which should be hard requirements and are difficult or otherwise uneconomical to teach.
- Coding. Pure and simple, the CTO needs a strong technical background. They should also be a productivity workhorse, able to deliver the throughput of 3 engineers.
- Architecture. Beyond building early prototypes, the CTO must be able to lead the team to build things which fit together and scale with the company.
- Communication. The CTO must be able to work with the business when capturing requirements and communicate them clearly to his team.
- Management. The CTO will have a team reporting to him, and so much understand people management. As it grows, he must also engage in annual reviews or other feedback processes.
So, what areas of expertise does a CTO need beyond the obvious?
- Recruiting and Interviewing. Most startups need to grow the technical team. Few startups have dedicated HR professionals to help, so this often falls to the CTO. Even with support, it will be the CTO’s responsibility to interview candidates and often they must also make and close offers.
- On-boarding, Knowledge Capture/Transfer. Once hired, the CTO must train other engineers. Even experienced hires will need some training on practices, policies, and how to work with the code. Few startups have any real plans to ramp up engineers or to capture knowledge in any medium other than engineers' heads.
- Sprint Planning and Prioritization. The CTO needs to be able to plan work for others. At the core, he’s responsible for everything technical which is delivered and must ensure his team is working on the right things.
- Product Management. Often the CTO wears this hat. Sometimes there is a cofounder or early hire which handles this, but very often it is the CTO. Even if the CEO is the “product manager”, it may actually be the CTO making most of the smaller decisions. Making the right decisions in a timely manner is an important skill.
- Quality Control and Best Practices. The CTO must know how to build the checks along the way to minimize bugs and create a high quality code base. When you hear of companies needing to do a full rewrite on a product (which is not a prototype), it’s likely because their quality control failed.
- Infrastructure Planning and Scaling. As a company grows, the infrastructure bill is going to grow. Eventually someone notices and the CTO must take responsibility for managing the costs. This requires evaluating how much things are costing, planning future infrastructure needs, negotiating with vendors, and prioritizing cost-saving work. Closely related is how the system scales and recovers from infrastructure failure.
- Monitoring, Alarming, and Metrics. A production system is like a living thing. There is constant barrage of requests either from clients. Keeping track of what’s going on, identifying when a problem arises, and being notified of said problem in a timely and appropriate manner requires vision, planning, and policies.
- Operations and Bug Tracking. With a system in production comes a constant stream of bugs (major and minor), small tweaks, routine deployments, routine fixes, latency spikes, rounding errors, etc., etc. Collectively called operations, it requires a dedicated skillset to manage in a sustainable fashion which does not impact product deliveries.