How to update a program for millions of users in 10 minutes

This article is just a small part of what Denis Arslanbekov shared in an interview for our project GeekSpeak, available only to students enrolled in GeekBrains’ paid programs. Denis Arslanbekov helps developers automate the delivery of their code to users. He works at ANNA Money, a British fintech startup, where he focuses on company infrastructure, automation, and developer support.

Delivery Time is Reduced

My work involves helping developers automate the process of delivering their code to users. Every day, vast amounts of code and numerous features are developed, with the goal of delivering that code to users as quickly as possible so the business can generate profit. “Time to market” is the time taken for your code changes to reach production and the end user. I focus on reducing this time. My personal goal is to cut down the hours, minutes, and even seconds spent on code delivery. Every second matters. As a company grows and more teams contribute, the amount of code increases, making it essential to quickly deliver it to users.

It Used to Take Several Days

I work on infrastructure – everything that allows developers’ code to be deployed. Every developer creates specific features, whether in frontend, backend, or data science (a field that’s become very popular). They all need a way to deliver what they’ve written to servers, from which users directly experience the product.

Previously, developers would write code, and to deploy it on the server for users to access, several steps had to be completed. These steps included pushing code to the server, creating a release on GitHub, and testing, which could take several hours or even days.

Now, with DevOps and Site Reliability Engineering (SRE) approaches and automated infrastructure, we can automate these steps. Based on automated results, we can make further decisions.

Releasing in 10 Minutes

Suppose we created a release on GitHub and tested it, but the release is flawed. What do we do next? In this case, a developer or tester must manually decide whether to release the code to users.

In our company, we release hundreds of changes daily, and each release takes 10 to 15 minutes. We create a feature, click a button, and within 10 minutes, it’s deployed for all users, provided the tests pass and the functionality is adequately covered.

A Foundation in Programming is Essential

It’s important to understand how operating systems work internally, how they can be automated, and how we can solve issues within operating systems. DevOps requires knowledge in programming, automation, operating systems, and how these components interact.

I think this field requires 70% focus on operating systems and 30% on programming. However, this applies only to those already familiar with programming. It’s best to start with programming, as a solid programming foundation is essential for diving into this field.

The Full Interview is Only Available to GeekBrains Students

This is just a small part of what Denis Arslanbekov shared in his interview for our GeekSpeak project. In this project, we speak with prominent scientists, developers, and entrepreneurs who share their knowledge and experiences, discussing complex topics that require reading dozens of scientific books and articles, writing hundreds of thousands of lines of code, or founding several startups.

Each interview comes with recommended resources for self-improvement, including books, films, lectures, presentations, podcasts, and much more.

Leave a Comment