
Alexander Baranov works at Veeam as an R&D director and lives between the two countries. He spends half of his time in Prague, the other half in St. Petersburg. These cities have the largest Veeam development offices.
In 2006, it was a startup of two businessmen from Russia related to software for backing up virtual machines (the name V [ee] [a] M, a virtual machine, came from the same place). Today it is a giant corporation with more than four thousand employees around the world.
')
Alexander told us what it is like to work for such a company and how difficult it is to get into it. Below is his monologue.
Traditionally, we will tell you about the assessment of the company at My Circle: Veeam Software received an average rating of 4.4 from its employees. He is appreciated for a good social package, a comfortable working atmosphere in the team, for interesting tasks and for the fact that the company makes the world a better place.

What products does Veeam develop
Products that provide IT infrastructure resiliency. Fortunately, over time, iron has become quite reliable, and clouds provide fault tolerance. But the mistakes of people still exist.
For example, the classic problem of incompatibility of updates with the infrastructure of the organization. The administrator rolled out an unverified update, or it occurred automatically, and because of this the operation of the enterprise servers was disrupted. Another example: someone made changes to a common project or set of documents, considering it appropriate. Later, a problem was discovered, and it was required to return the state a week ago. Sometimes such changes are not even associated with conscious human actions: cryptolocker viruses have recently gained popularity. A user brings a flash drive with dubious content to a working computer or visits a website with seals, and as a result, computers on the network are infected.
In a situation where the evil has already happened, we give the opportunity to roll back the changes. If changes are only planned, we allow checking their impact in an isolated infrastructure, recreated from a backup of the data center.
Often, backups play the role of a “silent witness” during an audit in an organization. Public companies need to comply with the requirements of external regulators (for example, the Sarbanes-Oxley Act), and this is no accident. In 2008, the state of the world economy was shaken due to the fact that some participants in the financial market, roughly speaking, falsified the results of their activities. This launched a snowball, and the economy dipped. From that moment on, regulators have closely monitored processes in public companies. The ability to restore the state of IT infrastructure, mail system, document management system for reporting periods is one of the requirements of auditors.
Microsoft, Amazon, Google and other cloud providers have native solutions that back up resources within the cloud. But their decisions are "things in themselves." The problem is that large companies in most cases have a hybrid IT infrastructure: part of it is in the cloud, part is on the ground. Client-oriented web projects and applications typically live in the cloud. Applications and servers that store confidential information or personal data are most often located on the ground.
In addition, organizations use several different clouds to build one hybrid to minimize risks. When a multinational company has built a hybrid cloud, it needs a single and common fault tolerance system for the entire infrastructure.

How difficult it is to develop such products
New technologies are constantly emerging that require study, adaptation and experience. When we first appeared and were a startup, few people took virtualization seriously. There were applications for backing up physical data centers. Virtualized data centers were looked at as toys.
We started supporting backup with virtualization in mind from the very beginning, when the technology was used only by enthusiasts. And then its explosive growth and recognition by the standard happened. Now we see other areas that are waiting for the same qualitative leap, and try to be on the wave. The ability to keep your nose downwind is sewn somewhere in the DNA of the company.
Now the company has already survived the time of startup. Now, stability and reliability are important to many large customers, and the decision on fault tolerance can last for several years. Adaptation, product verification, compliance with numerous requirements. It turns out a funny situation - on the one hand, you need to ensure reliability and confidence in the products, and on the other, to remain modern.
But the new is always associated with a certain level of ignorance of technology, the market, or both.
For example, after several years of work, we realized that we needed to use the built-in capabilities of storage systems to speed up backups. So a whole direction was born for integration with iron producers. Today, Veeam partners in this program are all the largest players in this market - HP, NetApp, Dell EMC, Fujitsu, etc.
It also seemed to us that virtualization would supersede classic servers. But life has shown that the last 10% of physical servers remain, virtualization of which is either not possible or does not make sense. And they also need to be backed up. This is how Veeam Agent for Windows / Linux came about.
At one time, we felt that it was time for Unix to take its place in the museum, and refused to support it. But as soon as we reached customers with a long history, we realized that Unix is ​​more alive than all living ones. Nevertheless, they wrote a solution for him.
The same story was with tape drives. We thought: “who needs them in the modern world?” Then we worked on such features as granular data recovery or incremental backup with a synthetic full copy - and you just can’t do this on a tape, you just need a disk. Then it turned out that tape drives work as one of the means to provide unchanged backups that are needed for long-term storage - in order to come in 5 years, take a tape from a shelf and do an audit. Well, the size of the customers - we started with small ones - and nobody uses the tapes there. And then they grew up to customers who told us that they won’t buy a product without tapes.

What technologies are used in Veeam
For tasks related to business logic, we use .NET. We started with it, and continue to optimize. Now in a number of solutions we use .NET Core. When the startup was just formed, the team had several supporters of this stack. He is good at writing business logic, development speed, and the convenience of tools. Then it was not the most popular solution, but now it is clear that those supporters were right.
At the same time, we write under Unix, Linux, work with hardware, this requires the use of other solutions. The system parts related to the information about the data that we store in the backup, data retrieval algorithms, algorithms related to the operation of iron - all this is written in C ++.

