Как я провела лето ВКонтакте

Лето закончилось, а вместе с тем закончилось и большинство летних стажировок в IT-компаниях. В этом году мне повезло пройти летнюю стажировку ВКонтакте. Это были без преувеличения самые насыщенные два месяца в моей жизни, и мне очень хочется рассказать о том, как это было.


v7okb1emkdbj9pyrgg99xiblvjc.jpeg

О себе

Сначала хочу немного рассказать о себе. Меня зовут Амина, мне 25 и по образованию я логист. В IT я пришла относительно недавно — всего три года назад. Началось всё с уроков по вёрстке от HTML Academy, а уже через год я устроилась фронтенд-разработчиком в веб-студию. А ещё это моя первая статья на Хабре, так что с почином меня :)


Как я узнала о стажировке

Один из моих друзей работает в VK в отделе iOS-тестирования. Как-то раз он рассказал, что скоро ВКонтакте начнётся набор на летнюю стажировку, в которой будет два места по направлению frontend. Всё, что будет нужно, — решить тестовое задание и пройти собеседование.

Я была уверена, что в VK попасть довольно сложно ввиду редко открывающихся вакансий и высоких требований к кандидатам, так что практически не надеялась пройти дальше этапа заявки. Но мне стало интересно, в чём заключается тестовое задание, — если оно будет интересным, можно в дальнейшем приложить его к портфолио.


Тестовое задание

Всего в программе стажировки «ВКонтакте на практике» участвовали восемь команд:


  • Команда прикладных исследований;
  • Команда мессенджера;
  • Команда мобильной инфраструктуры. Android;
  • Команда мобильной инфраструктуры. iOS;
  • Команда рекламного фронтенда;
  • Команда Core ML;
  • Команда аналитики в отделе бизнеса и рекламы;
  • Команда баз данных.

Для заявки в каждую из них нужно было выполнить как минимум одно тестовое задание, а в некоторых их было два. По направлению frontend стажёров набирали два ментора: от Команды мессенджера и Команды рекламы.


ubawi1kei84y1at6tvw3kcprf8a.jpeg

Тестовое было общее для обеих команд, так что можно было отправить заявки сразу в обе. Но я решила, что реклама мне не очень интересна, и отправила заявку только в Команду мессенджера.

Вот как выглядел перечень требований к тестовому заданию:


Сделайте упрощённый вариант канбан-доски, на которой можно:


  • добавить новые карточки;
  • добавить новые колонки;
  • перетаскивать карточки между колонками.

Добейтесь того, чтобы решение было удобным, быстрым, аккуратным. Подумайте, как сделать так, чтобы пользователю было комфортно и приятно пользоваться вашим продуктом.

Макет по ссылке: vk.cc/9jpmLH

При оценке работы в том числе будет учитываться:


  • соответствие макету, аккуратность кода;
  • качество вёрстки;
  • гибкость и масштабируемость решения.

Кроме этого, мы любим, когда в коде используется минимальное количество внешних зависимостей.


Макет дизайна был очень лаконичным и только для десктоп-версий. Поэтому все детали и нюансы пришлось додумывать самой. Как потом выяснилось, это был один из подвохов этого задания. Я решила не изобретать колесо и полезла смотреть, как это реализовано на Trello и аналогичных сайтах с канбан-досками.

Я была уверена, что если хочу хоть как-то запомниться среди огромного количества кандидатов, то стоит отправить своё решение как можно раньше. И не прогадала! В итоге сделала задание в течение пяти дней с начала приёма заявок (без сна, еды и вот этого всего).

Вот так выглядела сама реализация задания:


bvl-a-2mlflic14lqwlhi99gvxg.png

Если интересно, то в группе VK Education есть видео, где менторы обеих команд, Тим Чаптыков и Дима Безуглый, рассказывают, как должна была выглядеть идеальная реализация задания, и расписывают наиболее частые ошибки при выполнении. Вот ссылка: vk.cc/9Q54fO


