Embracing change: our Python journey

Yanis Hammada
The Qonto Way
Published in
5 min readMar 29, 2024

At Qonto, we’re not afraid of tackling hard challenges. And this one is massive.

Our back-end services are written in Go and Ruby, two languages we love and in which we have invested heavily. While Ruby has been our go-to language for high-level features, Go has been the backbone of our core banking services.

Our hiring strategy consists of mixing experts in one of our languages with engineers willing to learn the other — either Go or Ruby. However, this approach has started to show its limits: the pool of Go developers (or ‘Gophers’) is relatively small, with the pool of Ruby developers being even smaller. On top of that, a large majority of our engineers pick Go over Ruby when given a choice.

We plan to hire 150 engineers in 2024 and to sustain our growth trajectory, we’re introducing Python into our language arsenal in 2024.

We see value in pairing Go’s robustness and performance with a higher level language for rapid development. Our data services being written in Python made it a natural choice for further investment, rather than adding yet another language.

Hiring Ruby engineers is harder than ever

Taking a peek at the latest Stack Overflow survey from 2023, it’s pretty clear: Ruby represents just 7% of professional developers, while Python has taken the lead with an impressive 45% usage within the community.

Casting our minds back to Qonto’s beginnings in 2017, Ruby claimed twice as many engineers, with 11% of Ruby engineers, compared to Python’s 25% at the time. This is notably highlighted by the humorous web page titled “Is Ruby dead?”

From Stack Overflow Trends starting in 2008.

In the current landscape and with our ambitious hiring plans, sticking solely to Ruby and Go adds an extra layer of challenge. But adopting Python is more than a language swap; it’s a comprehensive plan involving preparation and training, from both our Talent Acquisition team and our Engineering team.

It starts with the expertise of a few

One of the reasons why Python holds such a significant share in the industry today is closely tied to the surge in AI projects and work over the last 5 years. Python has become widely adopted among data scientists, machine learning engineers, and other professionals in data-related fields.

This presents a unique challenge for Talent Acquisition: we’re on the lookout for Python engineers with experience in product development, particularly within product-driven teams and possessing a strong product mindset. We’re seeking engineers who have actively contributed to back-end codebases as our goal is to bring in professionals with robust Python expertise to guide Qonto’s engineers in elevating their skills in the language.

This is why the Talent team decided to take an exploratory approach when tackling this issue: understanding key terminology, exploring various sectors and companies utilizing Python for their products, and, essentially, engaging in conversations with Python experts. This will allow us to gain insights into their community and knowledge, providing valuable input for our talent acquisition strategy.

Defining our strategy

A few months back, we gathered our engineering leads and staff engineers for an offsite meeting. One of the workshops was to define a plan to introduce Python in our stack.

The main challenges we identified were maintaining our feature delivery pace and change management. To make the transition as smooth as possible, we set out a three-phase plan to gradually ramp up on Python. Our target? To have three teams use Python as their primary language by the end of 2024.

Great developer experience

Becoming proficient in a language and working efficiently require countless hours of research and head-scratching debugging sessions asking your screen why? Learning a new language means putting ourselves through that process all over again.

This clearly pointed to our first key insight: ensuring a smooth transition depends largely on providing an excellent developer experience.

Our goal is to standardize daily and repetitive tasks, like database queries or error handling, making the shift to Python seamless. This way, engineers can focus on creating value. We aim to deliver an experience for our engineers that matches the quality we offer our clients — no more, no less.

To get there, we’re dedicating the next two months to collaborating with Python experts (we’re hiring!). We are setting up our tech stack, crafting libraries, and writing developer documentation.

Learning and practicing in a safe environment

Learning is all about trial and error, and it’s most effective when you have the right amount of time and space to experiment.

From a simple business account in 2017, Qonto has evolved into a powerful business account with comprehensive financial tools, like invoice management, expense management, and bookkeeping.

In other words, picking up a new technology while also trying to deliver features is like changing tires on a moving car — possible, but hardly efficient or safe.

Our strategy? We’re setting aside dedicated time for engineers to learn Python with the guidance of seasoned Python developers. They’ll get hands-on by porting an existing Ruby service. This provides a chance to learn in a familiar setting, minus the time constraints of delivery.

Of course, we understand that some engineers might prefer a more direct approach to problem-solving, and they’re free to choose the learning path that suits them best.

Scaling knowledge

Training is a core component of Qonto’s culture. To empower all engineers on our new stack, we’ll extend our Academy, which has already trained 50 Qontoers on Ruby, Go, and, soon, Kafka. The Academy integrates theoretical learning with modules that are written and presented by our experts. Additionally, it offers practical experience through tailored guidance from a senior team member to translate the acquired knowledge into improvements in the codebase.

In the coming months, our Python specialists will build this training and ensure its success across our back-end team.

Our journey towards introducing Python is a testament to our commitment to growth and embracing new challenges. To make the initiative a success, we have a strategy to gradually ramp up, throughout the year, by first focusing on developer experience, then practical learning in a safe environment, and finally scaling to several teams.

As Qonto continues to evolve, so does our technological landscape, ensuring we build the best business account and financial tools for SMEs and the self-employed.

One last thing, our CTO knows Python, meaning that he can read our code now!

Special thanks to Héléna Djen for her contributions to this article.

About Qonto

Qonto makes it easy for SMEs and freelancers to manage day-to-day banking, thanks to an online business account that’s stacked with invoicing, bookkeeping and spend management tools.

Created in 2016 by Alexandre Prot and Steve Anavi, Qonto now operates in 4 European markets (France, Germany, Italy, and Spain) serving 450,000 customers, and employs more than 1,400 people. Since its creation, Qonto has raised €622 million from well-established investors.

Qonto is one of France’s most highly valued scale-ups and has been listed in the Next40 index, bringing together future global tech leaders, since 2021. Interested in joining a challenging and game-changing company? Take a look at our job page.

--

--