Roadmap to CTO Office

Introduction

Every ambitious developer aspires to reach the pinnacle of their career, which is the esteemed role of Chief Technology Officer (CTO). The CTO holds three primary responsibilities:

Firstly, as a "chief", they are tasked with crafting the technology strategy. This involves leveraging technology to discern new opportunities. Secondly, as a technology expert, the CTO must stay abreast of evolving tech trends and identify those that could benefit the company, strategically utilizing them to enhance revenue. Thirdly, as an officer, the CTO must possess the capability to execute plans effectively. It's not merely about envisioning technological possibilities or discussing their potential; it's about achieving tangible results that benefit the company.

When considering these three core functions of the CTO role, one can approach skill development with the end goal in mind, working backward to determine the necessary competencies. Drawing from nine years of experience as a CTO, I've honed these skills through practical application. Additionally, my interactions with fellow CTOs and industry experts have contributed to a comprehensive understanding of the skills essential for excelling in the role.

Now, I am compiling these insights into a booklet to share this awareness widely and empower others aspiring to become effective CTOs.

Let me leave you this thought before you begin reading this booklet. This is not a blueprint that you have to adhere to. At best, this will spark a conversation. A conversation that you can have with yourself about your career. Or a conversation with another — an advisor, a colleague, or me, about your career. I would be happy to participate in your conversation. As you will learn in the last chapter, that is how I learn. Once you have read the following pages, send me your feedback via Twitter or LinkedIn.

Follow a structured path to success

I've read countless self-improvement books, but The Seven Habits of Highly Effective People by Stephen Covey tops them all. It's like the wise old granddaddy of the genre, guiding me to sharpen my thoughts and skills, transforming both my career and life.

In this masterpiece, Covey offers numerous exercises. Early on, he presents a challenge: you're given a page with jumbled numbers from 1 to 54 and must identify as many as possible within 30 seconds . I scrambled, managing to spot about ten. Most folks might reach twenty.

Jumbled Words

But there's a trick - a hidden structure behind the seemingly random chaos. The numbers nestle in a 3x3 matrix, with 1 in the top left corner, 2 in the middle, and so on until 9. Then, 10 starts again at the top left, repeating until 54. Once you grasp this pattern, you can find all the numbers in a snap. Now go back to the image and try to find these numbers. You'll find them fast.

Click here if you want to see the solved puzzle

Applying this thought process to my life has made all the difference in building wealth, networking, and advancing my career. What once appeared chaotic and confusing now has a clear path forward. By following a structured method instead of getting lost in the chaos, you can make significant progress without feeling overwhelmed or disappointed.

So now I follow this structured path and want to share it with you for building your technology career. With any luck, you'll piece together these puzzle fragments and advance further using this newfound structure.

Learning Roadmap

Foundation Layer

We all start with building applications.

That's where we start our career, maybe as a backend developer or a mobile developer or a front end developer. So learn to build your application and if possible, learn full stack. One language in the front end, one at the backend, and one database. Learning each layer will help you understand the perspectives and the constraints in those individual layers.

Once you start building, you will realize you are facing the same problem again and again and wonder if anybody else already solved that particular problem.

That's when you will start to learn algorithms and design patents, which are fundamentals for designing an application. There are algorithms and design patterns to solve the common problems that you are facing in software development. You need to understand them. Take time to understand and learn these algorithms.

Designing and developing applications that run on your laptop is one thing; releasing that application into a production environment and exposing to the world requires an entirely different skillset. You need to know who to release applications repeatedly without any breakage. You need to know how to monitor the application for errors, trace that error to a block of code that caused that error, rectify that error, and release back. Add to it, how to do this within a team. All of this requires learning about DevOps skills.

I wish that the application that you and your team develops attracts lot of customers. That is when you will learn about scaling your application to serve thousands of customers at the same time. Should you optimize the code or throw more hardware at the problem, can you divide the application into different services and scale them independently are some of the questions you need to ask and seek answer. Each scaling situation will be different but underlying principles will remain the same.

When we talk about scaling, often you will also encounter situations where you'll have to fine-tune applications. This could be again at database, business logic, front-end, or infrastructure. You'll have to have a good handle on such fine-tuning exercise. This skill is something you can't learn by reading books or watching videos. You should've done it often times for you to develop intuition to pick and choose appropriate methods to fine-tune the application.

Packages & Platforms

Not all the time you will build application from scratch.

Business owners may not wait for you to develop the Complete application all the time. Say, for example, somebody might come in and say, Hey, I want to launch an e commerce application next week. You may not be able to do that. That's where these platforms and packages comes into picture like SAP and Magento, where you can drag and drop and configure, and then you can launch an application very quickly.

So you need to understand how these platforms work and how you can build and how you can scale them for each of these platforms.

