Thanks for reading this issue. For everyone who joined recently: this is a very subjective newsletter about all things surrounding engineering management / CTO daily life.
I'm grateful for the 70 new subscribers that joined since the last issue.
Share this article with your friends, here's a link.
In 2017, I found myself stepping into the shoes of a CTO for the first time. I joined a small startup as a senior developer, and before I knew it, I was handed the reins of the tech team. Having the CTO title sounded cool, but in reality, it was more of a tech lead role — we were small, just about ten people, and I was deeply involved in building the product. My days were filled with coding, debugging, and playing whack-a-mole with new bugs and customer issues. I was also responsible for ensuring our team delivered on our commitments to investors and clients. It was a challenging time, but it was also a time of immense learning and growth.
Also, a lot of stress. But that’s a whole different story.
Fast forward to today — I'm running a digital agency in Switzerland as a CTO. We're building multiple projects simultaneously with cross-functional teams on each product. We’ve gotten bigger, not by much, but almost 50 people. My role has evolved. I'm no longer just coding and debugging; I'm managing resources, planning timelines, and making strategic decisions. The challenges are different, but the thrill of solving problems and driving the company's tech vision remains the same.
This article aims to demystify the role of a CTO for software engineers and provide a roadmap for those aspiring to this position. When writing this, I considered what I would’ve liked to read seven years ago before jumping into this role.
The role of a CTO is often misunderstood. A CTO is sometimes a technical lead but sometimes a strategic thinker who aligns technology with business goals, and sometimes he’s both.
So let’s demystify the role and see what does a CTO actually do? What does it even stand for?
What is a CTO?
A CTO, or Chief Technology Officer, is a leader, strategist, manager, visionary, coder, coffee junkie, and a problem-solver. They understand technology, but their role goes beyond just understanding code or architecture. They need to understand the business, the market, the customers, and the team. They need to make decisions not just based on what is technically feasible but also on what is strategically beneficial for the company.
In the media, CTOs are often portrayed as tech geniuses or wizards, single-handedly coding complex algorithms or inventing groundbreaking technologies. The reality, however, is often less glamorous. Even though a CTO might be the public representation of the technological advancements that are happening in the company, it’s the teams that are behind him that make it possible. CTO mostly spends their time in meetings, making decisions, managing people, and dealing with the myriad challenges of running a tech team.
In a startup, a CTO might be more hands-on, making key technical decisions and even coding. As the company grows, the CTO's role becomes more people-focused. They focus on aligning development with business goals, managing a larger team, and talking to investors/clients to make high-level decisions about the whole company’s direction. This evolution requires continuous learning and adaptation.
So you can either improve and adapt or, sadly, you will not be up to the task of taking the company to the next step. Let’s discuss what changes you should expect at different stages.
CTO Across Different Stages of a Company
In a pre-seed or early startup stage, the CTO is often the technical workhorse of the company. They are deeply involved in the technical work, from writing and reviewing code to making key architectural decisions. They are responsible for building the MVP and setting up the initial tech infrastructure. This is a stage where the CTO's coding skills are paramount. They also hire the first team members and set the company's tech culture. The day-to-day tasks at this stage might include coding, debugging, reviewing code, making architectural decisions, setting up servers and databases, and handling customer support requests.
As the company transitions into the growth stage, the CTO's role moves from a hands-on position to a more managerial one. They manage a larger tech team, which might involve setting up processes, implementing tools, and hiring managers to help with the day-to-day activities. The everyday tasks at this stage might include planning sprints, coordinating with other departments, managing team dynamics, overseeing project delivery, and ensuring product quality.
The CTO's role is primarily strategic in a mature or expansion-stage company. They are responsible for setting the company's tech vision and ensuring it aligns with its business strategy. They don’t manage anyone directly except by talking with their VPs.This involves setting up structures and processes to ensure effective communication, collaboration, and decision-making. The day-to-day tasks at this stage might include strategic planning, managing budgets, overseeing security and compliance, maintaining relationships with key vendors, and being the face of the company’s technology successes/failures.
I want to dive deep into each stage and discuss the different responsibilities, challenges, and critical skills required at companies of size 10-, 100-, and 1000-people.
CTO in a 10-Person Company
As stated above, the CTO is often involved in the technical work at this stage. They might be writing and reviewing code, making critical architectural decisions, setting up the tech infrastructure, doing deployments, and setting up different SaaS for the company’s growth. But wait, there’s more — they will be making decisions on build vs buy, which stack to choose, doing customer support with big clients, making sales with even bigger clients who want to talk with the person who built the software, doing fundraising with investors who want to see the whole team.
Challenge: Working with limited resources. In a small startup, the CTO often has to work with a very tight budget, and only 1-2 extra engineers; the CEO probably does the QA. This can make it challenging to deliver a high-quality product quickly.
Solution: The CTO must prioritize effectively, focusing on the most critical features and making intelligent decisions about the tech stack and architecture. When you have limited time and resources, you must carefully choose what you focus your time on. Everything needs to be high-impact to survive.
Challenge: Hiring talent. In a competitive tech job market, attracting top talent can be challenging, especially for a small startup.
Solution: The CTO needs to showcase a strong tech culture and offer opportunities for learning and growth. You must also sell the company’s vision to potential hires, as you can’t compete on the salaries and benefits.
If there’s a single skill I would recommend having at this stage, it’s Technical Expertise. You need to have a deep understanding of the technology that is being used. That’s the biggest asset you bring to the table. Your founders will rely on you to make critical architectural decisions, debug code for big clients, and build the MVP.
Tips for growth: Stay updated on your tech stack’s latest trends, build side-projects, watch youtube courses, and take engineering classes. Participate in coding challenges if that's your thing, or contribute to open-source projects. Basically, improve your tech knowledge.
CTO in a 100-Person Company
As the company grows, your role as a CTO becomes more managerial. You’re now responsible for building and managing the team, not the product itself — which might involve setting up the right processes, implementing tools for a better flow of information, and hiring managers to handle day-to-day problems.
At this stage, the CTO must ensure that the tech strategy aligns with the company’s needs. This might involve decisions about investing long-term into on-premise migration or refactoring parts of the application to reduce the technical debt. Also, compliance becomes a huge topic; as you’re not playing around with prototypes anymore, you’re getting increasingly serious clients.
Challenge: Scaling the efficiency of the development team and battling technical debt.
Solution: It’s about time to implement well-defined processes for all kinds of things — deployments, code reviews, code formatting, 1:1s meetings, local development, etc. It’s also an excellent time to start treating your infrastructure as a first-class citizen and set up proper pipelines and CI/CD to ensure the features get delivered as fast as before, and the security is considered.
Challenge: Balancing management and technical work. At this point, you might start to have too much on your plate, with both sides pulling you to solve their issues. Good time to start delegating work to other people. Otherwise, you may find it challenging to balance your high-impact responsibilities as the CTO with low-impact tasks that you still enjoy doing, e.g., fiddling with Kubernetes.
Solution: The CTO needs to delegate effectively, possibly hiring people for different roles to handle low-impact tasks that take too much time.
A single skill that is of enormous importance here — People Management. You’re basically creating a system around the company with people to do what you were doing alone but also better.
Tips for growth: Take courses in leadership/management/communication. Seek feedback from your team and be open to learning and improving. Practice active listening and empathetic communication.
CTO in a 1000-Person Company
So now you’re at the big boys league. I’ve never been a CTO of a 1000-person company, so this is based on me talking with different people, reading books, and extrapolating my experience based on where I feel it’s going. The role here is primarily strategic. You are responsible for setting the company's tech vision and ensuring it aligns with its business strategy.
Purely forward-thinking - How do we thrive in the next ten years as a company, rather than operative — how do we improve the product? At this point, you should have much more competent people than you to think about the operative things.
You must also manage relationships with key stakeholders, including the board, investors, key customers, and partners. Don’t forget about going to big events to meet other CTOs to see if there are any potential synergies for growth and talk about acquisitions.
Challenge: Managing a large, geographically dispersed team. In a large company, the CTO needs to ensure effective communication and collaboration across the tech team.
Solution: The CTO needs to make sure (not saying he should do it himself) proper structures and processes exist for effective communication. For example, clear reporting lines, clear team inter-dependencies and communication systems. Maybe even try out Holacracy for self-organizing teams.
Challenge: Staying competitive in a rapidly evolving tech landscape. In a large company, the CTO must ensure that the company is leveraging technology effectively to stay competitive.
Solution: The CTO needs to foster a culture of innovation in the team. They also need to make smart decisions about tech investments and partnerships e.g. Microsoft partnering with OpenAI.
One skill you need to have — Strategic Thinking / Long-Term thinking. In a large company, the CTO needs to be able to set a clear tech vision and strategy for the next five years, make high-level decisions about tech investments, and ensure that the tech strategy supports the company's business objectives.
Tips for growth: I have no idea; I’m not there yet, but there are tons of books to learn about business strategy and there are CEO Coaches who can help you shift your thinking paradigm. So the advice would be to practice strategic thinking by working on complex, long-term projects and to seek mentorship from experienced tech leaders. But take this with a grain of salt. I’m also still learning.
What does my day look like?
I'd like to give you a concrete example of what your life could look like if you pursue the CTO path. In my life, no two days are exactly the same. My current role is a blend of technical, managerial, and strategic responsibilities, and my daily tasks can vary widely depending on the needs of the projects. I hope this glimpse into my daily life will provide some clarity.
I wake up at 7:30 AM. I don’t go for a morning run, and I’m not filled with motivation as I've already checked my phone, and there are a dozens notifications. Perfect. I just want to take a shower and get to the office.
You might think that once I'm in the office, I will be enjoying the sunrise with a hot cup of coffee and thinking about how awesome I am. Nope. My mornings are hectic, I always start the day by reviewing emails and Slack messages, checking if there's anything critical. There are usually about 15 messages waiting for me each morning — including team updates, HR memos, development issues and emails from client.
After I've had my cup of coffee, I sometimes attend a stand-up meeting with some of our more important projects to make sure we're on track. We discuss the progress, address any issues or blockers, and see if I can enable them somehow — mostly this means me writing some emails and scheduling some meetings to speed things up.
I have the most high-priority tasks in the first part of the day. Some of it includes — reviewing PRs as a second pair of eyes (I still enjoy doing this), making architectural decisions with one of the teams, taking a look at our DevOps or working on a proposal for a new client. As a CTO who is still hands-on, I might spend a significant part of my morning doing technical work.
After lunch, I attend some meetings. This could include client presentations, vendor meetings, or internal meetings about strategy, budget allocation, or resource planning. Even if I’m hands-on, I’m still involved in many high-level decisions about the company's direction, so these meetings are a big part of my day.
After this, I might work on project estimations. We estimate the scope and cost of new software projects with our senior developers. This involves understanding the client's needs, assessing the technical requirements, and evaluating the time and resources needed (and if we have the resources required).
As I mentioned above, we have multiple products being build at the same time, and I’m usually very active on Slack, so I check my Slack during the day and make sure everyone has everything they need from me, and nobody is blocked.
Evening / At home
I wrap up my day's work at home, check the todo list to see what I’ve done, and send emails to plan meetings for the next days/weeks. Reply to as many people as I can. I try to close my day with zero unanswered emails, but as experience shows — there's always more work than you can handle in a day.
After finishing my primary responsibilities, I read some HackerNews articles, listen to some tech podcasts, figure out the next topic for my newsletter, and write a few paragraphs.
This is more or less it. It varies heavily based on specific projects, deadlines, and issues that might arise. I try to stay flexible and still wear many hats during my daily work, I'd like to make sure we’re progressing in the technical work and becoming more efficient as a company in terms of processes, resources, and projects.
After I wrapped things up I read some fantasy books, go for a walk and hang out with my friends. Eventually I end up in my bed to get a good nights sleep to repeat the same outline the next day but with a different set of problems. Exciting!
Is It Worth It, or Should You Stay a Software Engineer?
Big question, no easy answer. The decision to transition from a software engineer to a CTO depends mainly on your career goals, interests, and skills. We’re all different apples.
As a software engineer, you're deeply involved in the technical aspects. You're coding, debugging, and deploying. You're solving complex problems and seeing the direct results of your work in the products you build. If you love hands-on technical work and prefer to focus on coding and technical problem-solving, staying as a software engineer might be the right choice for you—also, a lot less people interactions in this case.
On the other hand, as a CTO, your role is more about management and strategy. You're managing everything — resources, people, plans, vendors, partners, clients. You're part of the driving force TO MAKE THINGS HAPPEN on a large scale. You're much less involved in the hands-on coding and more engaged in managing the software engineers who code. If you enjoy leadership, being a role model, and problem-solving on a company-wide level, transitioning to a CTO role might be the right move.
The impact you can have in a leadership position is crazy, not even comparable to software engineering. You're not just influencing a single project or product but the entire company's tech direction. You can shape the company's tech culture, drive innovation, and significantly impact the company's success. The CTO role can also be a stepping stone to other leadership roles, such as CEO, especially if you're interested in running a business.
However, going from a coder to CTO means developing new skills (people skills) and taking on new responsibilities (a lot of them!). It can be challenging and may take you out of your comfort zone. But it can also be rewarding and offer new opportunities for growth and learning.
So you decide.
Subscribe to VK Newsletter
Subscribe to the newsletter and unlock access to member-only content.