📜 ⬆️ ⬇️

Yandex through the eyes of an intern

Summer is the time for vacations, vacations and, of course, internships. As a third year student in the field of Applied Mathematics and Computer Science at Irkutsk State University, I was most interested in them. I was lucky to join the Yandex computer vision service for three months. In this post, I want to tell you what it is like to be an intern at Yandex, what are the actual tasks that are set for them, and what you will be in general for all this. I admit that I passed the selection not without difficulty, so I think that my post may be useful to those who are planning their summer now.



Computer vision team and me in a gray t-shirt


How did it start


Difficulties lay in wait for me at the stage of filling out the questionnaire - a few hours of hard work to fill in the molds were ruthlessly destroyed by a nightly update of the system. Not ideal, in my opinion, having solved the test problems, I almost began to doubt my chances. And suddenly I was answered and offered to get acquainted with the group of neural network technologies that is part of the computer vision service, since I indicated this direction in my own interests. After talking with Yandex employees “for life” and discussing possible tasks, I began to work on a new test task - building a text classifier.


Two final interviews, a month of waiting, and here is a cherished call with an offer to undergo an internship from June 16 to September 15. The only thing I had to do was pack my bag. Flight and accommodation - all this was organized in advance by the curators of the summer internship, for which many thanks to them. On June 16, I came to the main office of Yandex, where, together with a couple of interns, I went through the employment process and was finally able to start generating bugs to begin fulfilling my trainee commitments.


About work


First, a few words about why Yandex needs a computer vision service. In many tasks we would like to understand what is depicted in the picture: for example, to find the most relevant images on request or, in the case of purchases, similar products. The amount of data to be taken into account is often so large that there is no hope of finding enough people to view all the images, not to mention the costs for such an undertaking. So why don't we teach computers how to recognize pictures? Despite the fact that in 1966 such a task looked like a summer project for a group of MIT students , the best minds of the planet are still struggling with it. It is not a secret that at this moment artificial neural networks, which are perfectly suitable for working with images, as well as texts, sounds and many others, are reigning in this sphere. Actually, the development and implementation of neural network approaches to tasks with images for the application of irreparable profit is done by the Yandex computer vision service.




It is worth noting that interns at Yandex are full-fledged employees, and the tasks assigned to them are the same as if they were already on staff. Specifically, in our department, interns are given the most interesting tasks. For example, I was given the opportunity not only to work on internal tools, but also to train the neural networks for Yandex.Market myself (recognition of inappropriate advertisements) and Avto.ru (determining the angle of the car). Of course, I also had a mentor who defined priorities and monitored progress, but otherwise gives a lot more freedom to perform.


In general, the training of neural networks is a simple matter, especially now, when there are a huge number of different courses and materials on machine learning and neural networks on the Internet. This allows you to quickly get into this area and immediately start working. In my case, “immediately” is about two weeks, during which I understood the whole variety of computer vision technologies inside Yandex, and another two weeks to send the first commit to the code review. Many thanks to my mentor and other colleagues who spent hours of their time explaining to me how to do what they would have spent minutes on!


When the task is set and the quality metric is clear, the data collection stage begins. Usually it is hundreds of thousands or even millions of pictures, which take whole days to collect. Rarely is it necessary to train a neural network from scratch. Most often, an already well-trained network is taken for a similar task with the hope that it already knows how to extract some useful signs for us in some layers (without faith and healthy optimism in our work nowhere). On the basis of the counted features, something very simple is learned, say, several fully connected layers, and if the quality obtained satisfies the service, the model is sent to production. In theory, this approach works very well on typical tasks, such as the ones I was engaged in. But, as you know, "in theory there is no difference between theory and practice, but in practice it does." Therefore, often our work includes reading and analyzing scientific articles, selection of neural network architecture, selection of teaching parameters and many other different tricks and dances with a tambourine. Discussing ideas is an important part of the process, so there were many internal and external meetings in our team, so that everyone was aware of what their colleagues were doing.