Even though you understand all of this, the world changes, the market changes, new technologies come in, new ways of doing things come in. So you need to build your own radar to scan the market for the coming trends and you need to have a mechanism to say whether you are going to adapt that particular trend or you are going to pass that on, whether it is only a shining pillar now.

So you need to build your own mechanisms to look into the market and build a radar for that.

Understanding business

So far, we have talked about a deterministic world in which the developers live in, where if you program something and if it has the logic, most probably it'll work. But this is not sufficient enough. If you want to build a career, if you want to become a CTO, (or even a director or a VP), then you need to move to the next layer, which is understanding business verticals.

The business owners and the executives are not going to talk in the language of the software developers. It is the software developers who have to raise up to the level of these business owners and understand what they are talking and also ask relevant questions to them. And you cannot ask relevant questions to the business owners if you do not understand what a business is, what's the difference between marketing and sales, what's the difference between say, a HRMS application and a CRM application. What are the required compliances like HIPPA or GDPR or SOX.

When a business owner says my application will have to be HIPAA compliant, you immediately know what that means rather than somebody will have to spoon-feed you and give you a list of items that your application has to have and support. So when you understand this business verticals, you become a lot more valuable for the business and your career becomes a lot more valuable as well.

Structured Thinking

SODAS for generating wealth

Most corporate situations you get into will be either chaotic or vague. You can turn to friends or senior colleagues for advice. At best, they will tell you what worked for them. That advice won't always work for you because your situation is different.

If you want to build a thriving career (and a joyful life), you have to learn to think for yourself. Teachers in schools and trainers in corporate training sessions teach you what to think, not how to think. Learning how to think is the best intellectual asset you can build for yourself.

Given to itself, your thinking mind generalizes or complicates issues at hand. Your emotions too influence the decision making. A structured approach will help you organize the information, reveal gaps in understanding, and select the best solution within the constraints of the situation at hand.

One such structured thinking framework is SODAS — situation, options, disadvantages, advantages, and solution.

In this approach, you start with understanding the situation. It can be a current state — crisis that needs a clean-up or a future desired state like increased market share.

It is not just a problem statement. Take time to describe the situation as much as possible. Describe constrains, your strengths, support of team, and so on. If you could appraise the situation well, then you can describe next steps better.

As Mary Poppins quips, "Well begun is half done".

Then you generate as many options as possible. Your options could be MECE (mutually exclusive, completely exhaustive) or independent & complete. You need to generate as many options as possible for a better solution.

For each of these options generate both disadvantages and advantages. You should generate at least three of these. Why at least three? It is possible that as we generate the options, we come to like or dislike some options. If we like an option, we will tend to generate only advantages and fail to see any disadvantage. Similarly for options that we dislike. If we don't have the positives and negatives of these options, we may end up with an ineffective solution. So it is necessary to think through the advantage and disadvantage of each option.

You can't copy paste a best practice. Context matters. Information from the above steps should help you in choosing a workable solution to the situation.

When you are applying your learning, be sure to customize to your current situation. Otherwise you will only embarrass yourself. Read Beware of Cloning Best Practices to know more.

Keep in mind that SODAS does not arm you with techniques to generate options or methodology for implementation. It simply provides a structure to go from a situation to a solution.

Another factor to keep in mind is that it is not a single left-to-right journey. As you generate the disadvantages and advantages you might get creative and think of more options. So it is an iterative process.

Let us apply this to a hypothetical situation. Say you are a developer working as an independent consultant. You want to increase your wealth through your work (for this thought exercise we are leaving out investing in any form). Now you have two options — increase revenue or decrease expenses. To increase revenue, you can increase your fee or take up additional engagement. Now you list out the advantages and disadvantages of taking up additional engagement. Do the same for increasing your fees. Your SODAs tree might look like the figure in the beginning of the article.

After going through the exercise you might decide to pick-up a second assignment instead of increasing fee for the current engagement.

SODAS is not the only structure available. There are plenty others too depending on the issue. There is GTD (getting things done) for getting work done, JTBD (jobs to be done) to know what products to build, lean canvas to map out the business plan for a startup, and so on.

Once you are able to put in structural thinking into practice, you can apply such thinking to many situations. You could apply such thinking to debug an application, to architect an enterprise application, to approach a sales lead, to improve sales and marketing of your company and so on.

Learning how to think is the best intellectual asset you can build for yourself. This skill become even more valuable in this era of fake news and paid editorials.

Structured Communication

When you communicate in a structured manner, your listener (manager, peer, teammate) can take what you said, and do the awesome work they have to do. Instead, when you throw a pile of sentences at them, they've to work harder to decipher what you said.

The lazier you are, your audience has to work harder to understand what you say. The harder you work, the easier it is going to be for your audience.

Consider this: would you rather work with people who help you with your work or those who expect you to interpret their words for them?

What is a structured communication

Example

Here is an example from an actual interview session.

I usually ask this question: What was your achievement in the current project? Most often people will answer in chronological order and tell me unimportant things.

