Software Architect, CTO, open source enthusiastic and the creator of http://appwrite.io
Being a CTO can be hard and frustrating, but also fun and satisfying. During my time in the last seven years as CTO, R&D manager, and software architect both at Walla!NEWS, Careerpage, and Appwrite, I have collected some insights that helped me do my jobs and achieve my company’s goals. For a long time, I have thought about sharing my ideas, and in this post, I will try my best to give away some of those insights based on my personal experiences.
You are not getting paid to do paperwork. For me, being a CTO of a company was about leadership, vision, and creating technology that can give my organization a competitive advantage. Every company sees the CTO position in a different way, and each CTO might have a different set of skills or strengths. It is up to you to make sure your organization is getting the most out of your specific strengths.
If you don’t understand IT very well, make sure you have a strong IT manager. If your passion is not dealing with contracts and negotiations, get a good purchasing manager. At the bottom line, you should know where your impact will be most valuable — and where you should delegate your authorities.
Just because your predecessor was working all day with paperwork does not mean the same should apply to you. As a CTO, you have the power and authority to set your own agenda and your team’s agenda.
A busy calendar is not an excuse. Talk to your managers and employees regularly, set up weekly meetings, and make sure you have enough free time to spend in the team’s open space or offices. People don’t like managers or leaders that are never there, not listening or giving helpful advice.
If you want to lead people, you have to be there for them daily, or at least weekly, rather then always finding yourself in C-level meetings.
Know your team’s limits and constraints. Prepare for the unpredictable, so you can be predictable. A company needs to plan for strategic moves, and the technology should not be a constraint. Of course, this is not always possible, but it’s up to you to make it as possible as it can be.
Know how to balance delivery time and technical debt. Make sure your team has enough time for the maintenance of your products.
Knowledge is power, and your knowledge is what got you to where you are now — don’t neglect it. In technology-oriented environments, all your knowledge is old news within 2 to 4 years, so make sure you are well aware of new trends and technologies. Sign up for a newsletter, read blogs, follow influencers, and attend online and physical conferences.
The above advice does not mean you need to change your company stack every two years, but it is definitely very important to be aware of how technology evolves and changes in your industry. This will surely help you better prepare for the future.
I have always told my engineers that our job is not only to solve problems — that’s the easy part. Our main job is to simplify problems. Simplifying a complicated problem helps us understand it better, and more importantly, to maintain it more easily and for a longer period of time.
One of the worst things a CTO can do is stop all production work for unplanned maintenance and code refactoring. Not only this can be a huge time waste, its the number one indication that we have done something wrong in the process.
Simple solutions lead to a much more simple and organized code base and a better decision-making process, which leads to better execution times and much more stable software.
I must agree with the cliche that says everyone is replaceable. Anyone can learn how to code greatly in Python, Node.js, or master a Kubernetes cluster. Being a good person is harder to teach. Trust and embrace good people, and look for potential rather than skillsets. Create great training programs in your organization and make sure each employee has a solid career path opportunity.
Your employees are your organization’s most valuable asset. Train them and help them evolve, and you will surely benefit from the results. A common story about the issue is one where a CFO asks the CTO: “What will happen if we train an engineer and he will decide to leave us?” and the CTO answers him unequivocally: “imagine what will happen if we don’t train him and he decides to stay with us.”
In today’s world, it is inevitable that good people, with the right passion but without the right knowledge, will find their way to gain the knowledge necessary for them to achieve their desires.