First of all, please tell us what you've been doing for the past several years.
Vladimir Ulyantsev: I am the head of the Computer Technologies laboratory at ITMO University. It is a major laboratory that has four research teams and about 30 staff members. We have teams working in the fields of bioinformatics, formal methods in cyberphysical systems, machine learning, and evolutionary computations.
Actually, I've never worked as part of a programmers' team. In 2015, I defended my PhD thesis and stayed to work at the university. Still, it was not research work that I started my career with: I conducted contests for school children and published educational materials, traveled to Uzbekistan, Kazakhstan, and the States to teach students. Sometime later, I switched to research, and this is what I still do.
How do you organize your workday? How hard is it to combine doing research work with your administrative responsibilities?
Being head of a laboratory and still doing research is definitely hard. In truth, managing a laboratory is a constant struggle to sustain your research activities and do what you really like. Some 80% or even 90% of my time goes to management issues - searching for potential employees, employing them, solving financial issues.
Then again, there are people who work with me, write articles on bioinformatics, machine learning, and formal methods. Of course, I also get to work with Master’s and PhD students, and discuss research projects.
Then again, you have many publications.
Frankly speaking, I still sometimes want to say: "Just leave me alone and let me do my research!". This is why I try hard to schedule my time. There's the time when I focus on answering emails, developing our strategic plans and sending grant applications, and the time when I do research with my students. In one way or another, I no longer do research by myself, I have others working with me. This is why I can still do that, and, as you might have noticed, I have research in different fields. The most actively developing topic is bioinformatics, but there are also projects on machine learning.
Speaking of bioinformatics. You said that programming is your passion. How did you get interested in it?
My initial focus was algorithms and data structures. Basically, these are the very basics of Computer Science. What is bioinformatics about? It is a field of Computer Science that can be effectively applied in biology and medicine. From my point of view, bioinformatics and computational biology are practically the same, the difference being that computational biology focuses on the application of existing algorithms, and bioinformatics is more about developing new data processing algorithms.
On the whole, when genome sequencing technologies first appeared, we started to get very interesting results. What is genome sequencing? Imagine that we take a human genome of a metagenome of some environment, a human intestine, for instance, and put it in a device called a sequencing machine, and use it to get genome data. Processing such data is the task of bioinformatics and computational biology. It was when scientists invented genome sequencing technologies that they got access to data they couldn't obtain before. Nevertheless, there's still a lot to be done with this data. This is why bioinformatics remains a very promising field for programmers.
It is a fundamental science, but it has lots of connections with medicine. For instance, learning the structure and operating mechanisms of a particular bacteria's genome offers new opportunities for drug design.
Is it hard for a Computer Science specialist to re-train for this field?
There is no need to. In the field of bioinformatics, there are two types of specialists. First, there are programmers, i.e. Computer Science specialists who came to work in this field. Me, for example. For some time, I was working in Moscow at the Federal Research and Clinical Center of Physical-Chemical Medicine. This institution is organized as follows: five floors of the building are occupied by biologists, and on the fifth, there are programmers and bioinformatists who focus on solving a particular set of tasks: how to store the obtained data, how to make it so that everything would be secure, and third parties wouldn't get access to private medical data, and a lot of other things.
The second type is biologists who came to work in bioinformatics. By the way, it was for such people that we've launched a dedicated program at ITMO University in order to teach them Computer Science.
What kinds of specialists does modern bioinformatics lack?
First and foremost, one has to understand that it is collaboration that is important here. For instance, my articles on bioinformatics are written by biologists. It's also important that biologists and programmers have their own approaches. Programmers like me like to generalize, as programming has a lot to do with abstract thinking. Biologists have it different: they focus on specific cases that are often hard to understand. This is why establishing collaboration between people with such different mindsets can be quite hard - so we need those who can break the barriers between different fields, as such collaborations are truly invaluable and produce the most interesting results.
Who do we lack? We lack those who can express a biologists' task in programmers' language, and vice versa, those who can explain the results obtained by the programmers in a way biologists would understand. In this sense, soft skills become all the more important.
Many people believe that these days one does not necessarily need to know Computer Science to become a programmer. There are lots of fields that don't require knowledge of advanced algorithms. What's your opinion on this issue?
I believe that programming is an extensive profession. You can program in 1C, be a web-programmer, and so on. Computer Science is something only 2-3% of programmers need. / For example, I think that it would have been impossible to develop Vkontakte without knowing Computer Science.
So, why learn Computer Science?
There are very few people who know it, and they are paid lots. So it is only logical: the more you know, the better are your chances on the market.
On the other hand, often people start learning Computer Science out of sheer interest. This is what motivated me, my peers, and what motivates our current students, as well as those specialists who launch their own companies.
And what about those who are soon to graduate and make the choice between working for a company or pursuing a career in research? What motivates them to do the latter?
The answer is simple: you should do it if you're really interested, when it is not just applying the algorithm that you are fond of, but you want to invent new things. It was for this reason that I chose science.
When I talk to school and university students about it, I tell them one simple thing: amongst you, there are about 5% of people who want to do something new, those who have an entrepreneurial mindset. Such people either launch their own startups or do further research. According to my experience, every time, there's at least one person who raises their hand when I ask them whether they want to become scientists. And those are the people that we are looking for.
What is the current situation with research in the field of Computer Science in Russia?
In Russia, students get great training in mathematics, our school students win gold medals in competitions in mathematics, physics, and so on. Also, we have many great universities that train specialists in the field of programming and Computer Science.
Nevertheless, many still imagine scientists as some poor assistant professors who earn 18,000 rubles a month and live with their parents while being in their 30's. I have to say that the situation has started to change, the government now understands that it has to invest in science, so serious research institutions, like our laboratory, have enough resources. Still, in most cases, you need either an investor or some grant to do serious research in Russia.
How does training and research in the field of Computer Science in Russia differs from those in Western countries?
In other countries, they have a different approach to training: they accept almost everyone, and those who can't manage, leave. Our top departments accept students based on their results (Unified State Exam scores, winning contests, etc.), i.e. they pick those who've already proven their abilities.
On the whole, the difference in approaches can be described with one simple visual analogy. Just imagine that in Western countries, they give you a chair, and you can adjust its armrests, height, etc. In Russia, they give you a small stool. Still, you have many IKEA-like parts lying all around, so, if you want, you can construct a whole throne from them.
In the West, they give you a position, but if you want to hire a PhD student, you have to win a grant for it. Thus, if you want to become a PhD student, you have to search for a place that has a corresponding grant. In Russia, this is a lot easier: there are less formal restrictions.
And what about Western practices that could be introduced in Russian universities?
Before answering this question, I would like to expand on my work process a bit. It may seem a bit risky: we apply for grants, but we don't really know whether we'll have financing for the next year. Still, I'm ok with this state of affairs: we get a grant - great, we don't - well, that happens, we'll just try again. Surely, there are a lot of people who are not fond of the current situation. They like the Western concept of a tenure track. If you are already on the tenure track, firing you becomes a problem. So, this could be a good solution for those who want to do research but feel more secure.
Do you think that it's possible?
Yes. There's state financing, also, the number of grants has significantly increased in the past several years. In my view, the opportunities that we currently have in Russia are on par with those in Western countries. If you were to ask me whether I want to leave, I would say that I don't. Still, that is mostly because I want to continue constructing my "stool".