From ITMO to Google

What did you do after university?

I graduated from ITMO University in 2010 and then got a job at the Transas company. At first, I worked on ship simulators. After a while, I was invited to another department. They were looking for someone to develop computer vision algorithms. What is interesting about this is that no one in that department had previously worked with such things, and I didn’t have any experience in this area either. I had to quickly learn a lot about computer vision and, surprisingly, I really liked it. Apart from that, I also did 3D reconstruction using the aerial imagery.

Alexander Mordvintsev's lecture at ITMO University
Alexander Mordvintsev's lecture at ITMO University

How and when did you receive a job offer from Google?

It was in 2014; their HR wrote to me and invited me to an interview. It’s pretty funny how she found me. She told me that she bumped into my name in the list of participants of one of the programming competitions for Russian schoolchildren, in which I took part in the early 2000s. Apparently, she looked into what the winners of those competitions were doing at that period of time and found me. The thing is that I didn’t even write about these competitions in my resume. And yet they helped me land this job.

What position were you offered?

Initially, I joined the company as a software engineer. But I was lucky to get into the team that was one of the first to implement neural networks in the company’s production. It was there that I gained practical experience, learned how it all worked and started to conduct experiments. When one of them, DeepDream, became a success first at Google and then outside the company, I was offered a position at the company’s research unit, where I work to this day.

Alexander Mordvintsev's lecture at ITMO University
Alexander Mordvintsev's lecture at ITMO University

Curiosity and neural networks

In what field did you conduct your experiments?

At Google, I familiarized myself with the latest advances in the field of artificial neural networks. All that I’d known before had to do with the discoveries made by researchers in the ‘80s, but their hopes did not come true. And here I was astonished by how well it worked, much better than I expected. I felt an urge to understand these processes, and started conducting experiments. Richard Feynman once said: “What I cannot build, I cannot understand.” But the opposite is not always true. You can create a working mechanism that you can not fully understand. We develop a network, we know how to train it, but we have no idea why some tasks are performed better than others. The thing is that there is still no formal theory in this area that would answer all these questions. And that’s why I started doing research into it.

DeepDream. Credit: deepdreamgenerator.com
DeepDream. Credit: deepdreamgenerator.com

So it was curiosity that helped you get the career you have now?

It’s hard to tell, but my advice to novice programmers is to be curious. I think it’s better to have superficial knowledge in different fields rather than be a professional in just one area. The thing is that when you know a little from each field, you can find a way to put these things together and achieve an impressive result.

Career in Zurich

In your opinion, is it hard to land a job at such an international corporation?

I think that if you have participated in programming competitions organized by ITMO, it is not that difficult. Three of my groupmates also work at the Google office in Zurich, as well as a dozen people from my department at the University. Of course, there is always a chance to fail the interview, but I got very lucky at this stage, I guess. I can’t say that it was extremely difficult.

Google's office in Zurich. Credit: officesnapshots.com
Google's office in Zurich. Credit: officesnapshots.com

What projects are you working on now?

I’ve spent a long time trying to explain how neural networks work and how they can be trained. Now I study these systems as a set of small interconnected elements and attempt to find practical approaches to the design of such systems. It seems to me though that the field I’m currently working in is not particularly popular. In this regard, I’m like the Japanese researcher David Ha, who is proud that while everyone trains neural networks with billions of parameters and millions of elements, he creates networks that consist of several elements and dozens of parameters. However, the results can also be very interesting and unexpected.

Drawing inspiration from biology

What fields would you advise young programmers to pay attention to?

Though I am not a chemist or biologist, unfortunately, I would still recommend acquiring at least minimal knowledge in these areas. I would dig in the direction of self-healing and self-organizing systems in particular. This is something that I’m interested in right now and where I draw the inspiration for my research.