Teams should set and uphold a set of values. These come in different shapes and forms. Whether it’s being honest, transparent, responsible, or blameless. The list just goes on. Values are only important if they’re connected to behaviors, i.e. how you typically act regardless of the situation. Nobody behaves erratically over an extended period of time. Given enough self-reflection patterns emerge, and those patterns can be associated with values. I’d like to focus on just two of them in this article.

Throughout my software engineering career I kept hearing the word enablement thrown out a lot. Now, first of all…


Photo by Raphael Koh on Unsplash

The word monorepo is a combination between “mono”, as in the Greek word mónos (in translation, alone) and an abbreviation of the word repository. A simple concept if taken verbatim: one lonely repository. The domain is software engineering so we’re referring to a home for source code, multimedia assets, binary files, and so on. But this definition is just the tip of the iceberg, since a monorepo in practice is so much more.

In this article I plan to distill the pros and cons of having every piece of code your company owns in the same repository. At the end…


It’s a rare occasion that companies provide leadership training before you become a manager. A few days or weeks after what was probably one of the happiest days in your recent memory, the day you were offered a position outside of the individual contributor track, you find yourself with a million questions. You feel that you were tricked into signing something without reading the fine print.

That feeling you’re experiencing isn’t new, it’s just that you’ve all but forgotten it. It’s not knowing what you’re supposed to do. It’s being clueless. Because if you think years of writing software trained…


Solving programming exercises that require algorithms and data structure knowledge has never been my strong point. Despite this fact, I’ve had a relatively successful career in software development for the past ten years. I never needed to be very good at algorithms because I never needed them at the companies I worked for. But the past few years have taught me a hard lesson.

Computer science fundamentals is not something you should avoid or ignore.

Simpler times

Let me back up a bit. In high school I was part of a class that was specialized in computer science and English — I’m…


I’m going to go into the why and how of migrating a large JavaScript code base to TypeScript. Our team has concluded a fifteen month long journey of revamping our front-end stack. To up the difficulty, we had to did this in parallel with delivering new features to our customers. At the end I will also talk about whether it was worth the effort or not, and how it affected our development.

Start with “why?”

Hootsuite Analytics is a single page app built from the ground up in JavaScript. We rely on the React library, of which we were very early adopters. At…


Learning to write code in a new programming language is similar to learning a foreign language.

You may have been driven to study it by a tangible need such as moving to a different country, or creating new business connections. Or you may simply have decided it’s a challenge worth taking on. Regardless, it felt intimidating at first. Maybe you could already understand some words because they were similar to your maiden language. Maybe you could even read a newspaper and get the gist of it. But writing and speaking felt very difficult when you first started out.

The advantage…


“What is the point of software testing?”

My first reaction upon hearing this was of dismissal. Later on it got me thinking as to how I could convincingly present the advantages of testing. Because the usual arguments of “it’s the right thing to do”, or “you can’t scale a project without tests” can actually be countered pretty easily. We now live in an era of micro-frameworks, IDEs with integrated linters, and extremely short feedback loops provided by hot reloading technologies. …


I’d like to spend some time analysing the state of a very powerful, but somehow little known, at least outside of sysops/devops circles, solution to monitor your production environment.

Zabbix, according to the Wikipedia entry, started as an internal project around the year 1998. Three years later, it was released under the GPL license to the world, but took an additional three more years to reach a milestone 1.0 release, in 2004.

The project has now been going for almost 18 years, which is amazing considering the typical lifespan of most open source projects. Development seems to be split between…


A question I see often thrown around when discussing software development is:

“What is clean code?”

The question always struck me as audacious. It’s like asking a painter to explain how to paint properly. But hold on, a painter works alone, and the finished product does not have to conform to a rigid specification. A painter doesn’t have deadlines either, at least, I’ve never heard of any. So that comparison doesn’t work at all. Hmm. How about asking a bridge builder? He’s part of a team, and the project’s deliverable is met with extraordinary technical scrutiny. …

Ovidiu Bute

Software Engineering Manager @Hootsuite. Passionate about building large scale web apps. Opinions are my own. https://ovidiu.dev

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store