Собеседование

Спустя долгие и мучительные две недели ожидания мне написала HR ВКонтакте и пригласила на собеседование. Я была так рада и одновременно в таком ужасе, что всю неделю до этой встречи разбирала статьи на тему «Как пройти техническое собеседование на frontend-разработчика» и подобные материалы.

Само собеседование должно было проходить с ментором из Команды мессенджера — Тимом Чаптыковым. Но со мной пришёл пообщаться ещё и ментор из Команды рекламы — Дима Безуглый. Вопросы были стандартные — про себя, про опыт, стек технологий, которые я использую в работе. Я плохо помню само собеседование, потому что всё ещё была в ужасе, нервничала и вообще не понимала, что я тут делаю. Единственный вопрос, который я хотела задать на самом собеседовании, — были ли какие-то замечания по моему тестовому заданию.


nrt0_azxfvhartlyd-ouzz0zyly.jpeg

Естественно, я об этом забыла! Поэтому передала его уже после собеседования через HR. Я-то думала, что получу ответ в виде двух-трёх комментариев, но просто не была знакома с Тимом. Уже на следующий день мне прилетело максимально развёрнутое ревью со всеми замечаниями, описанием того, что должно было быть сделано, а также разбором всех минусов и плюсов моей реализации.

Вот это сообщение:


dcgcfc3hmixa6k_p39dd3fmldfa.jpeg

Это было очень круто и приятно, потому что обычно такие вопросы после собеседования оставались для меня без ответа (возможно, мне просто везло, но всё же).

Дальше оставалось только дождаться окончания приёма заявок и объявления результатов. Это были две очень волнительные недели ожидания, после которых мне наконец-то позвонили и сказали, что меня приняли. Я выхожу на стажировку в VK!


Первые впечатления

Мой первый день ВКонтакте был очень насыщенным. Сначала всем стажёрам провели экскурсию по офису: показали, где какая команда базируется, где находится знаменитая переговорка «Пыточная», как подняться в купол. Потом показали рабочие места и выдали оборудование: макбук, монитор, клавиатуру и наушники по желанию (они бывают нужны — за это надо сказать спасибо музыкантам, которые летом оккупируют Невский проспект). И сразу после этого у меня началось погружение в работу. Мы с ментором обсудили план работы на два месяца, и я отправилась настраивать рабочее окружение, шерстить документацию и играть в игру «найди нужную статью в Confluence».


sta1to_giambpzk4htgfxvhdb6k.jpeg

Задачи на стажировку

Мои задачи на стажировку были известны с самого начала — о них я узнала ещё на собеседовании. Никакого сидения в уголочке и правки багов, до которых ни у кого руки не доходят. Это были три крупные продуктовые задачи для раздела сообщений — скоро вы увидите их реализацию в десктопной версии VK. А пока NDA;)

У раздела сообщений VK есть много особенностей, которые нужно учитывать при разработке. Самая главная из них, на мой взгляд, — это то, что практически все события происходят в режиме real-time. Данные с сервера постоянно обновляются, за этим нужно следить. Ещё накладывается то, что тестирование должно обработать абсолютно все кейсы, —и если выявлены даже какие-то максимально редко встречающиеся баги, то их нужно фиксить. Тут всё просто — VK каждый месяц пользуются 97 миллионов человек, и если баг появляется у каждого стотысячного, то получается, что почти 1000 юзеров его отловят. Поэтому минорных багов практически нет.


Мессенджер

Хотелось бы отдельно рассказать про Команду мессенджера. Круто, что она очень слаженная, несмотря на то что делится на подкоманды по платформам. Чтобы все были в курсе дел по каждой платформе, по понедельникам проводится митинг, где каждый рассказывает, чем он занимался на прошлой неделе и что будет делать на следующей.


kfmlcle4gf7mbvg_umt_bkb6esu.jpeg

