Choosing a major and university

I first started having an interest in IT when I was in school. Though it was my parents who signed me up for IT courses, at that point I, too, understood that I love technology, so when I needed to make a choice I knew it was going to be IT. 

I applied to multiple universities – but ultimately chose ITMO. I liked this university the most, and it made a lasting impression on me. ITMO has been and still is a university that trains promising, sought-after specialists for the IT sector. I was driven by the opportunity to gain up-to-date knowledge and skills at the university. Better still, it was already accepting documents online in 2010, which made it stand out among other universities. 

I ended up joining ITMO’s Department of Computation Technologies (now the School of Computer Technologies and Control – Ed.) as a student of computer science and engineering. Having completed my Bachelor’s, I opted to study software engineering at ITMO’s School of Computer Technologies and Control and graduated in 2016.

Studying at ITMO

Everything I learned at ITMO came in handy. The first two years, we explored the inside of a computer – basically, human anatomy, but technology-style. After all, you can’t operate if you don’t know the human body. The same is true with computers – if you don’t know how computers work, you can’t produce an IT product. After that, we studied operating systems and Linux in particular, Python and Perl, database development and design documentation process, as well as learned to conceptualize and develop IT solutions. These are the key skills I apply to this day.

Career path

As a third-year student, I got to intern at the IT company RAIDIX, which specializes in professional storage solutions. I learned about this opportunity from a manager at Digital Design. The company organized a school at ITMO and was on the lookout for trainees for itself and RAIDIX, as well. I completed the program, did an internship, and then got a job as a developer there. In late 2022, when YADRO purchased RAIDIX, I continued to work for YADRO.

As of now, I’m working on TATLIN.FLEX – an enterprise data storage system that stores and provides access to a large number of files, backups, and archives. The network is of use for both small and medium-sized businesses in various fields. Oftentimes, hard drives can’t store all the data companies need, be it a multi-hour security camera footage or a list of the company’s clients or mobile network operators. All this data – and more, if needed – can be stored in TATLIN.FLEX.

A presentation of TATLIN.FLEX. Credit: yadro.com

A presentation of TATLIN.FLEX. Credit: yadro.com

Inside TATLIN.FLEX

Three teams are working on TATLIN.FLEX. The first team is responsible for Linux kernels on which the solution rests; the second one ensures a user-friendly UI for the browser version of the product; and the third – I am on (named Userspace) – is in charge of the system’s interaction with users. In other words, we connect the system and users and make certain it performs well: I maintain code, fix bugs, and create new architecture solutions and features. Here my programming skills come in useful. 

I write code every day. It may sound like a boring routine task but in reality, we’re continuously improving our product. I enjoy seeing how what we’ve made benefits our clients. We are just like chefs: guests appreciate our cooking, while chiefs take joy in doing something pleasant and useful for others. 

Seeing progress and results is another thing that keeps me going. Once, I spent days going all over a few lines of code and failing to realize why it wasn’t working. I even reached out to my curator who, unfortunately, has never experienced this before – but in the end, I ran several experiments and fixed the problem. I’m glad that I can talk about work challenges with my colleagues. The company has over 4,000 developers from Moscow, St. Petersburg, Nizhny Novgorod, Minsk, and many other cities. 

Read also:

ITMO Alumnus & YADRO Engineer On Developing Systems-on-Chips in Russia

New Master’s Program by ITMO and YADRO: Learn to Build Your Own Programming Languages

Worth it or not?

When I was still at ITMO, one of my lecturers said that developers of storage systems will ever be in demand – and that’s true, indeed. The field is truly promising at the very least because people need platforms to store their photos and other personal data. Specialists in this field will always have things to do, for instance, creating powerful storage systems with easy access and minimum losses due to compression.

This isn’t something AI can do. These systems are rather complex and specific, and most challenges of producing storage solutions are associated with the technology itself, not the coding part. Moreover, it calls for cooperation – it’s hardly possible to build a system alone. 

One of the ways to learn to code storage systems is to enroll in the joint Master’s program by YADRO and ITMO – Tools for Software Development and Analysis. In the program, students get to know different approaches to program analysis and error detection methods, learn to create static and dynamic analyzers, verifiers, and test automation tools, as well as build new programming languages. Potentially, students can intern or find employment at YADRO as developers, DevOps engineers, or testers of operating and highload systems. 

Valentina Bogdanova. Photo by Dmitry Grigoryev / ITMO.NEWS

Valentina Bogdanova. Photo by Dmitry Grigoryev / ITMO.NEWS

Tips for students

There are several points to pay attention to if you want to create storage systems or get an internship at an IT company: 

  1. Get fluent in Linux. Storage systems are mainly Linux-based since they are much tied to the kernel, its technologies and algorithms. Unlike others, Linux allows users to adjust the default kernel to their needs or select the right one – or its versions – for their tasks. At the same time, Linux is an open-source operating system that anyone can use for free.

  2. Find out which algorithms and tools enterprises use for their systems but, above all, master the fundamentals of storage systems: learn what these are and how they work. Developers need to understand RAID and what differentiates a network-attached storage (NAS) from a storage area network (SAN).

  3. Learn several programming skills. Personally, I know Perl, Python, and JavaScript (for UI). But this could also be C or an assembly language. As a rule, different languages tend to have some similarities, so it’s sometimes easier to switch to a similar one rather than learn a new language.

  4. And, last but not least, learn English – it’ll help you with documents and searching for information.