The top 9 things I've learnt starting out as CTO

THURSDAY, JANUARY 7, 2021    

Have you make that BIG jump from a developer to a CTO before? Or have you ever wondered how it feels like? In this article, I’ve collated some of my thoughts and learnings through the initial 3-4 months of the jump and hope it will be insightful for all of you readers.


Do leave a comment below on which points seems to be the most interesting or surprising for you, and can always feel free to contact me to chat up as well. Before we begin, on hindsight, it is interesting to note how the greatest few challenges were not technology-related.


To give a quick summary, the 9 points are as follow:


  1. It’s a big shoe to fill. You got to keep learning
  2. Sales and marketing are just as important as the product
  3. Get connected. Talk to people, who knows what you might learn
  4. Juggling multiple domains on a day-to-day basis requires focus
  5. Hire your software engineers to learn together. Set your culture right from day 1
  6. Know your business so you can enable your business
  7. You just have to be smart enough to know what you don’t know
  8. If you want things to move fast, you need a team
  9. If you want an MVP, then write enough code; It doesn’t mean write bad code

Let’s delve in!




1. It’s a BIG shoe to fill. You got to keep learning


From just an order taker to a role which you have to consider more than 10 factors on every decision that is made, can be daunting and quite frequently paralysing. It takes a person of certain self confidence to be able to take the front row of a business and move with uncertainty looming around every corner. You have to be prepared for every possible problem across different functions to different layers of problem.


Could it be a strategy issue? Or could it be an operational lapse? To better check on your readiness to step into this role, you can ask yourself a series of questions:


  • Where does your confidence come from?

Such questions could usually be answered in two folds: core belief & self belief.


A) Core belief


Core beliefs will often times set yourself up for times of adversity. Core beliefs are essentially the set of values you hold that defines your world view.


Core beliefs are basic beliefs about ourselves, other people, and the world we live in. They are things we hold to be absolute truths deep down, underneath all our “surface” thoughts. Essentially, core beliefs determine how you perceive and interpret the world. - BetterRelationship.org


If you believe everything happens for a reason, and whatever that happens happened for our good. Then all adversities can be synthesized from this perspective: What is the reason such an incident happened to me; of all people, why me? It does not usually give you absolute answers but it gives you a compass to find that alignment between reality and within yourself.


Personally, my core belief has its spiritual roots from Isaiah 58:11


The Lord will guide you always;
    he will satisfy your needs in a sun-scorched land
    and will strengthen your frame.
You will be like a well-watered garden,
    like a spring whose waters never fail.


“If He brings me to a problem, he will bring me through it”.


picture 1


Thus this worldview, whatever problem that came my way was intentional. If I am brought into a storm, God will bring me through that and that gives a glimpse of hope. It forms my worldview and every single day is a way to strengthen this belief. Core belief is the first set of beliefs.


B) Self belief


Do you believe you have sufficient problem solving skills? Self belief talks about a person’s belief in their ability to complete tasks and achieve their goals.

Self-belief (or self-efficacy) is a person’s belief in their ability to complete tasks and to achieve their goals (Bandura, 1995). Judging yourself to be capable of success increases your chances of actual success. Judging yourself as not capable of success reduces the chance of success.


Have you been in situations which are seemingly impossible but you managed to overcome them? Do you have track records? Get your small victories over the problems you face one at a time. It will build confidence for you to face the next bigger problem. While you cannot quantify such questions but you can be your own evaluation.


In the realm of technology as a software developer, problem solving is the essence of the job. If you want to develop your application or to integrate your application with third party services, you would bound to experience some hiccups. If so, you need to stay composed and find out how to resolve your issues one after another until you achieve your goal. It is interesting to note how some application layer problems could oftentimes be really small misconfiguration on hindsight. With experience, you can then hone your problem solving skills as you build your self confidence in the tech scene.


Interestingly, there is an article to talk about ways you can boost self-confidence. It is essential and absolutely necessary for you to face your problems on a daily basis. Check out the article here.


How then can I set myself up to learn?


One of the best teachers around is your books. Read a ton of books. Read widely and read based on your needs. While some technical books are good, it might not be relevant to set you up for the next breakthrough; advices in books are given based on the context in which the author wrote them. Ensure that the context is relatable else it would just be knowledge. And knowledge unapplied will erode.


The best way to find out what you don’t know is to talk to people, read and get insights. There are many tools such as linkedin or lunchclub as avenues to do so.


#2. Sales and marketing are just as important as the product


