Summer is over, and at the same time, most of the summer internships at IT companies have ended. This year I was lucky to have a summer internship in VKontakte. These were, without exaggeration, the most intense two months of my life, and I really want to talk about how it was.
First I want to talk a little about myself. My name is Amina, I'm 25 and I'm a logistician by training. I came to IT relatively recently - just three years ago. It all started with HTML Academy layout classes, and a year later I got a job as a front-end developer in a web studio. And also this is my first article on Habré, so with a me initiative :)
One of my friends works at VK in the iOS testing department. Once he said that VKontakte will soon begin recruiting for a summer internship, in which there will be two places in the frontend direction. All that will be needed is to solve the test task and pass an interview.
I was sure that getting into VK was rather difficult due to rarely opening vacancies and high requirements for candidates, so I hardly hoped to go beyond the application stage. But it became interesting to me what the test task is - if it is interesting, you can attach it to the portfolio in the future.
In total, eight teams participated in the internship program "VKontakte in Practice":
To apply to each of them, it was necessary to complete at least one test task, and in some of them there were two. In the direction of the frontend interns, two mentors recruited: from the Messenger Team and the Advertising Team.
The test was common for both teams, so you could send applications to both at once. But I decided that the advertisement was not very interesting to me, and sent the application only to the Messenger Team.
Here is the list of requirements for the test task:
Make a simplified version of the kanban board, on which you can:
- add new cards;
- add new columns;
- drag cards between columns.
Ensure that the solution is convenient, fast, accurate. Think about how to make the user comfortable and pleasant to use your product.
Layout by reference: vk.cc/9jpmLH
When evaluating the work, it will also take into account:
- compliance with the layout, accuracy of the code;
- layout quality;
- flexibility and scalability of the solution.
In addition, we love it when the code uses a minimal amount of external dependencies.
The design layout was very concise and only for desktop versions. Therefore, I had to think out all the details and nuances myself. As it turned out later, this was one of the tricks of this assignment. I decided not to reinvent the wheel and climbed to watch how it is implemented on Trello and similar sites with kanban boards.
I was sure that if I want to be somehow remembered among a huge number of candidates, then I should send my decision as soon as possible. And not lost! As a result, I did the task within five days from the beginning of the reception of applications (without sleep, food, and that's all).
This is how the actual implementation of the task looked:
If it’s interesting, then there is a video in the VK Education group where the mentors of both teams, Tim Chaptykov and Dima Bezugly, tell how the ideal implementation of the task should have looked and describe the most common mistakes in the execution. Here is the link: vk.cc/9Q54fO
After a long and painful two weeks of waiting, HR VKontakte wrote to me and invited me for an interview. I was so glad and at the same time so terrified that all the week before this meeting I was sorting through articles on the topic “How to get a technical interview at a frontend developer” and similar materials.
The interview itself was supposed to be held with the mentor from the Messenger Team - Tim Chaptykov. But the mentor from the Advertising Team, Dima Bezugly, also came to talk with me. The questions were standard - to myself, about experience, the stack of technologies that I use in my work. I don’t remember the interview itself, because I was still terrified, nervous and did not understand what I was doing here. The only question I wanted to ask at the interview itself was whether there were any comments on my test task.
Naturally, I forgot about it! Therefore, I passed it after an interview through HR. I thought that I would get an answer in the form of two or three comments, but I just was not familiar with Tim. The very next day I received a maximally detailed review with all the comments, a description of what was supposed to be done, as well as an analysis of all the minuses and pluses of my implementation.
Here is the message:
It was very cool and pleasant, because usually such questions after the interview remained unanswered for me (maybe I was just lucky, but still).
All that remained was to wait for the end of the acceptance of applications and the announcement of the results. These were two very exciting weeks of waiting, after which they finally called me and said that they had accepted me. I am going on an internship at VK!
My first VKontakte day was very busy. First, all the trainees had a tour of the office: they showed where which team is based, where the famous Pyrtichnaya meeting room is located, and how to climb the dome. Then they showed jobs and handed out equipment: a macbook, a monitor, a keyboard and headphones at will (they are needed - for this I must say thanks to the musicians who occupy Nevsky Prospekt in the summer). And right after that, I began to dive into work. The mentor and I discussed a work plan for two months, and I went to set up a working environment, wool documentation and play the game “find the right article in Confluence”.
My internship tasks were known from the very beginning - I found out about them at the interview. No sitting in the corner and editing bugs that nobody’s hands reach. These were three major product tasks for the message section - soon you will see their implementation in the desktop version of VK. In the meantime, the NDA;)
The VK message section has many features to consider when developing. The most important of them, in my opinion, is that almost all events occur in real-time mode. Data from the server is constantly updated, you need to monitor this. What is superimposed is that testing should process absolutely all cases — and if even some extremely rare bugs are detected, then they need to be fixed. Everything is simple - VK is used by 97 million people every month, and if every hundred thousandth bug appears, then it turns out that almost 1000 users will catch it. Therefore, there are practically no minor bugs.
I would like to separately talk about the Messenger Team. Cool that she is very well-coordinated, despite the fact that it is divided into subcommands by platform. To keep everyone up to date on each platform, a rally is held on Mondays, where everyone tells what he did last week and what he will do next.
But the coolest meetings are a retrospective. Once a month a rally is held at which the whole team gathers and discusses all the good and bad that happened during this time.
First, the retrospective takes a big cup with M & M's. Then, in two sentences, he talks about something good that happened in his life, eats candy and passes the cup to the next. And the meeting continues in the same way. And so on until everyone speaks out. The guys talk about global changes in life, and about little things like “I read a good book” or “went to a great movie”. It cheers everyone up and helps to tune in a positive way.
Next is a discussion of the accumulated problems. The team has a special mailbox where the guys throw stickers for a month: on green they write about what they liked, on yellow - what upset, on red - angry.
All stickers are distributed on the board according to the columns glad, sad and mad, and then the team discusses them. If there are problems that cannot be eliminated here and now, it turns out how to solve them and who will take it. Problems can be different: from the smallest, such as the temperature of an air conditioner, to large technical or organizational ones. The main thing is that everyone cares: if something bothers one, it bothers everyone. Therefore, the profit from these meetings is maximum.
It was also very cool to find out how life is boiling inside the VKontakte office. For example, every Thursday passes Demo Day, where developers from different teams share the joy of their features. Cinema trips, teambuilding and pizza are organized for employees every Friday.
Separately, for interns, there were lunches with top managers of the company: four groups of two or three interns and four top managers. It so happened that I and two other interns from iOS had a lunch with managing director of VK Andrey Rogozov. I expected that everything will take place in a rather formal setting, but in reality it turned out quite differently. There was a tube lunch, where the AR told many stories from the life of VKontakte, we discussed plans for the future.
In general, there were so many events that these two months flew by instantly. At the end of all the interns, a final presentation awaited, where everyone talked about the results of their internship. My result was two new features. There should have been three, but in development rarely something goes according to plan. One of these features was put into testing, which I am incredibly happy about. I'd like to talk about them, but this will only be possible after the release. Before that, I also went through the code review stage. 47 comments have been carefully left by my team and resolved.
In conclusion, I want to say that I am very proud of what cool people I managed to work with during the internship. In particular, I mean a small team of two people, responsible for the messages on the web. Tim and Katya are real fans of their field with their special development approaches. What I learned from them over these two months seems to total exceed all knowledge accumulated over a modest two years of work.
VKontakte internship is a chance to see how such a large project works from the inside, to learn more about the processes. An internship in itself does not imply further employment, interns are interviewed on general terms. This was discussed immediately and was not a surprise.
But, as often happens, everything can change. The interns worked so well with their mentors and colleagues that 8 out of 13 were hired! However, not everyone remained in their teams - some decided to try themselves in something else.
For example, I am now a junior developer in the Automation and Maintenance Team of the infrastructure - I know the admin side of VKontakte.