Even the best CTOs started with a "Hello World" (1/2)

Thomas Thimothée
Kerala Ventures
Published in
7 min readApr 17, 2019

Learning every day is a key success factor for any entrepreneur, especially young tech leaders, as they are often hired for their technical skills but then are quickly asked to do things they have absolutely no idea how to do: management, recruitment, etc. Although most people agree progressing is really important in frequently changing environments (startups), only few people succeed in doing so.

A great tech leader not only has to learn every day, but also has to ensure his team is learning with him.

Everybody says it:

For any startup founder I would advocate a healthy dose of continuous personal development: coaches, advisors, mentors and peer networking can all be really powerful tools in a founders toolkit over time.
Rory Stirling, What I struggle with as a VC

The numbers are clear: To hold on to employees — especially younger ones — entrepreneurs must make the workplace a classroom.
Falon Fatemi, Your Startup’s Best Retention Bet? A Culture Of Learning

Everybody knows it, yet so few people actually spend enough time learning and progressing.

1) Time loss vs Time investment

When I started working as a developer 7 years ago, I kept on thinking :

  • I don't have time to lose on learning what reactivity is
  • why would I need to learn about serverless architecture, I don't have performance issues
  • Learn management ? Isn't that a skill you either have or don't have ?
Credits: https://imgflip.com/memegenerator

You can only start spending time on learning efficiently once you've really understood that you are not actually losing time, you're investing it. Let's try using an analogy: "Time == Money".

Money/Time investment

Credits: Undraw

Most people first way of investing money is by a savings account, they therefore take a small amount of what they earn each month, and transfer it to this account, making it "impossible" for them to spend it directly on short term products. However, some weeks, months, or years later, they finally can spend this money to buy a car, a house, or anything else that would be difficult to buy otherwise because it's impossible to [earn enough money, have enough time] in one week to [buy a car, learn Ruby] (at least for me 🤔)

Nevertheless, people usually do not put enough [money, time] on their [savings, learnings] account because:

  • It's difficult to understand the value of a long term investment as it's too far in the future (Why would I need a [car, new skill]?)
  • It's way too easy to think that you need something now only to realize later that you didn't really need it (We all need the last [videogame, feature])

Also, spending too much [money, time] on short term [products, productions] often prevents you from going through a necessary selection process that helps you focus on high value-add projects.

2) Personal Investments in learning

Read / Listen

It may be obvious, but here are some tips I apply to myself when it comes to reading (or listening to) educational materials:

  • Measure the amount of books / articles / blog posts you read and give yourself a goal. I personally try to read 1 book every 2 months and at least 4 articles (Medium, SO, Quora…) a week about tech, management, or any other topic I find useful for my progression.
  • Organize the sharing of reading materials at your team level. At Kerala Ventures, everybody pitches in and can add articles in our Notion database. It helps us spend less time in finding awesome articles and more time reading them. Make sure relevant tags are applied to your articles (serverless, docker, ruby, etc.)

Book a specific slot in your calendar

The main struggle I had was the lack of structure I had when it came to learning. I now have a dedicated slot in my calendar. I usually do it on friday afternoon, as it's the time of the week I am too tired to be 100% productive and it usually requires less focus than when I'm coding. My calendar slot is 3 hours but honestly, the amount I s̶p̶e̶n̶d̶ invest changes every time.

The first time, I just read and read for 3 hours (Do not do that!), I now send emails to people I'd like to meet, find and book interesting meetups, read, spend time with teammates with whom I can exchange on new subjects…

3) Team investments in learning

Build your team culture around learning

Credits: Undraw

The best tech leaders all have a way to ensure their developers continue to learn everyday.