Here are some sales and marketing questions for you to ponder:


  • How ya price your product that addresses your target audience’s objection?
  • How is your marketing done? If your product does not first target the mass market, then facebook advertisements would be missing the point. Where are your target audience? And what channel allows you to reach them?
  • How you track your matrix? Do you have analytics in place?

If you want to know if you’re moving the right needle, you have got a needle to first move! Find the right number to measure and keep focus to address that. Make it absolute with no uncertain terms whether your efforts have been successful or not.


For example, if you currently just started your own business, one of the key points you wish to find out is whether people are willing to buy your services. The number to address that question would be simply your sales number.


While there are other numbers such as your Marketing Accepted Lead(MAL), Marketing Qualified Lead(MQL), to track awareness and conversion rates. The north star number is essentially your number of sales. In a typical commerce company, typically the sales figure triumphs all other.


You can reference more of the sales and marketing technical terms here. It is important for you to keep yourself up to date with these marketing. You got to know the business before you can enable the business. (We will cover this learning point later)


Here is an example that I thought is quite detailed and useful for newbies to marketing like myself:


marketing pipelineSource from etumos


Fundamentally, as you first start out, there is a need to figure out your company’s Product/market fit. Knowing how to sell and position your services is part of the process to finding product market fit; testing your value hypothesis with every effort placed into the business.


The process is not the easiest and requires an A team to execute.


#3. Get connected. Talk to people, who knows what you might learn


While it’s similar to that of point 1, getting connected is key and don’t just put your head down to do code.


Personally, one can easily get distracted by the T in the “CTO”. Yes you will most probably be the most technical person in the team. But be clear not to dwindle too deeply in your comfort zone and miss out on the bigger picture; the business is still in its validation stage.


A timely reminder from one of my interactions with ex-CTOs were to first take off that hat of an engineer. As part of the management team, you first need to take off the hat of being an order taker. While we could be developers before, now we have to make decisions on what to build, and when to build. You have to balance out how the utility of technology can aid the business to find its fit.


While books can suffice, you have to be clear to grow and develop as quickly as you can to address the needs of the business along the way. When your business grow, you wouldn’t want to be the bottleneck.


While I was reading from this book The Modern CTO. One of the quotes from the book mentions how even the smartest bunch in the world are still human. They are smart but they have not considered every single possible approaches to their problems; least to mention approaches outside of their domain. In short, everyone is just a person. Make friends with them. Help them even if they are already leaders of their companies or even your own. Stick next to them and provide them value every step of the way and they will pull you up.


#4. Juggling multiple domains on a day-to-day basis requires focus


The challenge of being a CTO is the demands bestowed upon that role to juggle multiple domains. You need to think strategically on the direction of the business along with your team. You need to find the fastest cheapest tool to help your team find the matrix/needle/number to measure and move. While ensuring that you are coding to move the team towards the MVP for validation. This list is not exhaustive and each of these domains requires a different set of thought process. How does other CTOs equip themselves to face such a mountain? Would love to hear from you!


“Every skill we learned on this path from developer to CTO defines the Modern CTO. These skills were not handed to us; we had to discover and earn them. We developed skills in: relationships, growth, communicating value, scaling, management, learning how to learn, balancing imbalance, opportunity, focus, identifying white space, understanding failure, processing feedback, making people feel heard, sharing, speaking up, teaching, and developing effective products that bring value to the market”
Modern CTO: Everything you need to know, to be a Modern CTO. Joel Beasley


#5. Hire your software engineers to learn together. Set your culture right from day 1


This is more of a personal experience. I know it is rare to find people to learn together. Rather, I’ve not heard anyone mention this before. We hire to get work done; not primarily to learn together. While that is true, I always find myself enjoying the entire grind and problem solving process when there is a culture of learning together. We are all merely individuals seeking to improve and be better versions of ourselves and to hone our skills for a better tomorrow.


There will always be problems to solve, work to complete. Why not do it learning something out of it?


One other factor for a learn-together culture is to enable your engineers or hires to think alongside you. One simple and easy tweak was to ask them what do they think; instead of telling them what to do.


If I can’t asses the human component, I can’t lead a team. For the CTO it’s a critical skill. Team composition carries as much or perhaps even greater weight than programming expertise - Modern CTO


Bringing a team along for the journey is more critical than just the skill of an individual contributor.


Hiring is a trying and tiring process. The assessments are time consuming and draining to say the least. Gathering some of my learnings in the process of hiring. I do find this book super meaningful for CTOs looking to hire. It is called Who by Geoff Smart.