How employees are distributed around the world
Now the company employs about four thousand people. About a thousand of them are in Russia. The company has two large groups. The first is engaged in the development and technical support of products. The second makes products visible to the outside world: in its competence are sales and marketing. The ratio between the groups is approximately thirty to seventy.
We have about thirty offices around the world. Sales are distributed more extensively, but development is also not far behind. Some products are being worked on simultaneously in several offices - partly in St. Petersburg, partly in Prague. Some are developed in only one, for example, a product that provides a physical Linux backup is being developed in Prague. There is a product that only Canada is working on.
We do distributed development to meet customer requirements. Large customers feel safer when the development is in the same region where the product works.
We already have a very large office in the Czech Republic, and next year we plan to open another office in Prague - for 500 developers and testers. Those who moved to the Czech capital in the “first wave” on Habré are happy to share their experiences and life hacks with everyone who is interested in the opportunity to work in Europe. In Russia, the office is located in St. Petersburg, some of the internal projects are underway in Izhevsk, and support is partially in Moscow. In general, several hundred people around the world are engaged in technical support. There are specialists of different levels of technical training and specialization. The highest level is people who are able to understand the product at the source code level, and they work in the same office with the development.

How the processes are arranged
About once a year we release large releases with new functionality, and every two to three months - updates with bug fixes and improvements that meet urgent market requirements or platform changes. Priorities are assigned to requirements - from minor to critical, without which release is impossible. The latter are called “epics”.
There is a classic triangle - quality, quantity of resources, terms (in common people, “quickly, efficiently, inexpensively, choose two”). We can’t do poorly, quality must always be high. Resources are also limited, although we are trying to expand all the time. There is much more flexibility in time management, but it is also often fixed. Therefore, the only thing that we can vary is the amount of functionality in the release.
Epikov, as a rule, try to keep no more than 30-40% of the projected release cycle dates. We can cut off the rest, transfer, modify, modify. This is our space for maneuver.
For each requirement, a temporary team is created in the release. It can have three people, and fifty, depending on complexity. We adhere to a flexible development methodology, once a week we organize reviews and discussions of the work performed and forthcoming for each functionality.
Half of the release cycle time is spent on development, half on product completion. But we have a saying - "the technical debt of a bankrupt project is zero." Therefore, it is more important to make a product that works and is in demand than to lick the code endlessly. If the product is popular, then it is already worth developing it further and adapting it for future changes.

How Veeam employs people
The selection algorithm is multi-stage. The first level is a conversation between a candidate and a recruiter about the wishes of the person himself. At this stage, we are trying to understand whether we are suitable for the candidate. It is important for us that we be interesting as a company, because introducing a person into a project is an expensive pleasure.
If there is interest, then at the second level we offer a test task to understand how relevant the candidate’s experience is and what he can demonstrate as a specialist. For example, please make a file compressor. This is a standard task, and it shows how a person relates to code, which adheres to culture and style, which uses solutions.
On the test task, everything is usually perfectly visible. A person who has just become acquainted with a letter and first wrote a letter is noticeably different from a person who writes letters constantly.
Then we conduct an interview. Usually it is carried out immediately by three team leaders so that everything is as objective as possible. In addition, it helps to recruit technically compatible people who have approximately the same development methods and approaches, even if in the end they work in different teams.
During the week, we conduct several interviews for an open vacancy and decide who we will continue to work with.
Often the guys come to us and say that they are looking for work, because they have nowhere to go at the current one - you can wait for an increase only when the boss retires. We have a slightly different dynamics. Twelve years ago, Veeam was a startup with ten employees. Now it is a company where several thousand people work.
People get here like a stormy river. New directions are constantly appearing; yesterday’s rank-and-file developers become team leaders. People grow technically, grow administratively. If you are developing a small feature, but want to develop it, then half the battle has already been done. Support will be at all levels, from the team leader to the owners of the company. Do not know how to do something administratively - there are courses, internal trainers, experienced colleagues. There is not enough experience in development - there is a Veeam Academy project. So we are open to everyone, both for professionals and for beginners.
The Veeam Academy project is an evening free offline C # intensive for beginning programmers with the prospect of employment in Veeam Software for the best students. The goal of the project is to narrow the gap between the volume of knowledge and practical skills of an average university graduate and the amount of knowledge that is required to interest a good employer. For three months, the guys study the principles of OOP in practice, immerse themselves in the features of C # and study the hood space .Net. In addition to lectures, tests, laboratory and personal projects, the guys are developing their joint project in accordance with all the rules of these companies. The topic of the project is not known in advance - it is chosen together with everyone in the first days after the start of the course. At the last stream, she became the Virtual Bank.
Now open dialing to a new thread .