Yandex’s Head of repository tools on why mono-repo is the way to go for large companies
As a Head of repository tools at Yandex, Anastasia Abrashitova leads six teams and is responsible for Arcadia, a large mono-repo system at this company, which contains the complete code base for all digital services coming from Yandex.
Please explain the term “Arcadia” and why this development segment is important for Yandex.
Anastasia: Yandex is a company that has been around for almost 26 years and has a wide range of services that require millions of code files, roughly 10TB repos. The company uses its internal mono-repo- Arcadia- to store a large amount of code. It started as a repository for the search system of Yandex and later developed into a unique ecosystem of the entire company, that is, the services we provide.
Microservices are versatile, mono-repo is easier to develop and deploy
What exactly does a large-scale mono-repo software development strategy entail, and how do you apply it to your company when developing dozens of services?
Anastasia: A mono-repo approach enables efficient code usage, promotes knowledge sharing, and facilitates large-scale CI/CD processes. By using this type of coding, we prevent potential unauthorized changes. Along with the range of services Yandex provides, Arcadia is an essential tool that helps keep all our products up-to-date.
How would you compare the pros and cons of mono-repo vs. microservices?
Anastasia: Microservices offer versatility and room for growth, while a mono-repo is easier to develop and deploy.
Also, a mono-repo makes using code and sharing knowledge easier, while microservices have better control over applied approaches. Mono-repo has crucial advantages necessary for a large volume of work.
How do you see the future of the mono-repo strategy?
Anastasia: Mono-repos has been popular with large companies for almost a decade. The advantages of a mono-repo strategy rely heavily on the ability to read, modify, and reuse code from other projects. If a scenario is created in the future where developers have limited access to certain parts of the company’s code, the mono-repo concept becomes less viable. Therefore, the future and relevance of this strategy will depend on how the technology world faces the challenges of security and access control.
Processing more than 10 petabytes of data daily
What does your position entail, and what does your average day look like?
Anastasia: As a multi-sector leader, I focus on hiring talent for each challenge, building solid and balanced teams, and providing appropriate tasks to individuals to develop further. In addition, I am responsible for managing the strategy. In parallel, I monitor the development of the IT industry, primarily the company’s growth. As part of the infrastructure, we must constantly monitor what our professionals need to be efficient and develop their projects.
Also, the job of any good manager is to always look for new ways to collaborate between different teams and products and help keep the development infrastructure unified and balanced. Working in internal infrastructure is a dynamic field, combining technology, management, and customer satisfaction.
You currently manage six teams. That is a large number of people and a huge responsibility. How do you face potential challenges, and what technical profile of people do you manage?
Anastasia: I lead six different development teams, responsible for numerous parts of the Yandex infrastructure. This includes our extensive VCS program based on a virtual file system, a web portal for CI/CD, code reviews and searches, cloud technologies for remote information processing, and plugins to integrate well-known IDEs with our ecosystem. These teams work with various programming languages such as C++, Go, Python, Java, and Kotlin, spanning multiple technical fields, including web and client-side applications, backend and high load systems, systems programming, complex, efficient algorithms, etc.
What is it like to join a large international IT company like Yandex?
Anastasia: Yandex is a huge IT company with over 90 services that serve millions of people worldwide, with extremely extensive requirements. For example, we process more than 10 petabytes of data per day to index the search platform. It was exciting to join Yandex because I had the opportunity to build tools for thousands of developers besides doing a job that I love.
In particular, I worked as a manager and led several projects. After that, I joined Infrastructure, which is responsible for the development of the cloud platform on which the services of the Yandex company are based.
I was responsible for the development, implementation, and supervision of technology. Over time, I was offered a leadership position in the sector that combined my managerial and technical skills. Currently, I am the director of the infrastructure sector and I am responsible for a mono-repo such as Arcadia.
From university job fair to tech team lead
Tell us more about the beginnings of your career and what the first job you got was like.
Anastasia: I started my career at a university job fair that ended up as a junior software developer, focusing on C++ and SQL tools. As I gained more experience, I moved on to a more complex project that involved working with a C# program. After some time, I progressed to a senior position as a developer. However, I wanted to do work that directly affected users and their satisfaction.
Although I often researched UX design, companies recognized my experience in software development as an advantage and instead offered me room to improve further in the development sector. Then I got the opportunity to work for Kaspersky, where I started working as a user interface developer. Over the years, I’ve worked my way up from senior engineer to technical team lead, doing work that fulfills me.