Driving Innovation: How We Integrated Golang into Our Tech Stack at Boozt Platform

Ivan Smirnov
Boozt Tech
Published in
6 min readMay 10, 2024
Some short Boozt Golang club meetup

We integrated the Go programming language into the Boozt Platform tech stack. Reveal how we did it in this blog post, written by Ivan Smirnov, Senior Software Engineer and Team Lead.

The attitude in Boozt and among the platform team is that we are always open to new challenges and opportunities.

We have a “Care-why” mindset that is not only about knowing but also caring. Being curious about why things are the way they are, choosing to act, and going the extra mile for the customer, the company, and each other.

So, let’s start with the question “Why?”

Why add another programming language?

Work is one of the biggest parts of our lives and it is important to like what we’re doing and be proud of work results. Almost every other software developer within Boozt Platform is senior and we are happy to have many colleagues working within the company for many years. So we have plenty of experts within the PHP/Symfony/MySQL technology stack.

After some time, we started thinking that another programming language could bring more challenges into our daily work and would be an attractive option for those who want to further develop their backend programming skills.

This would perhaps not be possible everywhere, but here at Boozt we have this “Care-why” mindset, and the values of Trust, Freedom, and Responsibility are genuinely lived by in our daily lives. So we sat together with a few teammates and decided to move forward with the challenge — introducing a new programming language to our current backend tech stack while ensuring it creates tangible and sustainable value for the company.

Who should drive the changes in the company?

We don’t have micromanagement or somebody telling us what or how we should do something. At the same time, we know the company’s goals and do our best to support them. So, we don’t need to ask for permission to learn something new or try something new, but we are responsible for keeping in mind how an innovation will create value for a company. Everyone can drive the changes in Boozt.

Current tech requirements

There were certain aspects of our technical environment to consider when thinking of which language to choose:

  • We have all our Boozt platform systems on the Google Cloud Platform (GCP)
  • We actively split monolithic systems into smaller systems and services
  • Interactions between systems in many cases require using a message broker
  • Performance is required on high-loaded systems

On the other hand, it was important to keep in mind PHP limitations and downsides related to concurrency and the “kept alive“ process needed when consuming async messages from the broker. The PHP was created to do some logic before we show an HTML page to the user.

After PHP is done with its preprocessing work, the process dies. This behavior causes some complications if you want to build async apps on PHP, such as Consuming async messages. We wanted a language that could be easy to learn, use, maintain, and deploy. After several discussions, we thought Golang could cover all our needs perfectly.

Why Golang?

As we use GCP, adopting a language compatible with Google products seemed like a good idea. Google created Golang, which is used in many Google products, so employing this language aligns seamlessly with our technological framework. We are splitting monolith systems into microservices, and Golang is suitable for such systems where some services serve/handle some data via API. The Golang concurrency feature allows us to consume async messages from the broker.

Simplicity is at the heart of Golang — it’s easy to learn, compiles fast, and runs fast. This makes developing a system ready for production in record time easier. Plus, its ease of use allows for quick and easy maintenance. But the performance benefits don’t just end there. Golang doesn’t have a VM (Virtual Machine), so it can be compiled directly into machine code. If your app does the work and consumes fewer resources for calculations, your code will be more sustainable and eco-friendly. This is very important if you have massive traffic on your app, and even small improvements can save a lot of machine time, resources, and money. Golang is designed to handle concurrency, which makes Go a perfect fit for utilizing all that processing power.

Later, we discovered that Golang was among the most popular languages of interest for software developers. According to an extensive HackerRank report, which surveyed more than 110K software developers worldwide, Golang was the number one language they plan to learn in the future. This was a nice addition confirming that we were thinking in the right direction to enable senior developers’ technical growth.

Chart from HackerRank report

The silent evolution of Boozt’s Tech Stack

After we clarified why we needed to grow Golang’s skills, we started thinking about how to move forward. We decided one hour a week was the right amount of time to keep curiosity, engagement, and progress.

We picked one new project from our working environment and everyone worked on it — we believe doing something for real, not just in theory, helps us learn better. Having fun and working in a good atmosphere are not less important for motivation, so we named our meetings “Golang club”, had them at the end of the working day, enjoyed company-provided pizzas, and kept positive vibes of learning.

During the meetups, we observed and discussed different challenges and topics that popped up during the project. We also had talks and presentations on best practices in Golang and shared our knowledge with each other.

Over time, more and more people joined the club and the format of our meetings kept evolving. We started organizing Golang certification for the participants and split the members into smaller groups to work on concrete projects. We kept meeting weekly until we reached the phase when we no longer needed a Golang club — we were already coding in Golang daily on multiple projects we worked on. Golang became part of our tech stack. Nevertheless, we still meet often to share our knowledge and keep improving our skills, but that’s just a natural part of our culture at Boozt.

As a result of this initiative, Golang was adopted into our Tech Radar and became a part of our stack of technologies. Today, 36 software developers can code in Golang, and 12 of them are certified. We have valuable projects written on Go, some of which are:

  • Reaction: our tailor-made system which handles returns from the customers. This project is fully written on Golang
  • Distributor API: the small but useful microservice, which is playing the role of “Source of truth” for our distributor’s data
  • Boozt CLI: the app for auto-configuration development environment. It saves a lot of time for developers
  • Boozt DB: the app that helps to connect to different test/prod databases
  • GitLab webhooks: automation for CI/CD pipelines and integration with other systems.
My Golang course certificate

Conclusion

Change can fairly easily happen in a company where employees are allowed to drive it and the company recognizes and supports them. However, having people with the right mindset within the company is not less important. In Boozt, we have a critical mass of intrapreneurs who are moving the company forward and adopting innovations.

If we were to name key success factors when considering implementing new language within the company, we’d encourage to:

  • Be open to change, there are ways not to be stuck with the same technologies
  • Being in touch with like-minded people, learning, and creating in a group is more successful than individually
  • Build the projects around motivated people, support their initiatives, and give them an environment needed

To learn more about how Boozt works with tech click here.

Follow me on LinkedIn.

--

--

Ivan Smirnov
Boozt Tech

Team leader and Senior Software Engineer at Boozt.com, the best Nordic e-commerce company.