WHO


You can check out the link for book depository here as well.


In this book, it provides you a framework to figure out how to hire, who to hire. Why should you hire this person. Figure out how to avoid common Human Resource pitfalls across thousands of companies. One of the key take away from the book was to:


  1. Set clear job description on the role you wish to hire for. You have to know what you are hiring for before you can look out for a fit for that role.
  2. Check for alignment of goals; Find out what is their personal long term goal and see how it will align with the company’s vision and mission.
  3. Hire based on the culture you want to have in your company. For example, if you value learning as a culture, then hire based on that culture.
  4. It is more expensive to let go of a person after hire than to not hire them at all - even if your company is in a resource crunch. (Definitely these are merely guidelines, but understanding the thought process behind the guidelines will serve you a better purpose)

These are just some tips that were mentioned in the book, but please check out the book yourself!


On my personal note, on top of the few pointers aforementioned, I do have a few more myself. Do let me know what are your criteria as well!


  1. Hire people with the same willingness to grind and get work done. Aka find people whom are proud of their own work.
  2. Check for the alignment of skills.
  3. Do not hire a developer to learn a new language on the go. While we all first learn our programming language somewhere, you have to consider if you are willing to let your intern or fresh hire sandbox test their learning on your own code base. While people may oftentimes have good heart, you generally want as little technical debt in your code base. And it is not easy as good clean code comes with experiences.

#6. Know your business so you can enable your business


Unless you’re a tech product or service which your technology is your company, your technology should seek to enable the business. If you want to enable a business, you need to first know the business and understand the numbers in the business world.


The power of technology is its ability to scale. Take Masterclass for an example. Record the lessons once and you can sell them, re-watch them, learn from them multiple times, and best of all, sell to the millions. Technology has that ability, thus giving you much power. Use it with extreme focus on delivering value to your customers. If you want to do that, you got to first know your customers alongside your business team. What matrix is important to measure? Find that number and set your decisions to improve that number every single day.


If your company is planning to raise funds, then find out What numbers are your business teams talking to VCs about? Get that number, keep it front and center in every decision you make on the MVP or the product. Then enable them to achieve the business goal.


empowerYou can only align with your business team if you know what they are doing


#7. You just have to be smart enough to know what you don’t know


I’ve gotten this phrase from the Modern CTO book. And it exactly describes whatever I have believed regarding the level of intelligence. You don’t have to know it all. You can’t. You’re merely just a human with finite resources and limits. But you just need to know enough to know what you don’t know. So you can keep focus and equip yourself with sufficient information to cover that knowledge gap.


#8. If you want things to move fast, you need a team


The processes and scope of work to even get a business off the ground is vast and challenging across different domains. You need skills to sell, skills to build your product, skills to communicate your value to your target audience. You need to learn how to network and find out what you don’t know (similar to the previous point). You can only do so much at any one day and you need a team. A team you are aligned with and trust to execute the other aspects while you focus on your niche.


If you want to kick start your business, find yourself strong teammates to move along with you.


teamSource from ProofHub

#9. If you want an MVP, then write enough code; It doesn’t mean write bad code


Oftentimes I’ve heard how code that are done quickly has to be at the expense of quality. I always wonder if there is a way to set ourselves up for speed. And this question brought me to the concept of clean architecture. You can find out more about this concept here. Finding out a way to set up a system in which code becomes predictable, clean, testable, and you will find yourself writing code quickly with little technical debt.


If you want to write good code, you have to first see and understand how does that structure look like in your head. If you do not have a good idea how does your code structure look like, highly likely you will not be able to replicate that in code as well. When it comes to architectural decisions, take the time to plan your changes, steps and concerns before execution. It will save you a lot more time than it sounds.




TLDR;


At the end of the day, you have to remember why you are doing what you are currently doing. Once you find that alignment, everything else will fall into place. The struggles will only strengthen your core belief and the adversities will mould your character through the process. Like King David facing his daily bears and lions, you will face your bears and lions of everyday’s challenge. But one day you will be stand ready before your own Goliath; only if you persevere.


In technology, knowing the why you are in this industry will set you apart from the day-to-day workers. People can see it in the attitude you bring to work. People can see it in their interaction with you. And people can see that passion in the code you produce. And if you feel the call to come out to start your own; to solve a problem through technology. Take that first step! It will be rewarding.


P.S. It would be super glad for you to let me know if you are enjoying what you reading thus far. You can also let me know if you feel i’m missing out on any information.




Resources