ITMO Grad's Journey From Student to Kaspersky Lab Developer
A high school student from a distant town can enroll at a prestigious university - just by winning an academic competition; and later get a job at a high-profile company - just after an hour and a half phone interview. These were the two major turning points in life of ITMO alum Alexander Dudinsky. He works at Kaspersky Lab now as a Senior Developer at the Testing Department. Dudinsky told ITMO.NEWS how a large IT company works, what skills IT newbies are lacking, and why getting a job at a high-profile company is easier than it seems.
How is the work process organized in well-known IT companies, such as Kaspersky Lab? What is your working schedule?
We don’t have a rigid work schedule. One can say, we are left to our own devices. Nobody controls when you come to the office and when you go home. Our company is result-oriented. And the result always depends on how responsible employees are. Of course, there is a fixed time when you are expected to be in the office because during these hours urgent requests from colleagues or partners may come. Every morning we are holding a meeting and distribute tasks for the day. I have a team of two people now. They are juniors (recent graduates), so I also have some responsibilities as a manager, although my main tasks are connected with system testing. And I don’t want to become a full-time manager of a bigger team.
Why don’t you want to become just a team leader now? Is it not as interesting as software development?
At first, four people worked with me. It all happened quite unexpectedly. We simply had a small restructuring in the company, the goal of which was to ensure that people who worked on the same projects would work in the same office, and not be scattered around (located in several cities). So, my team and I were assigned to the Non-functional Testing Department, and my boss simply asked me to take over the role of the team leader. At first, when you realize that you are responsible for everyone, you do not distribute tasks among colleagues, but rather try to do everything yourself. It was hard enough. I was exhausted both physically and emotionally. I used to sit in the office until two or three at night.
Over time, I began distributing tasks in my team more efficiently. Now, it only takes about one fifth of my working time. The rest of it I devote to software development. It's really interesting and doesn’t let my work turn into some routine.
When does a junior at Kaspersky Lab acquire a higher status? What skills should one develop for it? How long were you a junior yourself?
It took me about half a year to grow from Junior to Middle Developer and two more years to become Senior Developer. The most important difference between a completely new employee and a seasoned one is that the latter does not need constant control and supervision. They can make decisions on what methods to use in their work. You don't have to explain them every detail of the plan and specify the steps they are to take. They know whom to contact, whom to call, if they need to solve a particular issue with their colleagues.
In your experience, what drawbacks do most of the young professionals who are just starting their professional career in IT have?
Newbies normally don’t have any problems in terms of their technical skills. Time-management is the area where they usually face problems. Many new employees are sometimes too afraid to take the initiative, take responsibility, and ask for help from colleagues. A junior may start doing some work in the morning, see that something is not working out during the day - and yet he would be trying to solve this problem single-handedly until the evening. When, actually, it could be solved in 10 minutes, simply by asking for help from his boss or colleagues from another department.
I’ll give you another example: juniors are often afraid of calling their colleagues on the phone for some reason. Indeed, email may be a way out of it, but it's much faster and easier to make a one-minute call than to wait for someone to respond to your email for a good half of the day. However, gradually they acquire the necessary communication skills. Sometimes we conduct various trainings on time management and team work at Kaspersky Lab.
How do you interact with external customers?
Our team doesn’t communicate directly with external customers. But we cooperate with other software development teams in our company. My team’s major task is automated testing of Kaspersky Lab products. Let's say we receive a new version of some our product - our task is to check it for any critical vulnerabilities in accordance with the product safety requirements.
In your opinion, what are the ultimate future trends in IT? What should today’s students gear up for?
My area of work is more and more moving towards automation of all testing mechanisms. This is convenient because one can write program codes for many tests that will check systems and perform such testing any given time and rather quickly. And companies won’t need to hire a large contingent of testers for that. In addition to that, no one should forget about the human factor.
So, developers will be replaced by their own creations? This is also a trend, which is being discussed lately.
I don’t think that this will happen in the nearest future. After all, someone needs to write all these algorithms for automated testing. Yes, it’s possible that someday the programs and neural networks themselves will develop other programs, but this is still a very distant future for us. Besides, not any machine can replace a human when it comes to interaction with a customer in IT. I can’t picture any neural network communicating with a person and finding out what kind of software they need.
What if we manage to introduce an AI system that the customers would understand? Such a system where they would be able to present their requirements to software in a simplified form?
In fact, this is the programmer's problem: if they could not understand what the customers actually needed, they would have to rewrite the program’s algorithm several times. In addition to that, employing just a programmer is not going to give you a good enough product: there should also be designers and analysts on the team. After all, a programmer can perceive the same concept differently from a customer - and it would influence how they both see the final product. In any case, a close interaction of developers with their clients is a given.
Do you somehow update your professional knowledge and skills?
Yes, I'm always trying to learn something new. For example, I’ve recently started learning a new software programming language - Kotlin. As they said in JetBrains, they took all the best features from Java and C# for creating it. Although many say that one should be a professional in their specific area, one should not get hung up on one particular method. No one knows what will happen in the future, one must prepare for any challenges that may come. As for work, we rarely use any new or unusual methods or software tools in our team. We rather create an internal infrastructure for a more stable operation, so that we can get results by a certain date, guaranteed. That is, if we find a bug in the infrastructure, then it is much easier for us to solve it. It’s better for us if this infrastructure was developed within the company for our specific needs, rather than when it’s some universal software from some third party.
Kotlin programming language. Source: appbakerz.com
Were there any turning points in your career which determined your future path?
Perhaps, one of such moments happened during my internship in the third year of Bachelor's training. I studied at the Department of Applied Mathematics. We were offered internships at several companies. I chose Arcadia. First we had an instruction practice, but soon I began to solve real problems at the level of an actual employee of the company. But since we practiced there for a month only, we didn't have to comply with the same set of requirements as their permanent employees.
However, it was there when I realized what product testing is all about and how a tight-knit IT-team should work together. There I saw that IT-specialists are not some kind of withdrawn workers who sit all day in front of their computer screens, but rather are cheerful and sociable people, whom you can ask for any help and who will actually help you.
More than 50,000 students from all over Russia have already registered for the "I am a professional" (available in Russian) academic competition. Did you participate in any competitions? Can they actually help ambitious and talented children fulfill their dreams?
I became a student at ITMO through a similar competition. I graduated from high school in the village of Shangaly in the Arkhangelsk region. And I am very grateful to my physics teacher, who literally pushed us to participate in this competition, then called BARSIC (available in Russian). At first, none of us wanted to participate: we doubted our abilities, since it was an All-Russian competition and we were ordinary schoolchildren from a remote village. But then I successfully completed the first two rounds that were conducted at my school. So, I went to the third and final round to ITMO University in St. Petersburg - and I got in!
Before the final school exams, I already knew that I had received the highest score in physics. Therefore, participation in competitions can really turn your life around for the better. However, I did not take part in any other competitions.
How did you land a job at Kaspersky Lab?
In fact, there was nothing out of ordinary. I just created a CV on a recruitment agency’s site, responded to the vacancy at Kaspersky Lab. I was then interviewed by phone. This interview lasted for an hour and a half. I was interviewed during the working hours of the company I worked for at the time. I thought I failed that interview. However, I was offered a position at Kaspersky Lab. It was, one might say, a coin toss: I just tried my chances - and I got where I wanted. But many people still think that it's very difficult to get jobs in such companies as Kaspersky Lab. However, I started working there during my first year of Master's training at ITMO - and I managed to juggle my studies and work. I had a very sensible and understanding boss. He cared more for the results of my work and not my working hours at the office. So, fortunately, I was able to finish my studies and defend my thesis at ITMO.
Kaspersky Lab Head Office in Moscow. Source: glassdoor.com
Why did you decide to change your previous job? What surprised you the most at Kaspersky Lab? What makes you continue working there?
I was engaged in software testing at my previous job, as well. But after working there for a year I started to understand that I am working on routine tasks and that I’m not learning anything new and have very few prospects. So I was on a lookout for new opportunities. When I came to Kaspersky Lab, the most striking thing at first was that everyone addressed each other on a first-name basis. And it was hard at first, I had difficulties communicating with my superiors so informally. Then I got used to it, of course. And now I can’t even imagine a different professional environment.
I was immediately challenged to perform many different tasks at Kaspersky Lab. The working environment here changes very quickly: one needs to write codes for tests, frameworks, develop new types of testing, build them into the existing machines. That is: completely build the infrastructure. In addition to that, Kaspersky Lab has a following practice: if a person has been working in one area for a long time and most of their tasks have become routine, they can be transferred to another department and develop new skills there. Thanks to this, most employees stay at Kaspersky Lab for a long time because they can get to work in different areas and update their professional skills all the time.
Kaspersky Lab has a very evolved corporate culture. We arrange corporate parties in Moscow twice a year. Employees from all divisions get to attend them. First of all, we come to the head office, we discuss some working issues there and then we can take some time off. When I first came to such a corporate gathering, my boss asked: how long I had not been to Moscow. I said that I have been here only once and that was long time ago. So he let me take a whole day off and "go explore the city".
So, in other words, this culture allows you not to be just another faceless employee of a corporate “system”? A cog in the wheel, so to say.
Here, we have to determine what this “cog” really is and what it does. To some extent we are all “cogs” of a big corporate mechanism. If I go on a vacation, for example, some processes in several departments of the company slow down: unread emails accumulate in my mailbox - and I have to go through them as soon as I get back to my work place. Only three or four people from our team of 40 can solve certain tasks. There are tasks that only a couple of people and I can solve quickly. But then, at such moments, you really feel the importance of your work, that you don’t just fulfill some duties that any other person could, but rather have a unique set of professional skills - and many people can benefit from your work. This is really rewarding.
They say: "If you can’t change the situation, change your attitude towards it." Do you agree with this piece of wisdom?
I think I would rather change the situation, not the attitude towards it. After all, if I had not decided to change jobs and thus got to work at Kaspersky Lab, then perhaps I would have been discouraged and lost all interest in my field. Kaspersky Lab subscribes to this philosophy of "changing the situation" also, I think: employees there can switch between the departments and fulfil themselves in different areas. Same happened with the "BARSIC" competition (called “I’m a Professional” now - Ed.) . After all, we could just accept the situation, but we tried to change something, and it turned out for the best. Therefore, I think, one should never put up with the given situation.