How did you start working for DataArt? What were your tasks there?
Everything was quite simple. I was a developer at the FontLab company that released one of the two font editors that were available on the market at that time. A school friend of mine, Lesha Krivenkov, invited me to work at DataArt. At that time, I wasn't sure whether changing my job was a good thing to do, but the pay at DataArt was two times higher. For my new job, I had to solve totally different tasks. DataFont was a production company, and DataArt focused on service, though I didn't know it then; hence, I had to learn a lot. For instance, I never worked with Unix before that. I knew how to use the Internet, but this time I had to not just be a user, but work with protocols I didn't know much about - SMTP/POP3 and the like.
Were you already an ITMO student at that time?
Yes, I started studying at ITMO in 1997, but it wasn’t just because DataArt's office was in the same building. I found that out later, and that was really convenient: I didn't have to spend much time getting to work. Still, there was also this funny aspectthat to get to the office, I had to pass through the reception where I had to show my student ID. When I would forget my ID, I couldn't get in even to the office, even though the door was just right behind the reception.
Looking back, what do you think: do programmers need higher education? Or is it enough to teach yourself?
Honestly, I still can't clearly explain why I returned to studying at a university. Before ITMO (it was still LITMO then), I studied at Saint Petersburg State University which I entered right after graduating from Saint Petersburg Lyceum 30. About the same time, I started working in an office near the Baltiyskaya subway station. On my way to university, I often remembered that I forgot to do something at the office, so I went back. This lasted for about half a year, and then the end-of-semester exams came, for which I was completely unprepared. I quit the university; actually, I just stopped coming there. Yet, in five years, I've decided that not having higher education is just inappropriate, though not having one has never been a problem at my workplace.
As much time passed since I finished school, I had to take courses in physics and mathematics; in the end, I got "four" for all three entrance exams. This wasn't enough for the full-time department, so I had to study part-time. I know that Parfenov (Vladimir Parfenov, Head of ITMO's Information Technologies and Programming Faculty -- ed.) has a great team for training students in sports programming at ITMO's full-time department, yet at the part-time department, few were interested in it. In our class, we only had two students (including me) who cared about what we were taught. Still, I graduated from LITMO with great scores.
Was your education useful for your work?
I can't say that it contributed to my practical knowledge. Yet, this is a problem of all Russian universities: we're rarely taught things that'll be useful in real life. In this respect, I really like how it's done in Finland: the lecturer can propose a student to spend a year developing a particular machine instead of going to lectures. One can think that's the easy way, yet to make such a machine the student will have to do lots of work: learn how certain technologies work, check them for compatibility and the like. At my son's school (though it's not in Finland), when children show potential in some field, they give them additional training in it. If the child is good at drawing - let him draw more. As for Russia, it is all different: it's like everyone is to correspond to some model drafted by those higher-up: "You draw well? Good! Yet you sing bad, so we'll focus on teaching you to sing until you're good at it." In the end, the person can't do anything good.
Still, I believe that studying at a university results in a higher level of training, and gives a good level of general knowledge. You just feel the difference when you're communicating with those who have higher education and those who don't: the latter are more difficult to converse with, and it is not as interesting as with the former ones.
You've been working for DataArt for almost 20 years already. As of today, this can seem a bit odd. What's the reason behind such stability?
Recently, I had an interview with a specialist in the field of Computer Science who became a researcher because he got bored working as a programmer. Have you ever thought of becoming a scientist?
I think that depends on one's personality. Some like to work with selfless (but very logical) machines, and others don't. Also, there's a belief that all programmers are introverts. Programming is something very logical, and there are many illogical things in our lives. You give an algorithm a function to do something, and if it doesn't, that means you've made a mistake somewhere. I've always liked programming, and that's great luck, as many people do their work for money only.
I got my first cellphone around 2004, and only several years later I got Internet access in the provincial town I lived in. How did people get into the IT field in the late 90s?
Well, I started working in IT even earlier than the late 90s. When I just entered the Lyceum, they warned us that we are not as clever as we think we are. Our program differed from those of the other schools; it was there that I saw a computer for the first time. I bought a book on Basic and tried everything that was described there. At that time, programming still wasn't something mainstream, though I think it still isn't. It is just a good specialty you can earn good money with. And it's great that the state of programming in Russia is different to what they have in India now. For them, training programmers is something like a national sport. In a sense, our country missed out on that opportunity: we could've developed the IT outsourcing industry, train personnel for it. Yet, we don't, except for some enthusiasts. We don't have any governmental programs on training programmers, people just see that there's a lot of money in this field, and follow it, and universities respond to the demand with new courses and such.
Well I have to agree with you: sometimes I think that our programmers win championships only thanks to great trainers like Andrei Stankevich...
Programming contests is an industry, as well. Just because certain programmers win international contests, that doesn't mean that their is a high level of programming ability all over the country. Recently, a school student from Moscow won the international physics contest. Does that mean that in Russian schools, they are better at teaching physics than anywhere else? No. It's just we have great programs for those who train for major contests, and that does not characterize the overall quality of education.
Students of Lyceum 30.
So, why it is that Russian programmers are valued all over the world? That's not for no reason. When I only started working in IT, there were few of us, but we were all enthusiasts. And any enthusiast is a hundred times better than a professional. The former are really interested in their work, the latter do it for money, and Russian programmers always liked what they do. These days, their level has dropped a bit - which is a natural result of the field's commercialization. And if we follow the Indian approach, our programmers' quality will continue to decrease. There's a saying: the amount of intelligence on the planet is a fixed value, and the population grows. A university can train 10 great programmers or a hundred mediocre ones. India trains those mediocre hundreds, and when an Indian programmer does something wrong and a Russian one corrects it, the customers remember this experience.
Have the customers' requirements to software development changed in the course of years?
It's hard to answer that decisively. In former times, a customer could work with programmers from, let's say, Cambodia, because their prices were cheaper. Now most companies have project managers who understand that Cambodia may do, but the quality of the product will be low. If we are talking about startups, it's really important that the work is done quickly and is of high quality. Some customers assess the project not by results, but by the number of people who work on them. They come and say: "We need 20 people for this project, and we will manage everything ourselves". Others just explain what they need, and then it is we who decide how to do it and what resources it would require.
How does DataArt distribute programmers between the projects?
DataArt's office in Saint Petersburg
As of now, we have more than 2,300 specialists, so we can choose the ones most appropriate for a particular task. Also, our programmers can choose which projects they want to work on and which not. For each project, we assign a leader who can choose members for his team. So, programmers can be approached by different team leaders who "advertise" their projects. If the project is interesting, they enter the team. If not, they continue to work on DataArt's current tasks, learn on different courses and wait for a better proposal.
From what I know, the Mail.ru project was quite unconventional but very successful. Do you think there can be new projects like that ?
If I only knew what can make a hit! For instance, I don't understand why people like SnapChat, but it's very popular. I also never understood the hype around Pokemon Go some time ago. IT allows people to do great things without spending any resources and from any part of the world. In the USA, for instance, they have much better industrial or laboratory equipment than in Russia, so we lag behind in what has to do with applied sciences; yet, we rapidly develop IT, as programmers have no need for plants or laboratories - a single computer is already enough.
In your opinion, which of the IT fields are going to develop in the future? Artificial Intelligence is the current trend, what will be the others?
Internet of Things, that is without question. This is what I am working on now. Yet, the development of IoT can have dire consequences. We had a project - we developed, or, in fact, re-developed an Internet-based payment system. It looked really good on the outside, yet before we re-worked its inner structure, it was dreadful - almost anyone could've hacked it. For some half a year after that, I was afraid of buying anything on the Internet. Cyber crimes are already a menace, and in the future, it will only get worse. Now, only the lazy do not produce different new super-devices like Wi-Fi controlled coffee machines - they are cheap to develop, and you can overprice them for their functions. Yet, what experience in computer security do such manufacturers have? Almost none.
A "smart" coffee machine.
What about Li-Fi? They say it’s a lot safer.
I don't think Li-Fi will solve the problem. There are still windows, reflected signals and all the various spyware. A conversation between two people can be recorded by using a laser aimed at the window of the room they are talking in - it will detect the vibration of the glass caused by sound waves. For me, the fact that modern cyber criminals are not teenagers who sit at home in their dim rooms as it was once before, but commercial structures once came as a surprise. Now, you can just use the Internet to order an attack at a particular person or company; people earn lots of money for such tasks, and it's very profitable, so they'll be hacking Li-Fi as well, though hacking Wi-Fi is sure easier. One always has to find balance between two things - the user's comfort and security. As of now, it’s all about the former, and thus the latter got compromised. All around the world, people fill their houses with many devices that are controlled via wireless connection, so the opportunities for successful hacker attacks constantly increase.
But doesn’t that mean that security will also progress?
Surely, but that's a battle between spear and shield. As a user, you trust the developer who, as you think, does everything necessary to provide some level of security. Yet, developers have different training, knowledge and competencies. So, even a good programmer can check the same code for a smart coffee machine for like ten times and be sure everything is ok, yet a cybersecurity specialist will find many holes in his code. Without corresponding experience, one cannot even hope to develop a relatively safe product that makes use of wireless connection. Also, in the near future the manufacturers won't think much about security - they'll be rapidly filling the market with new devices.
Another problem is the one I mentioned earlier: as the industry grows, the amount of incompetent specialists increases. For instance, unmanned vehicles are now developed by the best IT specialists, who check everything hundreds of times. In future, when they'll become more common, there will be a demand for more developers. And there will sure be those who'll make some mistakes in the code, and the price for such mistakes are human lives. It's the same with doctors: when you come to a hospital, you never know whether the doctor who'll be treating you is good or incompetent.
Tell us about the most interesting project you worked on?
Probably the most memorable was mail.ru, and not just because it was the biggest. It was a real startup in the sense that it didn’t have the type of bureaucracy as with large customers: it was a small team which quickly developed from scratch, everyone understood the entire system as a whole, rather than having narrow areas of responsibility, all changes went straight to the users and from the users there was immediate feedback. Everything was very lively.
One of mail.ru’s early designs in 2000s
Regarding other projects, the project we worked on for the Ocado company was very impressive. This is a supermarket in England which arranges home delivery of groceries, but doesn’t have any actual stores. While with a normal supermarket, if you make an online order, the supermarket employee takes your list and walks through the various aisles filling up your basket with your order. In the Ocado system, the setup works completely different. The workers sit in one place, and there is a huge system of conveyors and baskets. On the screen in front of the employee appears a set of instructions about where to put what. Each worker has a limited number of goods nearby and doesn’t need to move very far, so he can place items very quickly on the conveyer and the warehouse management system sends thousands of baskets from one employee to another via conveyors, until each order is complete. In the end, all the baskets are loaded in a car and sent on their way. Each car delivers about 10 orders. Everything is automatic, from the movement of the baskets within a four-story warehouse and distribution of baskets to the cars then the layout of an optimal route for each car so that each customer would receive their order within the selected time slot.
What I specifically had to do wasn’t that interesting but everything that was taking place was very impressive. Everyone was jealous of the guys who were making the automatization of the warehouse, not every developer gets to experience that feeling when your code isn’t a bunch of digits on a screen, or a new page on a website but it comes to life in the form of a huge moving machine.