Since I can remember myself, I was always coding stuff. First it was some add-ons for mIRC, then some Delphi scripts, then websites – no wonder I ended up choosing Informatics for my professional career. I had a lot of fun coding but fast-forward to 2017 and I switched from coding to leading development teams.
This led to a few people asking me about what my daily life looks like. What challenges am I solving? Am I still coding? Is management as fun as coding? What I think also adds a bit of spiciness is that I work at an agency, so my job requires me to oversee multiple different products every year rather than focusing on a single product during my whole time.
It was not always like this, though: back in the day we had one project that we were working on, so let us go back to the time of foundation of our small agency called mindnow, when we only started taking on development projects.
Back in the middle of 2018 when we took on our first project, we only had three developers, and one of them was me. I was not only coding at that time, I was also doing devOps, writing documentation, doing support and also doing whatever my partner-in-crime, CEO of mindnow, Jakob needed. Sometimes I would get a message from him in the middle of the night telling me about this awesome idea that he has and he needs some sort of landing page done quickly. Fun times.
Jakob and me back in January 2018
As you can imagine working on all these things at once was challenging in itself, but then we also had to build reliable code that satisfied the clients – and with looming deadlines it was hard to do. Shortcuts were taken which needed to be refactored later, tests were skipped and at that time we had no Continuous Integration and no Continuous Deployments. We had almost zero automation as we were hard focused on delivering the promised functionality until the deadline.
As the team was small, we communicated constantly – it was a nice bonding experience, we joked, laughed, worked and cried together. But such communication in a team of three developers is a double-edged sword – everyone knew what was happening but no one was saving the shared knowledge as documentation. Slack was literally filled with snippets of code or bash commands that were chaotically distributed across multitudes of channels and DMs.
We were a team of three developers – who needs strict processes? Everyone knew implicitly the unspoken guidelines – meaning everyone was doing what was needed to deliver the project, but if a new team member were to come in, he would not have any information to start on.
Onboarding was a problem, not only that – but hiring new people in general was a challenge. It was hard for us to find people who want to join a small team, and as we are an agency – we needed to plan our resources meticulously, otherwise we would not have enough money – we can’t just onboard new people without having enough clients signed. In the end we had to take risks, hiring new people without having new contracts signed, which is not only stressful, but could’ve gone very badly if things didn’t work out.
With all this chaos going on behind the scenes – we were trying really hard to look professional. Growing was also in the back of our minds and we always knew that if we want to scale we need to start doing things differently. So step by step we started improving. I can’t say it was a miraculous change, because it wasn’t, we’ve made a lot of mistakes along the way, but eventually we survived our first year and as time flew by, we’ve grown from 8 to 30 people and then downsized back to 23.
We had a company retreat in Sicily about half a year ago. It seems quite easy to do, but ended up quite a challenge as we needed to fly in people from several different countries and there’s no direct flights. Our Ukrainian colleagues spent 16h in Istanbul on their way back because their plane got delayed, so instead of arriving on Tuesday for work, they arrived on Wednesday and had to re-energize until Thursday. But still, everyone loved the trip and we’re planning on doing something similar this year.
Sicily Trip with the awesome minds
Since we’ve grown quite a bit we’ve also invested a lot into our infrastructure, our processes and our documentation. We were lacking these things in 2018, but now we have quite a huge corporate library which contains information on everything.
Growing bigger means on any normal Tuesday we have several development and UX projects running in parallel. All of them require attention and 110% output, with us becoming more mature means clients expect higher standards from us, and we pride ourselves on delivering excellence. Making sure all the details are ironed out from first communication to final delivery, then double checking, reiterating, documenting – it takes quite a bit of effort to stay ahead of the curve. As CTO I have to keep up to date with the latest knowledge or even better stay one step ahead of everyone. I regularly attend workshops, conferences, courses and read a lot in my “spare time”. But that’s okay as I want to grow personally and professionally and mindnow does pay for all training activities, books etc.
All this sometimes leads to an unhealthy work-life balance where the work comes home with you. For me personally, I’m having fun building the projects and trying to stay mobile and be up to date. I work from the office, from coffeeshops, from home, from different countries. As long as there is an internet connection and a bit of privacy – I can work. Oh that’s another wonderful thing about mindnow. Everyone can work from everywhere, flexible and spontaneously.
Resource planning is still a headache, growing in the midst of uncertainty is not good for your nerves – projects come and go, but the people you hired stay and we need to make sure that at any given time people have something to work on.
Supplying challenging projects to the team is not as easy as it seems. And as smart people always want to be challenged each next project needs to be more complex than the last one. More complex doesn’t necessarily mean bigger, it can also mean going deeper into the simple solutions, optimizing performance, adopting new technologies, introducing new frameworks etc. We always try to go a step further in each new project – widen our horizon with some cool new things.
Communication became a challenge – I no longer have enough time to speak with everyone everyday, I try to empower my team to solve the problems on their own. We work with SCRUM methodology and each team is a self-sufficient unit that can function without me looking over their shoulder. We have a lot of articles in Notion that cover myriads of topics that help the teams function on their own, we also hired a Scrum Master to keep everything in check. Nonetheless I am responsible for all the projects and their delivery on time, so I try to keep an eye on the development myself.
Overtime I understood that fighting all the fights is not really my job. My job transformed from doing everything to letting others do everything and still make sure we deliver on time and high quality.
The paradigm shift that – it’s no longer about me, it’s about my team – is what made me grow as a leader. Making sure they are efficient, making sure they want to deliver high quality code, making sure they are happy to take on the challenges. This changed my perspective on the meetings that I have and the time that I spend on writing all-kinds of documents. You’re no longer doing it for yourself, you’re doing it for them.
When I was coding full-time, I could quantify my output directly – how many features I implemented, how many LOC I wrote, how many tasks finished in Jira etc. But now there’s no quantifiable metrics that I can judge myself personally against, it’s all relative. I talk with people, I share my expertise, I carry the responsibility for the delivery of the projects – so I’m doing good when my teams are delivering good software on time, but there’s no direct factor which I can influence. Monthly meetings, presentations, one-on-ones, empowerment talks, decisions for new technologies, these are not directly related to success. So it’s gotten harder to measure oneself.
Every morning I start with a review of all the projects that we have, I take a look through the commits, JIRA and the slack channels, just to be in the loop of what’s going on and to resolve blockers before they arise. 99% of the time I do not interfere, and very rarely I just write to the team-leader to clarify something that caught my attention.
My Mondays are filled with internal and external management meetings. Internal meetings are about syncing what went on last week – sales, pitches, product releases, blockers etc. External meetings are about syncing stakeholders from different companies that are working on the same project.
Any other day I usually follow the same algorithm: Problems come in through different channels – email, slack, personally. I try to prioritize and add them to my TODO or solve them immediately. Drink some coffee & repeat. I started creating blocker events in the calendar to do some work that requires concentration. This is usually during remote work and later in the week.
During the last year there were quite a few projects that required me to do some intense focused work. For example I like thinking about distributed systems, performance and making sure our systems are fast & scalable. I spent quite a lot of these time-blocks deep diving into Kubernetes. What started for me with “Oh this seems cool and not that hard, I can do this in one weekend” ended up several months later and with some new gray hair.
To solve the communication challenge, I started booking time to talk with developers, it’s always fascinating to hear how they built this cool new feature and we discuss how we can improve it. My goal is to make my work and that of my team more efficient and better. This is not always easy and requires a higher input of resources at the beginning. But in the long run it pays off. And I can sleep better at night 😉
In conclusion, I’d like to say, we’ve done a great job at adopting new processes, new technologies, and I’m really proud to be working with such smart and cool people at mindnow. There are many projects ahead of us and we will never stop improving. Have a project? Let us put our minds to it – hit me up at [email protected]