Separately, I want to talk about the team and the staff of Yandex. The first thing that caught my eye was a large percentage of young people in the company, including among developers. Argued that here mainly harsh Olympiad from top universities, and in fact only SHAD graduates are recruited that is not entirely true, although there are indeed many such people here. But Yandex is engaged in a lot of various educational projects and advanced training courses, so many new staff comes from there.


Partly from my own experience and for the most part from the experience of current employees, I can say that the lack of a good university in a resume or experience of participating in contests will not be written down to a candidate in the minus, much greater weight is given to skills and knowledge directly related to the developer’s activities. Maybe I am constantly lucky for good people, but for all the time I have never had a bad experience in communicating with anyone in Yandex, and this is not only all sorts of developers and analysts, but also security, doctors, support services, hostesses and others. And I generally consider my team exemplary, both in terms of the results achieved and in terms of how comfortable it is to work.


Three months of the summer internship passed in an instant, and I didn’t want to leave my favorite team. Fortunately, Yandex is recruiting interns all year round, so I was able to return to the same team in the winter, for the period from December 16 to March 3. In general, the second internship was no different from the first one: I actually continued to do the same, except that my mentor changed, and we were now analyzing video instead of pictures. Still, it was my second time as an intern, so I was promoted to a senior intern, aka Senior Intern. By this time, our team has already grown solidly, which caused some difficulties in the work - now it’s not so easy at lunch to everyone to sit at the neighboring tables.





The life and life of an intern


In the summer, together with other interns and participants in educational projects of Yandex, I was lodged in the center of Moscow, so the journey to the office took about half an hour. Sometimes we organized various events, such as walking around the city or jointly signing the NDA :) Most of all I remember the summer trainee day: a lot of running around, solving logical puzzles, and at the end - pizza and t-shirts! Well, where else can you be prompted to decrypt the message on Whitespace? Of course, Yandex organizes events not only for its interns, but also for all employees. I also remember the summer of 2016 as the Summer Olympics, for which Yandex prepared several special projects, some of which were invented on the internal hackathon. It just so happened that I practically finished the first internship with a corporate party, and the second internship began with a celebration at the New Year corporate party. In winter, I managed to get on a tour of the office. It may seem that the internship is a real fun - the way it is!




Based on my experience, I want to point out the disadvantages and advantages of internships in Yandex:


Those moments that, in my opinion, can be called minuses:


  1. The specificity of the experience. Yandex is a technology company, and many interesting problems in it have already been solved. Unfortunately, the value of the experience of using these solutions somewhere outside of Yandex is not always obvious.
  2. Motivation. Having worked on solving complex and interesting problems, it is very difficult to force myself to return to everyday university studies. After starting dozens or even hundreds of experiments on a whole cluster of machines, in order to get a better result than anyone else, there is hardly enough enthusiasm for working on term paper. There are people for whom this huge gap between work and academic activity has become one of the reasons for leaving postgraduate school. Although in Yandex there is a group of researchers who are engaged in scientific work.

Pros:


  1. Experience. In addition to a pleasant line in the resume, here you can get important professional skills: write clean code, plan your tasks, know state-of-the-art approaches and production solutions. Yandex supports the aspiration of employees to grow professionally: here you will find various events and programming workshops, the presence of your own library, and regular business trips to conferences. In the computer vision service, almost every employee visits one of the top conferences, such as NIPS, ICML, ICLR, CVPR, etc., once a year. But in order to know the most advanced developments in your field, it is not necessary to leave somewhere - regular seminars with the analysis of scientific articles allow you to always stay abreast of the latest results.
  2. Office. Honestly, sometimes I don’t want to leave the office at all. And the point here is not that deadlines are always burning and you need to urgently fix bugs (I have never noticed anything like this in our department), but how comfortable it is to be here. Fortunately, the office is open 24/7, and you can always come to play ping-pong or table tennis (or work).


I think this is a great experience. Yandex is recruiting interns for the summer every year. Now there is still an opportunity to spend your summer with good use - the guys will finish the first of May. If you want to do an internship in Moscow, you, like me a year ago, will be paid for travel and accommodation. And if there is a Yandex development office in your city, then you can not go anywhere.


')

Source: https://habr.com/ru/post/326518/


All Articles