Why I Stepped Down as CTO

I left Skuola.net as CTO to join Radical (formerly BAGBNB) as Engineer.

TL;DR

I jumped boat, changed role, changed tech stack, I’m enjoying a bit more of tranquillity, I have a bit more family time, I got my (dev) passion back! Way to go folks ?

Long Story

I’m just sharing some reasons for this decision and few insights on the past few years, for my future self, for the ones who have asked or will ask. Also, for a good DRY approach šŸ™‚

It was a positive experience overall, I did achieve many good things during my tenure as CTO:

  • Took charge ofĀ entire IT dept, code and infrastructure theĀ hard way, inĀ half a day, lots of pieces were missing but eventually I managed to figure out everything.
  • Cut downĀ 30%Ā of IT initial costs.
  • Empowered a “Flexible Tech Stack” approach: PHP, Node.js, Python, Bash were some of the languages used, no hard rule for fixed tech stack.
  • Managed to take control of the unstoppable flow of tasks.
  • Improved loadĀ of the web servers with CDNs, cache layers, version upgrades, code optimizations and fine-tunings.
  • Established Stand-Up meetings, Planning Poker (then dismissed), Code Review, Weekly Demo, Quarterly TeamĀ Retrospective, Tech Radar Review Sessions, and Learn at Lunch.
  • MigratedĀ HTTP to HTTPS, upgraded allĀ bare-metals servers,Ā upgraded PHPĀ 5.6 to PHP 7.2 (and to 7.4 WIP),Ā upgraded SymfonyĀ 2.7 to 3.4 (and to 4.4 WIP).
  • Managed to learn a lot aboutĀ system administration, server management, and also enjoyed a few trips in the server farm.
  • GotĀ out of comfort zone, had to face public speaking, conflict management, budgeting, vendor management, people management, managing up, down and across.
  • Had the “luck” to get some DDoS and eventually manage to “survive” them.
  • ImprovedĀ Joel Score, implementedĀ The Twelve-Factor App.
  • Took part ofĀ PCI Compliance Check,Ā Digital InvoicingĀ andĀ GDPRĀ implementations.
  • IntroducedĀ Infrastructure as a CodeĀ with Terraform, Packer and Ansible.
  • Created a wiki to document everything (or as much as possible), as there was no trace of documentation whatsoever, and kept it healthy and up-to-date.
  • IntroducedĀ Continuous Deployments, reduced pipeline execution time of 80%, increased YoY number of deployments of ~60%.
  • Dismissed old rusty Excel spreadsheet and introducedĀ JiraĀ and a ticketing system.
  • AutomatedĀ KPIĀ extraction and reporting,Ā Four Key MetricsĀ andĀ application telemetry.
  • Helped exposing andĀ aggregating core businessĀ data via BI tool Tableau.
  • Introduced a mixed approach of bare-metal and cloud servers.
  • Got anĀ NPSĀ amongst my colleagues ofĀ 8.7/10Ā (responses available).
  • Hired anĀ awesome team.

Although won’t have the chance (at least not in Skuola.net) to pursue some goals I wanted to achieve and enjoy, like:

  • Introduce effectivelyĀ NoEstimates.
  • ExtendĀ effective retrospectivesĀ company-wide.
  • KeepĀ growing the teamĀ (quantity- and quality-wise).
  • ImplementĀ DDD,Ā CQRSĀ andĀ Event Sourcing.
  • Switch toĀ KubernetesĀ &Ā Chaos Engineering.

But as we all know, all good things must come to an end, like my previous experience abroad, it was necessary, it was good and I just moved on and came back to Italy. Next one, now this one too.
Don’t get me wrong, it was a good (rollercoaster-y) time as CTO, although it was going to happen, it was meant to, but why? There’s no just oneĀ reason.

I so long dreamed of being a CTO, stepping all the way up the ladder. Truth is that was aĀ change of career, not a “level upgrade”. With the “promotion” I had to start over and focus on the business part, on the product, on metrics, on the processes, and last but definitely not least on the people. It was challenging, it was fun sometimes and it was pain some others, but that was part of the game.

IT Ladder
Job Titles & Levels: What Every Software Engineer Needs to Know

I didĀ grow so much with this experience, I worked hard for it, I worked hard in it, I’m glad I took the job, I’m gladĀ MarcoĀ trusted me back at the time, I’m glad I found some amazing people in my team and in the company, but I’m glad I left too.

We managed to pair all the tech tasks achieved with real business needs, so the company was pushing value, faster and faster, to the customers, while the IT was adjusting, growing and evolving architecture and infrastructure.

Despite the fact that Skuola.net is a small company, with less than 20 people, and being “flexible” and “adaptive” to market needs, all the processes and procedures have been “normalized” in the past year, some went smoothly some other not so easily. We did manage to keep the communication flowing across all the departments, regardless of the overall receptivity of the ideas.

Cover of IT Metrics in Real Life
IT Metrics in Real Life

With a “kaizen spirit” in mind, I started to monitor all the possible improve points and then take actions accordingly. After monitoring and keep improving I decided to share those metrics and the approach followed with some slides and a speech at a local meetup.

I left this legacy toĀ Davide Dell’ErbaĀ who is promptly guiding Skuola.net after me, andĀ will have fun pursuing on those goals šŸ™‚

Also, the fact I’ve been on-call 24/7 for 3 yearsĀ kinda took a toll on me, I needed aĀ break, I needed toĀ unplugĀ andĀ detoxĀ a bit.

Then Charity Majors reallyĀ got me thinking, it was true to me and I needed to act “quickly”, timing-wise I was still in, so back to engineering, my roots, my passion. There’s no final decision nor hard-no going back to management, for sure not right now.

I was so deeply committed to my role as a manager that I went, unfortunately, radio silentĀ for years:

GitHub Contributions in 2017 GitHub Contributions in 2018 GitHub Contributions in 2019 GitHub Contributions in 2020

I became more active and involved in open-source the last period of Skuola.net as my dev passion kicked back in.

I also focused a bit more on security, it was long overdue in my todo list, I attended many courses, also thought of a change of direction and jump from programming to cybersecurity. For now, I’m staying in the “safe harbour” of programming.

List of Certifications obtained during COVID-19 PandemicDuring this pandemic, I had the chance to grab a bunch of free deals and followed over 20 programming coursesĀ (some hereĀ andĀ here). I felt I needed to get “back in shape”, even though in the last 3 years I wore so many hats that, IĀ believeĀ maybe, I became “good enough” on many areas of the IT dept.

I felt like a Jack of All Trades and a Master of None, and that gave an edge while being CTO, and will also give me an edge as any other role, as the T-shaped mindset is more flexible and adaptive, but the daily role juggling was something I needed to change or at least adjust.

Back in Sep ā€™19 I certified myself as AWS Solutions Architect, and I was working daily for a while on the infrastructure and architecture of Skuola.net, also because of my role in helping my dev colleagues to work in a better and smoother way, I naturally fell in love with DevOps.

I’ve started to “question” myself, built a Don’t Know List, went back to basics and challenged myself, and planned to keep doing so over time: I started some programming challenges on HackerRank. I challenged myself with 2 consecutiveĀ year planĀ and trying to stick to them to get the most out of the spare time I have.

So, in the past few months, I proudly produced and/or contributed to:

I’m sure that more ideas and projects will come in the near future ?

If you’re wondering what resources helped me the most inĀ surviving and taking control even more in the C-role, this is my list for you:

I thankĀ GiulioĀ for this new challenge, of joining Radical, having good time and letting me grow even more.

Let’s do big (coding) things now! ?


Update:

Extra link of similar experiences: