Azimo Engineering in 2020
The year 2020 will be remembered as the very challenging one for the entire world. COVID-19 affected millions of people’s lives and changed literally everything — life values, our habits, global economy. For Azimo, It became more important than ever that, during the lockdown, our customers could send money to their loved ones without any issues, fast and cheap. It was even more challenging to us, because, like thousands of other companies, we went into 100% remote work within days, and remained so until today.
Yet, despite all of those difficulties, thanks to the hard work of all of our employees, we not only do our job, but we keep evolving our technical stack, so our services are better every single day. Our company’s mission says:
available to all.
Technology is Azimo’s heart that grew big and strong after many years. Here I wanted to share some of the highlights from the recent year, and show how the Azimo Engineering looks like in 2020.
One of the many factors of the company’s growth is the way its platform scales up. We address it from many different angles by:
- Expanding the network of our partnerships, so our services are affordable, fast and available all over the world,
- Scaling up the capabilities of our platform (e.g., how many API requests per minute we can handle without causing any delays),
- Optimizing infrastructure’s costs,
- Automating our manual work (e.g., financial reporting reconciliation, or processes automation for our internal teams like Compliance or Customer Support)
- Increasing the speed and parallelization of our development.
Increasing the pace of development isn’t only about hiring more people. In fact, the bigger headcount you have, the more organizational challenges you face. That’s why, a couple of years ago, we assembled Mission Teams — self-managed units that should have all the skills (engineering, product design, data analysis, and others) required to achieve their objectives. Until 2019 our Mission Teams had only dedicated backend engineers. Starting from 2020, we also distributed our client-side and data engineering workforce to make sure that our Mission Teams are fully autonomous. We don’t have Mobile, Web, or Data Engineering micromanaged silos anymore.
To make Mission Teams’ efforts possible, we also needed to improve the way entire Azimo’s Engineering work on a daily basis. There are three major areas, we focus on this year — technical stack quality, people, and metrics.
Azimo’s technical stack in 2020
Even if we develop all of the features within Mission Teams, they need to be plugged in somewhere. Both, the core of our system, and all of the microservices are interconnected into Azimo’s Platform.
Since 2019, after the company-wise migration process, our entire infrastructure is hosted in AWS (some of our solutions, like the Data Warehouse, also use Google Cloud Platform). Thanks to Infrastructure as a Code approach that we’ve been using from the early days, we have better control over costs, scalability, speed of execution, and risk management (we will share a separate blog post explaining all the details).
Azimo’s Platform is managed by our DevOps, SecOps, and SRE teams to address the full range of needs from our engineers, like process automation, shared components, security standards, and overall SDLC improvements.
The decentralization of our workforce introduced some new challenges to us. Even if most of our engineers work within Mission Teams, they still contribute to a single codebase, like Android, iOS, or Web application or JVM technical stack. To have better control over technical debt, long-term technical plans, and simply to avoid reinventing the wheel, we launched new initiatives — Engineering Guilds and Desired Architecture Design Spike.
At Azimo, the guild is a team of all engineers focused on a single platform or responsibility. Among the others, we have Mobile Guild (Android and iOS teams are intentionally connected to break down barriers and rapid idea development), QA Guild, or JVM Guild. They all focus on knowledge sharing, resolving cross-teams problems, and planning long term future for the tech stack, processes, and common standards.
Desired Architecture Design Spike
Sometimes the engineering guild is too narrow to handle top-level challenges, like our system’s architecture that should be inlined with the company’s long term strategy. To address that, we ran a couple-weeks long design spike process over our platform’s tech stack. Thanks to it, we learned about all of the dependencies between our solutions or different teams, identified risks, and coined a high-level development plan for our system’s architecture. As we are against rewriting code for no reason, Desired Architecture Design Spike brings us answers to what we should focus on in the coming years, and how to make a single, complementary roadmap for both hard, technical needs and product development.
Both, guilds and desired architecture design spikes, help us to address mid- and long-term plans for our technical stacks. They not only help us to inline engineering needs with product goals but also help save our time. Engineers in Mission Teams don’t have to reinvent the wheel (e.g., networking, data management, or architectural standards). They can focus entirely on the creative work to solve our customers’ problems and make our services faster, more affordable, and available worldwide.
At the moment of writing this article, Azimo Engineering is 50+ people, which soon change to 60+ (take a look at our open positions, as we keep hiring!). A lot of time has passed since we sat in one room and shared ideas by only talking to each other out loud. To make sure that our learning flows freely today, we invest a lot into our knowledge base, including contribution guides, documentations, architecture schemes, and many more.
But with such a big team, it is equally important to be up to date with the change. To address that, in 2020, we ran some new initiatives:
- AzimoLabs Newsletter — our internal mailing list that highlights technical changes, disaster stories, and recognizes our colleagues’ contributions to ensure we know who we should thank for making our life easier.
- Azimo Engineering Internal Blog — the place where we share all of the technical details about our platform, including high-level decisions and example implementations.
- Tech Evangelists — as we have domain experts, we make sure that their knowledge is widely shared during live-coding sessions and presentations.
We, as probably all engineers in the world, love metrics. For years, we’ve been measuring things like:
- Availability and stability of our systems and apps,
- Various KPIs, like a number of releases for our apps, or flakiness of our QA tests,
- Many other technical metrics around our infrastructure and microservices,
This year we also started tracking meetings’ scores. Especially now, during the lockdown, many of our engineers spend quite a lot of hours attending various meetings. To make sure that our time is invested in the best possible way, each of the meeting’s attendees votes on the meeting quality when it ends. We score various things — clarity, agenda, quality of the information we get, or simply if we got what we expected from the meeting. While the form is quite simple, results are compelling. Usually, after a couple of weeks, our meetings meet the expectations of all attendees — they are shorter, packed with more valuable information, and more engaging for everyone.
While our Mission Teams are outcome-driven, and each of them has their OKRs, it wasn’t always true in our engineering team. We changed it this year and experimented with OKRs in some of our teams. After half a year, we found that the experiment went quite well, and the quality of our tech stack improved significantly.
By the end of the year 2020, we plan to introduce OKRs to all of our engineering teams.
Everything else that happened in 2020
The things described here are just the tip of the Azimo Engineering iceberg. There were plenty of others worth having at least a separate paragraph, but this article would be much longer. Not to mention all of the initiatives that we keep having for years now.
And this is very exciting! Even during very challenging times, our hard-working team made it possible not only to operate in a fully-remote way, across many countries, but also we made our company better, and our services even faster, more affordable, and available. We know that today our customers need us more than ever before. So here we are — as one of our core values says: “for the hard working people”.
Towards financial services available to all
We’re working throughout the company to create faster, cheaper, and more available financial services all over the world, and here are some of the techniques that we’re utilizing. There’s still a long way ahead of us, and if you’d like to be part of that journey, check out our careers page.
All of the achievements described here wouldn’t be possible without such a dedication of every single engineer in our team. Credits go to all of you — Platform, Mobile, Web, Data, DevOps/SRE, and QA teams, and all of the Tech Leaders!