Introduction
Hello. My name is Peter, I am an infrastructure engineer (DevOps) from Russia.
I sat down at a computer for the first time and started learning programming in 10th grade. This amazed me incredibly. I have never in my life felt such opportunities to create something out of nothing. I was able to express my creativity on a previously unattainable level. Then it seemed to me that programming was very similar to poetry.
First, I learned Basic, then C++. Our lessons were 90 minutes long. I spent 10 minutes solving the problems that the teacher gave. The rest of the time I worked on my ideas.
Then I began to immerse myself more in the administration of operating systems and networks. The capabilities of one computer were not enough for me. At first it was Windows, but I wanted more granular network management, so I switched to FreeBSD and Linux. This is a broader area than just programming. So I became a Unix administrator. At that time, the word DevOps had not yet been coined.
I supported networks and services of stores and small companies. Then I moved to companies that were involved in software development, where everything was even more interesting.
About 15-20 years have passed since then, and I still work with infrastructure and love my job. This is an incredibly broad and interesting area. Now I work in a company called ThisWay Global. We are developing something related to artificial intelligence for IBM. I built the entire infrastructure there from scratch. I am responsible for security, availability, performance, versioning and configuration management. In short, for everything around code.
Сomputer Science Fellow
career options
There is constant confusion in the names of professions (positions) related to infrastructure. The most common name is Infrastructure engineer, everyone understands it the same way. But narrower professions, such as: Devops, SRE, Platform engineer, Cloud engineer, System engineer, or all of the above but with the suffix Architect, can be understood differently by each company and each person.
In the most primitive sense, this is the person who is responsible for assembling and deploying the code. He writes CI pipelines (automation of the process of building services.) and deploys the results of their work somewhere. Automation and optimization of this process is the main task. In addition, he is a guide for the team into the big and scary (scary for programmers, they don’t like to go there) world of infrastructure. Whoever is behind the DevOps engineer, SRE team, Infrastructure team, data center, cloud, or just a server in the basement, DevOps will help the team work with it correctly, explain and guide.
Site Reliability Engineering in its simplest sense is like Devops, only without CI/CD (Continuous Integration, CD is Continuous Delivery, this is the process of automatic deployment of new versions of services). As a rule, such engineers are required only in large companies. Sometimes their responsibilities include the entire infrastructure, except for direct interaction with development teams. Sometimes it is only the monitoring team that sees alerts in the monitoring system and for each alert has instructions on what needs to be done, for example, restart some service. Sometimes their responsibility is the entire infrastructure, except for the immediate response to alerts from the monitoring system. It all depends very much on the specific company. Various metrics are important for SRE engineers, for example, response time to an incident, recovery time after a failure, and downtime.
In small companies it is synonymous with DevOps. In large companies, this is closer to SRE in the broad sense. Here the emphasis is on Cloud Native technologies and, as a result, specialization on a specific cloud. Here, certification from public clouds is a “must have”.
It's all of the above together. Sometimes it's just an alternative name for DevOps and SRE. Sometimes we are talking about building an Internal Development Platform (IDP). IDP and GitOps are the latest fad in the infrastructure world. This is what we will build on my course.
Now this is a rare profession. In the simplest case, this is a young specialist who solves PC problems for company employees and helps them with consultations. There are still many companies whose infrastructure was built 20 years ago. Everything there is built not on clouds and Kubernetes, but on bare-metal servers, monolithic architectures, pure Linux/FreeBSD/Aix. And all this still needs to be managed and maintained, and sometimes even developed. Even if such companies migrate to the cloud, they often retain this incredibly ancient architecture there. In such companies, a System engineer is a very deep specialist in operating systems, networks and network equipment, and server equipment. They have their own methods and tools for managing infrastructure, for example Ansible. There is a very interesting exception to these mammoths, these are companies engaged in HFT trading. They all fight for latency, and cannot use an infrastructure designed for parallelism and not speed. If you want a challenge in infrastructure and the deepest dive, then this is the place for you.
Сomputer Science Fellow
skills
What are the main hard skills you use on a daily basis in your current job?
It is now the most popular and indispensable orchestration system. (Only if you do not specialize in Cloud native technologies, but such vacancies are in the minority) Kubernetes is first and foremost a huge ecosystem.
The main functions are resource management, availability management, monitoring, access management. In my stack, this is the central part. I heard that there are special courses and certifications, but I learned exclusively on my own, in practice.
The most popular cloud. A lot of things have already been developed for it, take it and use it.
The cloud revolution happened about 15 years ago. Before that, every company had to darken its servers and all the infrastructure to service it. For a small business, this is incredibly expensive. Then clouds appeared, they built infrastructure wholesale and sold retail. If you are a small company, you need little infrastructure, and you can’t do without it. Companies now have the opportunity to buy infrastructure in exactly the amount they need.
An absolutely indispensable tool for provisioning cloud infrastructure, and sometimes databases, internal K8S infrastructure and anything else at all. It also has a lot of shortcomings; attempts to create better instruments continue constantly, but so far no one has succeeded.
ArgoCD My favorite tool for managing K8S resources and configurations. Jsonnet is a great language for templating Json. You have no idea how many hundreds of hours of life it saved me after I switched to it from Helm.
Storing code, configurations, and basically anything. In addition, this is a CI system.
What are the main soft skills you use on a daily basis in your current job?
Effective communication skills are important in any job, and software Infrastructure is no exception. It is essential to understand user requirements and communicate technical topics to non-technical stakeholders, convey your ideas to your teammates, and raise any concerns with the leadership of the company. Communication is a skill which can only be built through practice, and it is essential to put ourselves out there, and gradually refine this skill.
New tasks or configuration errors always arise. Sometimes you even have to conduct large investigations with simulations of certain situations. Sometimes you have to dig very deep, right up to writing patches for software that you did not develop. Fortunately, this happens rarely. In any case, you need to have considerable persistence and believe in yourself to get to the truth day after day and make your stack more ideal.
When I solve a problem, I always get carried away. I forget about time. Google Calendar and Slack reminders are invaluable. I read somewhere that a person can only operate 3-4 things in his head at a time. I noticed that when I have too many tasks or things to do at the same time, I start to get nervous. In my work, you can't be nervous. If I move tasks to the calendar or set a reminder, I kind of unload it from my head, it brings calm and confidence.
Petr
’s personal path
Tell us about your personal journey in
Сomputer Science Fellow
:
In the world of infrastructure, nothing can replace experience. I am from the last generation that learned to program from paper books. Now there are a lot of opportunities to gain experience faster: YouTube, courses, internships. But the point is still in the number of different problems that you have solved.
Finding my first job was difficult. I had no idea how to do it. I submitted thousands of applications, and there was not even a single interview. Then, for one of the vacancies, I was asked to call back tomorrow. I was very glad that they did not refuse me right away. It so happened that the CTO forgot his phone at home that day. When he returned home in the evening, he found 249 unanswered calls from me, and immediately called me back. Yes, I got this job. And I also realized that persistence can break through any walls.
My first job was technical support engineer. I found this vacancy on hh.ru, this is the Russian equivalent of Linkedin. There was only one interview, with the CTO. It was a job in a chain of stores. If a store employee had a problem with a PC, I would come or connect remotely and solve the problem.
Then I became a System Administrator in the same chain of stores. My area of responsibility began to include the entire network and server infrastructure of the chain of stores, in addition, I resolved issues related to the interaction of local technical support engineers. So I got good experience with the network infrastructure, including Cisco, Linux and FreeBSD operating systems, databases. I liked these operating systems much more than Windows. In a couple of years, I completely rebuilt the entire infrastructure. It became much more reliable and more manageable.
After a couple of years, I realized that I wanted further growth and at my current job I would not find anything new and interesting. I went to hh.ru again.
Again, I did thousands of responses to hh.ru. Due to the fact that I already had some experience, there were more interviews. I did not really believe in myself, suffered from impostor syndrome. Finally, I found a job in the Azimut Hotels chain of hotels. There was only one interview with the CTO and the team. In technical terms, it was like the previous chain of stores. But here the remote objects were located all over Russia, the network was much larger and more complex. There were more servers and services and they were more complex. And most importantly, the company had much more money to implement new technologies, which was critical for me, since I wanted professional growth. At that time, the cloud had not yet been invented and each company built and maintained its own infrastructure. Like last time, after a couple of years I realized that I would not see anything new here and it was time for me to look for a new job. And again hh.ru and a thousand responses. I found a new job at IMMO. There were two interviews, one with a recruiter, the second with the CTO and one of the engineers. Before getting a job at this company, I thought that I already understood networks and UNIX servers very well. After I saw their infrastructure, I realized that I was still a child and I still had a lot to learn. Their network was huge, hundreds of different routers all over the planet. There were hundreds of servers, not dozens. Before that, I used the IaC (Infrastructure as Code) approach, but I didn't focus on it, the scale was too small, it didn't give much profit. Here I found myself in a situation where it was simply impossible to manage the infrastructure without IaC. Here I was already working in a team of a dozen engineers, they were real professionals with huge experience, they taught me a lot. I worked there for three years, it was the hardest job in my life.
Then I heard about cloud technologies and the Devops approach. In IMMO, this was not used for some business reasons, I was never able to get a clear answer. And this means that it's time to look for a job again.
And again hh.ru, and again thousands of responses and thousands of refusals, I was looking for a job in a field in which I had no serious experience. But patience and persistence are always rewarded. I found a job at Dr. Web. This is a Russian antivirus developer. There I was responsible not only for networks and physical servers, but also the cloud part and Devops. It was much easier than my previous job and much more interesting. But there was also a significant drawback, the salary was very small.
After I got all the possible experience in this company, I realized that I was now much more in demand and highly paid specialist. And this means that it was time to change jobs again.
And again hh.ru but thousands of responses. But now I had already discussed with recruiters a completely different salary and I was much more picky in choosing a new employer. I will not describe all the work and projects here, reading this will take too much of your time, I will only mention the most significant events.
I wanted to enter the international labor market and I began to actively study English. Then I thought that working in a large corporation, with a worldwide reputation, was what I need. And again my persistence was rewarded. I found a job at Intel. There were 6 interviews, with recruiters, department heads, security service, what then with incomprehensible managers and finally with engineers. They painted sky-high prospects at the interview, and offered a very good salary, equity and an entrance bonus. Gorgeous conditions, if you don’t know what’s going on inside. But inside there was unimaginable bureaucracy, political games, and an image of vigorous activity. If you fire 90% of the employees, then the overall productivity will increase. For three months, I honestly tried to get used to this approach, but I couldn’t. I returned the bonus and quit. I’m not ready to waste my life on bureaucracy and lies. I don’t know if such a mess was only in the Russian branch of Intel or in the whole company. I suspect that in the whole company.
Then I successfully passed the interview at IBM, they offered relocation to the EU, but a beggarly salary. I didn’t agree.
I started looking for startups with foreign funding (and this is almost all startups in Russia). And it was a very good idea. It was really interesting there and they paid well.
Then I left Russia. Traveled the world, worked remotely. Until now, startups and small companies are my priority. Minimal bureaucracy, interesting projects, good salary. Interviews are usually two. One with a recruiter, the second with a CTO and an engineer.
What would you tell your younger you regarding building your current career?
Don't be afraid to look like fools, it's normal, people always learn. Don't suffer from impostor syndrome, other people will always show you their strengths and hide their weaknesses. Believe me, every person has doubts. And the more a person knows, the more doubts he has.
Large numbers are critical. For a young specialist, the task is not to get 10 jobs out of 10. His task is to get one out of infinity. To paraphrase, there is an infinite (because it is constantly changing) number of vacancies, and sooner or later you will get a job that suits you. The more responses, the higher the chance. You shouldn't be scared by 10 or 100 thousand responses, that's normal. On Linkedin, there are 40 pages per request, 25 vacancies per page. That's 1000 vacancies. The average processing time for one vacancy is 10 seconds, including the response (you need to read it quickly, the employer will decide whether to respond to you or not). In this case, you will respond to all remote infrastructure jobs in the USA in 2.7 hours. It is enough to do this twice a week; vacancies are updated approximately at such a rate that it makes sense to go through the list again. This means that if there is even a minimum opportunity for you in the US, you will definitely get it by spending 5.5 hours a week, which is less than one working day.
Employers and recruiting agencies are also looking for you. They also have a search that has rankings. One of the most important factors in this ranking is how many jobs you view and how many applications you make. There is a direct correlation between the number of responses you receive and the number of search results your page receives. If you put yourself in the shoes of Linkedin developers, you will inevitably end up using these coefficients. The more responses, the higher you are on the list, the higher your chances. As in many processes in the world, it is not the smartest who wins, but the most persistent.
Obtain certificates from public clouds such as AWS. Get your K8S certifications.
Reviews from your past employers and colleagues are very helpful.
If you're just starting out in your career, don't chase money. Pursue experience.
I came to the conclusion that test assignments and other testing are absolutely useless. Don't waste your time on this. I never do them, with the only exception of one situation, if a test task is given after a technical interview, and only if we really had something to talk about.
A company that doesn't pay for test assignments doesn't respect you and your time. Think twice if you want to work with them.
As a rule, infrastructure specialists are not hired to tell them what to do. As a rule, they are hired to tell people what to do. Look for a balance between having a team that can teach you something and gaining personal experience.
Change jobs at least once a year. The more different projects, the more experience.
Look for work constantly. Even if you are completely satisfied with your current job. You will always be aware of the latest trends in the market. And you will always know for sure whether your job is good, everything is relative.
Final thoughts & tips
As a final piece of advice, I want to give you this quote. It's long, but it perfectly describes what I know about life.
A man of knowledge is one who has followed truthfully the hardships of learning, a man who has, without rushing or without faltering, gone as far as he can in unraveling the secrets of power and knowledge. To become a man of knowledge one must challenge and defeat his four natural enemies.
When a man starts to learn, he is never clear about his objectives. His purpose is faulty; his intent is vague. He hopes for rewards that will never materialize for he knows nothing of the hardships of learning.
He slowly begins to learn–bit by bit at first, then in big chunks. And his thoughts soon clash. What he learns is never what he pictured, or imagined, and so he begins to be afraid. Learning is never what one expects. Every step of learning is a new task, and the fear the man is experiencing begins to mount mercilessly, unyieldingly. His purpose becomes a battlefield.
And thus he has stumbled upon the first of his natural enemies: fear! A terrible enemy–treacherous, and difficult to overcome. It remains concealed at every turn of the way, prowling, waiting. And if the man, terrified in its presence, runs away, his enemy will have put an end to his quest and he will never learn. He will never become a man of knowledge. He will perhaps be a bully, or a harmless, scared man; at any rate, he will be a defeated man. His first enemy will have put an end to his cravings.
It is not possible for a man to abandon himself to fear for years, then finally conquer it. If he gives in to fear he will never conquer it, because he will shy away from learning and never try again. But if he tries to learn for years in the midst of his fear, he will eventually conquer it because he will never have really abandoned himself to it.
Therefore he must not run away. He must defy his fear, and in spite of it he must take the next step in learning, and the next, and the next. He must be fully afraid, and yet he must not stop. That is the rule! And a moment will come when his first enemy retreats. The man begins to feel sure of himself. His intent becomes stronger. Learning is no longer a terrifying task.
When this joyful moment comes, the man can say without hesitation that he has defeated his first natural enemy. It happens little by little, and yet the fear is vanquished suddenly and fast. Once a man has vanquished fear, he is free from it for the rest of his life because, instead of fear, he has acquired clarity–a clarity of mind which erases fear. By then a man knows his desires; he knows how to satisfy those desires. He can anticipate the new steps of learning and a sharp clarity surrounds everything. The man feels that nothing is concealed.
If you read this quote to the end and it resonated with you, I recommend you find the full version. This quote plays a significant role in my understanding of the world.
Resources to dig in more
HackerNews
This is the most popular and interesting news portal about technologies. All the latest you will find here.
Coursera
Very good school with many useful courses.
DevOpsToolkit
Very useful resource. The guy who does this has a lot of experience. All the most useful things can be found there.