What does a CTO do?
As the CTO of a SaaS company, Kore’s job centers around the big picture like product vision and architecture, as well as recruiting. Even though he misses coding, as a CTO he needs to be able to oversee everything. Especially at a company like Frontastic, it needs someone with deep knowledge about complex systems to oversee all the vendor interactions and integrations. He can’t even train someone to do it as it's a kind of insight that is hard to train other people - it just doesn’t transfer well. Luckily he isn’t the only one at Frontastic with that insight but still, as a CTO he needs to be focused on the big picture. He does assist with debugging though if needed.
Tips for CTOs
Use pair programming to facilitate knowledge sharing (instead of pull request reviews).
Between the very-long-pull-request-fatigue, context switching, and the lack of teachable moments, Kore does not think the main branch-based approach and pull request reviews are the way to go. He prefers pair programming or at least trunk-based development instead.
“I think pair programming is far more efficient in knowledge sharing between developers than reviews of pull requests can ever be. The more complex a pull request gets, usually the less intensely it will be reviewed by your fellow developers.” - Kore Nordmann
Pair programming also allows for more knowledge exchange in which probing questions can be asked and architecture limitations discussed. Although one can technically discuss things in pull request comments, often it's hard to express things in writing especially if it doesn’t relate to just one line of code. However, pair programming could be draining and make a 4-hour session use as much energy you would use in an 8 hour day just because you don’t want to appear stupid! So it is something to keep in mind
There is always this implicit architectural or software design context, which you will always talk about when you do pair programming. "Why aren't you doing it this way?” You can explain about architecture/software design constraints you have or experience you had earlier when working on the same piece of code. This can happen by pull requests but it seems to happen seldomly. Especially the more abstract it gets, the harder it is to also write things down and document things…So it's the big picture vision that is also lost there as it is easier to communicate about or chat about it inside pair programming. - Kore Nordmann
Constantly look for new ways to contribute to the company -
The role of CTO and founder of a start-up often means that your role might change every 3 months. Of course, you have your own abilities and insight, yet as new people join and own contributions, you might find your role shifting and you need to find a new way to contribute to the company.
Ensure your employees have a work/life balance
Especially if you are scaling a startup, sometimes you work more than you need to. This is especially true to make sure that your team only works overtime if there is an extreme need like a deadline.
Find virtual equivalents of in-person interactions.
In a completely remote company, people don’t get a chance to run into random people from the company who are not in your department. This social interaction is so important that Kore created a virtual office in gather.town to encourage remote interaction. Frontastic has a virtual office that enables people to ‘run into each other’ and chat - something that usually doesn't happen in remote environments. In gather.town, you can build 2D game-like spaces where you can walk around and as soon as you get close to some person a video chat will start. Some people find the game aspect distracting but it works for them.
The virtual Office Set Up In GatherTown
- Kitchen Table: One signals that they are up for a chat by positioning their character at the kitchen table. Every morning a group of developers often have a huddle there - mostly the same people but other people do join.
- **Meeting Room: **The meeting rooms of Frontastic’s virtual office serve 2 purposes
- If there is an emergency - All the people who want to help with that emergency gather in the emergency meeting room. That way you see who wants to be involved. ..
- If someone is individually parked in a meeting room, you know not to disturb them at all.
- **Desks: **When a team member is at their desk it is implicit communication that they are engrossed in their work and one should try not disturb them unless it's urgent. Terrace: Socialising.