I joined the project in 2009. It had a team of 15 developers, 3 testers, and 1 business analyst. The project was written in old PHP. I don’t know PHP, so I had to learn PHP.

There was no one who knew the functionality. So we had to spend a lot of time understanding the functionality.

Once we understood the functionality and the existing code base, we started rewriting the code in Python. We chose Python because the business owners were interested in using the collected data for analytics and also had fewer security issues than the old PHP. Mind you, the current PHP has gotten ridden of security issues, though.

I worked with the team to re-architect the application. We completed the application within budget and schedule, though we had to work overtime many times.

This is a ramble. How can you improve this?

Start with the important point:

I took over a legacy application and re-architected it to a modern code-base within budget and schedule.

This answer will beget the question;

Wow, how did you do it

You can branch out from there keeping the interview engaging.

Why

We live in a world that is full of noise and bias. For your words to be of any use, they must cut through this smog.

Then we all have cognitive limitations. We can communicate and absorb information only sequentially. At the best, as research suggests, we remember seven items at once.

How

Instead of saying everything, say only what is needed. Filter out everything else. Of course, this requires work.

For any communication to be effective, you need answers to these questions:

• Who is the audience for this particular piece?
• What do they need to know?
• How much do they need to know?

If you think through and structure your communication, you'll stand out in any conversation.

There are structures for every communication:

• official emails
• comedies
• storytelling

One structure for official communication is called "Pyramid Communication."

Pyramid communication

In a pyramid style of communication:

• You state the key point first
• Then logical sub-points
• Support each sub-point with arguments and data

You have to remember that when you are preparing the content, you have to think bottom-up. You collect all data, analyze them which will inform you of the logical arguments, and then the key point will emerge out of these arguments.

But when you present, you start from the top and go down.

Building Wealth

You might wonder why building wealth pops up in an e-book about advancing your technical career. But wealth lies at the core of our career choices. Why do we switch jobs? Often, it's about money – am I paid well? You might not make the most, but you deserve fair pay. So wealth is fundamental, and without a solid sense of it, both your careers and lives could suffer.

When I mention wealth, I don't mean just money or making the most of it. You need your own definition of wealth. For me, it's about freedom and options. If I dislike a job or my manager changes and I can't work with the new one, do I have choices? Can I ask HR for a different manager or switch companies or cities? Money in the bank grants these options. So building wealth is crucial, and you should start with your first paycheck.

Building wealth takes time but isn't difficult. It relies on a few basic principles that you must follow consistently, rather than chasing trends or tips from friends.

First, always have six months of emergency funds in a savings account. Don't touch it, even if it sits idle with minimal interest. You should be able to access it quickly in case of an emergency. As your life evolves with marriage, children, and other changes, adjust your emergency fund accordingly. This safety-net offers peace of mind.

Second, choose a good mutual fund or low-cost index fund. In India, index funds grow at around 12 to 13 percent. Look for high-quality mutual funds or consult forums that track metrics. Invest consistently with a systematic investment plan, starting small and increasing as your career advances. Set up automatic transfers from your bank account each month and monitor your investments once a year. Let your money grow without constant attention.

Lastly, secure a solid term insurance policy to protect your family in case something happens to you. Medical insurance is another must-have, since medical costs in India are soaring sky-high. Opt for family coverage if you can and don't solely rely on the insurance provided by your employer. As you age, your needs will increase, so having personal medical insurance makes it easier to build upon as time goes by.

Develop a structured approach to building your wealth by breaking it down into three parts:

Earning is all about career growth – climbing the ladder and increasing your salary or developing multiple income streams. That's the theme of this booklet, so let's discuss growing and protecting.

To grow your wealth, invest in assets that yield higher returns than inflation. On average, inflation hovers around 6-7%. Any investment that outperforms inflation benefits you; if it does even better, that's great! You are not a full-time investor and so can't track every company and their growth plans. Leave it to the pros. Your goals should be the best return on investment.

As you grow financially, protect yourself by engaging in tax planning – not tax evasion. There are numerous ways to optimize your taxes: medical insurance, 80C, and other options are available. Consult with a skilled chartered accountant who can guide you through this process.

Hold off on real estate investments, especially during the initial phase of your career. Real estate returns aren't high enough to justify buying property early on. Your first five to six years should be about exploring opportunities and not being tied down to one place. Instead, focus on high-growth mutual funds. After half a decade or so, you'll have a handsome portfolio that could then be used to purchase property.

You could also consider becoming a freelancer or working as a contractor. This way, many of your business expenses—laptop, smartphone, telephone bills, can be deducted from your taxable income, helping you save even more money in the long run. This helps shield your money from leaks. To plan your taxes well, chat with a skilled accountant.

As our wealth grows, we might act foolishly – taking luxurious trips or buying stuff we don't need. So, to protect your money, avoid being reckless.

By growing and safeguarding your funds in this way, you'll gain confidence and open up new possibilities.