Here are some tips you can apply to small teams without needing the structure a bigger company might need:

  • Encourage your team to book a slot in their calendars
  • Organize (once or twice a month or so) team talks where each dev talks about something he recently learned
  • Clearly express to your team that any learning material is and will be paid by the company (Books, kindles, "really interesting" conferences, e-learning platform subscriptions). They usually won't ask, so ask for them. I repeated it time and time again to my team until the first developer decided to ask me for a book, read it, and become one of my best developer. Oh, and if it's not a company policy yet, I'd gladly hear your thoughts about why it shouldn't be!
  • Have a small library (or some kindles) in your office
  • Reward learning initiatives !
  • Use code reviews and pair programming. (I'll take more time to speak about these methods just below)

Code Review

Credits: Undraw

Peer reviewing is the evaluation of a piece of a code by a developer who did not write it. If you don't do it yet, you definitely should.

To understand what a good review process would be: The perfect code review process

To understand the role of the reviewer and the submitter: Code review guidelines

3 main goals are achieved by making sure every code is reviewed by a peer:

  1. The reviewer is learning by reading the code of a fellow developer
  2. The coder is learning by getting comments from his reviewer
  3. The code is challenged by another developer that can bring a fresh approach and focus on things like readability, maintainability, etc.
  4. https://help.github.com/en/articles/about-pull-request-reviews (I ❤️ Github btw, one of the tool you can use)

I believe there are mainly 2 rules that should be applied when using peer reviewing:

  1. Never use it as a way to make the coder think his coding skills are not sufficient enough. It's a learning and a quality tool, not a discussion nor a management channel.
  2. Always make sure each and every of your developers is reviewing, it is neither reserved for the senior developers nor the junior ones. Even junior developers can share some great insights while reviewing, and even senior developers can learn a lot reading the code of a junior developer.

Pair programming

The right guy hair is soooo cool. Credits: Undraw

For those of you who don’t know what pair programming is yet: Pair programming.

And here are some advices for implementing a healthy pair programming environment:

  • Book a slot for pair programming in your calendars!
  • Pair programming is definitely slowing you up, it's a natural tradeoff between quality and speed, so make sure not to put too many slots.
  • I personally recommend adapting the frequency to your team level, making sure every developer can do 1 session of pair programming a week but every senior developer does not have more than 2 a week. The average session is up to you, but 2 hours is a good starting point.
  • Do your best to make the levels of pair programmers heterogeneous, keep in mind it's also a learning tool.

Cheers 🍻

I just read this article and I loved it : The best developers are raised, not hired

If you want to go further, here is my second article : Even the best CTOs started with a Hello World (2/2)

Youhou ! やった!This was my first medium story, the first one of (I hope), a series that has one goal: Reflecting on my mistakes as a tech manager and providing insights to the next ones, and creating debate on building a great environment for tech teams to develop (see what I did there) 😆. I want to share what I learned those last years, as a freelancer, then as a CTO at Inch, and currently as a CTO at Kerala Ventures. Thanks to all the entrepreneurs I met those last months and that helped me understand more and more about these topics. By the way, Kerala is Hiring

My stories are mainly written for any tech manager leading a team of 1 (omg, I need to do everything here) to 20 (omg, why do I (think I) still need to do everything here) developers. Why ?

There are a decent amount of books, events, talks and coaches for CEOs but we hear very little about the struggles of being a CTO. I get it, talking about mistakes we made learning on the job isn’t glamorous, it’s actually quite embarrassing and painful to think about. But part of this exercise is therapeutic, the other will hopefully help current or future CTOs. Building confidence as a CTO

About Kerala Ventures

The Kerala team is insanely focused on bringing massive support to its entrepreneurs in tech, operations and hiring (see first20.club). We have a unique know-how in developing startups from scratch to “unicorns” (Lafourchette, Doctolib, see our story)

Kerala Ventures invests from 100k€ to 1.5m€ in great entrepreneurs

--

--

Thomas Thimothée
Kerala Ventures

Founder @ Shortcut & Oxynum. Sharing some humble advices to new Tech managers, hopefully I'll help you avoid doing all the mistakes I did.