Но самые крутые встречи — это ретроспектива. Раз в месяц проводится митинг, на котором собирается вся команда и обсуждает всё хорошее и плохое, что случилось за это время.
Сначала ведущий ретроспективы берёт большую чашку с M&M«s. Затем в двух предложениях он рассказывает о чём-то хорошем, что случилось в его жизни, съедает конфету и передает чашку следующему. И встреча продолжается по той же схеме. И так до тех пор, пока не выскажутся все. Ребята говорят и о глобальных изменениях в жизни, и про мелочи вроде «дочитал хорошую книгу» или «сходил на отличный фильм». Это всем поднимает настроение и помогает настроиться на позитивный лад.

Далее происходит обсуждение накопившихся проблем. У команды есть специальный почтовый ящик, куда в течение месяца ребята кидают стикеры: на зелёных пишут о том, что понравилось, на жёлтых — что расстроило, на красных — разозлило.


3nqgswiyuvb4tl5_jaybhlhop6w.png

Все стикеры распределяются на доске по колонкам glad, sad и mad, и затем команда их обсуждает. Если есть проблемы, которые невозможно устранить здесь и сейчас, то выясняется, как можно их решить и кто за это возьмётся. Проблемы могут быть разные: от самых маленьких, вроде температуры кондиционера, до крупных технических или организационных. Главное, что всем не всё равно: если что-то беспокоит одного, это беспокоит всех. Поэтому профит от этих встреч максимальный.

Также было очень круто узнать, как кипит жизнь внутри офиса ВКонтакте. Например, каждый четверг проходит Demo Day, где разработчики из разных команд делятся радостью от реализованных ими фич. Организуются походы в кино, тимбилдинги и пицца для сотрудников каждую пятницу.

Отдельно для стажёров проходили обеды с топ-менеджерами компании: четыре группы по два-три стажёра и четыре топ-менеджера. Так сложилось, что мне и ещё двум стажёрам из iOS выпал обед с управляющим директором VK Андреем Рогозовым. Я ожидала, что всё пройдёт в довольно официальной обстановке, но на деле оказалось совсем по-другому. Был ламповый обед, где АР рассказал много историй из жизни ВКонтакте, мы обсудили планы на будущее.


qemkql6t7itsjipmcfvnjuipzxq.jpeg

В целом было столько событий, что эти два месяца пролетели моментально. В конце всех стажёров ждала финальная презентация, где каждый рассказал об итогах своей стажировки. Моим результатом были две новые фичи. Должно было быть три, но в разработке редко что-то идёт по плану. Одна из этих фич была отдана в тестирование, чему я невероятно рада. Очень хочется про них рассказать, но сделать это можно будет только после релиза До этого я также прошла этап код-ревью. 47 комментариев были заботливо оставлены моей командой и зарезолвлены.

В заключение хочу сказать, что я очень горжусь тем, с какими крутыми людьми мне удалось поработать за время стажировки. В частности, я имею в виду маленькую команду из двух человек, отвечающую за сообщения на вебе. Тим и Катя — настоящие фанаты своего дела со своими особенными подходами к разработке. То, что я узнала от них за эти два месяца, кажется, суммарно превышает все знания, накопленные за скромные два года работы.


s9r9jk97t4owvq38yyyqznjaveo.jpeg

Стажировка ВКонтакте — это шанс увидеть, как работает такой большой проект изнутри, узнать побольше о процессах. Стажировка сама по себе не подразумевает дальнейшего трудоустройства, стажёры проходят собеседование на общих условиях. Это обговаривалось сразу и не было сюрпризом.

Но, как это часто бывает, всё может поменяться. Стажёры так сработались со своими менторами и коллегами, что 8 из 13 были приняты в штат! Однако не все остались в своих командах — некоторые решили попробовать себя в чём-то другом.
Например, я теперь младший разработчик в Команде автоматизации и эксплуатации инфраструктуры — познаю админскую сторону ВКонтакте.

© Habrahabr.ru