Как я Буткемп в Яндексе проходил

Как сейчас помню: середина марта, начало весны, я занимаюсь разработкой очередного SPA в небольшой веб-студии в Краснодаре (привет, ребята!). Я поймал себя на мысли, что фаза быстрого роста и постижения нового переросла в рутину. Не то чтобы я уткнулся в потолок. Скорее стал получать меньше ценного опыта в процессе работы.

В закладки

Да, изучать новые технологии, пробовать и экспериментировать можно дома — ночами и на выходных. Но ведь гораздо круче осваивать новое и развиваться прямо на работе. В конце концов, в этом заинтересованы не только вы, но и работодатель, разве не так?

Однажды на конференции меня так увлек рассказ одного яндексоида о регрессионном тестировании скриншотами с помощью Гермионы (инструмент для взаимодействия с UI, который делает скриншоты состояний разных частей приложения), что я задумался о смене работы. Если не сразу на Яндекс, но хотя бы на компанию, которая делает серьезный фронтенд.

Я выложил резюме — и уже через полдня мы с рекрутером Яндекса договорились о техническом собеседовании по скайпу. А ведь работа в Яндексе казалась мне несбыточной мечтой, до которой еще годы и годы развития…

Собеседования прошли достаточно продуктивно, и вскоре я попал в Буткемп.

Буткемп

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

Разрабатывать сервис, который увидят миллионы, или улучшать внутренний инструмент, пользователи которого сидят в соседней комнате? Бурно расти со стартапом или экспериментами оттачивать работу сервиса, которому не один десяток лет? Проектировать библиотеки и фреймворки или решать инфраструктурные задачи?

Ответы на эти и другие вопросы можно найти во время Буткемпа.

Атмосфера Буткемпа

Раньше разработчик целенаправленно приходил в команду Яндекса, которую выбрал на финальном собеседовании. Сейчас он попадает в Буткемп и пробует себя в разных командах. Каждая команда ищет себе разработчика, поэтому ребята активно зовут на стендапы и демо-встречи, которые помогут познакомиться с командой и атмосферой. А ещё некоторые руководители приглашают участников Буткемпа на личные встречи — это отличная возможность пообщаться с возможным руководителем и узнать про сервис из первых рук.

Выход на работу. Лего

В первый день меня познакомили с ментором, который должен был рассказать и показать мне все вокруг. Он был из команды Лего — в ней занимаются разработкой внутренней библиотеки компонентов Яндекса. Эта библиотека реализована на i-bem и React, ей пользуется огромное количество сервисов. А ещё эта команда участвует в создании важного фреймворка bem-react-core.

За две недели в Лего я прошел боевое крещение и познакомился с технологиями Яндекса: это технологии описания клиентской логики и шаблонизации; серверный код, юнит тесты, спеки, регрессионное тестирование скриншотами и интеграционные тесты, а также множество инструментов и сервисов.

Ребята из Лего поразили меня навыками и полетом мысли, энергией и энтузиазмом. Однако здесь не так много продуктовых задач, которыми мне бы хотелось заниматься. А ещё Лего входит в жизненный цикл многих проектов, поэтому до половины рабочего времени ребята проводят на встречах. Мне же хотелось сконцентрироваться именно на написании кода, поэтому я пошел дальше.

Серп

Search Engine Result Page («Серп») — это отдел, который состоит из нескольких команд. Одни следят за скоростью работы, другие — за красотой и консистентностью, третьи разрабатывают «колдунщики» (например, карусель с видео или форму конвертации валют), которые подмешиваются в выдачу по подходящим запросам.

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

Планка высочайшая, я такого уровня не видел нигде. Думаю, это отличное место, чтобы отточить навыки. Впрочем, есть одно «но»: процент кода, который после экспериментов доезжает до продакшена, не слишком высок. А ещё после Лего мне было грустно расставаться с React'ом (на данный момент React там уже внедрен).

Фемида

К этому моменту я понял две вещи. Мне хочется работать с React и чтобы результаты работы кто-то видел. Мой выбор пал на команду Фемиды — это сложный внутренний сервис для найма сотрудников.

Поскольку Фемида — внутренний сервис, команда может иногда позволить себе радикальные эксперименты: не перекрасить кнопку или увеличить отступ, а переверстать всю страницу и добавить гору новых возможностей. Здесь не нужно думать о поддержке большого количества платформ и браузеров, можно сконцентрироваться на функциях. А ещё конечный пользователь — совсем рядом, поэтому фидбек не заставляет себя ждать.

За месяц я успел кроме Фемиды поработать над Яндекс.Кодом (если вы проходили собеседование в Яндексе, то наверняка писали код именно в этом сервисе). Во внутренних сервисах не такой жёсткий CI, как во внешних. Здесь другие масштабы, поэтому ты сам деплоишь код на машины и развиваешь инфраструктуру.

Работа над внутренними сервисами была интересным опытом, однако аудиторию здесь не сравнить с «Серпом». Мне всё ещё хотелось делать что-то для миллионов пользователей, поэтому я пошел дальше. Теперь у меня были такие требования: команда моей мечты должна заниматься сложными продуктовыми задачами для большой аудитории, желательно на React.

Картинки

Мне очень понравился рассказ об этом сервисе и его задачах, а также отзывы Буткемперов, которые уже успели там поработать. В Картинках особая атмосфера: ребята очень доброжелательные, постоянно шутят друг над другом и даже смотрят футбол (дело было во время чемпионата мира). Но всё это в рамках разумного и не в ущерб работе.

Здесь не стесняются предлагать даже самые безумные идеи, из которых могут вырасти интересные решения. Например, в первый же день меня позвали на брейншторм: мы думали, как реализовать запуск превью на Яндекс.Видео. Кое-что из придуманного я увидел реализованным уже через несколько недель, на демо-встрече Видео.

Картинки — одна из «вертикалей» поиска, разнообразный сложный сервис с очень высоким качеством кода. Здесь есть все плюсы, которые я видел в других командах: сильные ребята, которые готовы делиться опытом, интересный сервис, продуктовые задачи и React!

Выбор сделан.

Материал опубликован пользователем.
Нажмите кнопку «Написать», чтобы поделиться мнением или рассказать о своём проекте.

Написать
{ "author_name": "Anton Starikovich", "author_type": "self", "tags": [], "comments": 2, "likes": 6, "favorites": 10, "is_advertisement": false, "subsite_label": "life", "id": 60814, "is_wide": false, "is_ugc": true, "date": "Mon, 11 Mar 2019 18:59:36 +0300", "is_special": false }
0
{ "id": 60814, "author_id": 268033, "diff_limit": 1000, "urls": {"diff":"\/comments\/60814\/get","add":"\/comments\/60814\/add","edit":"\/comments\/edit","remove":"\/admin\/comments\/remove","pin":"\/admin\/comments\/pin","get4edit":"\/comments\/get4edit","complain":"\/comments\/complain","load_more":"\/comments\/loading\/60814"}, "attach_limit": 2, "max_comment_text_length": 5000, "subsite_id": 199123, "last_count_and_date": null }
2 комментария
Популярные
По порядку
0

Тот момент, когда открывая ссылку думал не о введении в Яндексе, а о локации в PUBG

Ответить
0

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

Ответить
{ "page_type": "article" }

Прямой эфир

[ { "id": 1, "label": "100%×150_Branding_desktop", "provider": "adfox", "adaptive": [ "desktop" ], "adfox_method": "createAdaptive", "auto_reload": true, "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "bugf", "p2": "ezfl" } } }, { "id": 2, "label": "1200х400", "provider": "adfox", "adaptive": [ "phone" ], "auto_reload": true, "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "bugf", "p2": "ezfn" } } }, { "id": 3, "label": "240х200 _ТГБ_desktop", "provider": "adfox", "adaptive": [ "desktop" ], "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "bugf", "p2": "fizc" } } }, { "id": 4, "label": "Article Branding", "provider": "adfox", "adaptive": [ "desktop" ], "adfox": { "ownerId": 228129, "params": { "p1": "cfovx", "p2": "glug" } } }, { "id": 5, "label": "300x500_desktop", "provider": "adfox", "adaptive": [ "desktop" ], "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "bugf", "p2": "ezfk" } } }, { "id": 6, "label": "1180х250_Interpool_баннер над комментариями_Desktop", "provider": "adfox", "adaptive": [ "desktop" ], "adfox": { "ownerId": 228129, "params": { "pp": "h", "ps": "bugf", "p2": "ffyh" } } }, { "id": 7, "label": "Article Footer 100%_desktop_mobile", "provider": "adfox", "adaptive": [ "desktop", "tablet", "phone" ], "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "bugf", "p2": "fjxb" } } }, { "id": 8, "label": "Fullscreen Desktop", "provider": "adfox", "adaptive": [ "desktop", "tablet" ], "auto_reload": true, "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "bugf", "p2": "fjoh" } } }, { "id": 9, "label": "Fullscreen Mobile", "provider": "adfox", "adaptive": [ "phone" ], "auto_reload": true, "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "bugf", "p2": "fjog" } } }, { "id": 10, "disable": true, "label": "Native Partner Desktop", "provider": "adfox", "adaptive": [ "desktop", "tablet" ], "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "clmf", "p2": "fmyb" } } }, { "id": 11, "disable": true, "label": "Native Partner Mobile", "provider": "adfox", "adaptive": [ "phone" ], "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "clmf", "p2": "fmyc" } } }, { "id": 12, "label": "Кнопка в шапке", "provider": "adfox", "adaptive": [ "desktop" ], "adfox": { "ownerId": 228129, "params": { "p1": "bscsh", "p2": "fdhx" } } }, { "id": 13, "label": "DM InPage Video PartnerCode", "provider": "adfox", "adaptive": [ "desktop", "tablet", "phone" ], "adfox_method": "createAdaptive", "adfox": { "ownerId": 228129, "params": { "pp": "h", "ps": "bugf", "p2": "flvn" } } }, { "id": 14, "label": "Yandex context video banner", "provider": "yandex", "yandex": { "block_id": "VI-223676-0", "render_to": "inpage_VI-223676-0-1104503429", "adfox_url": "//ads.adfox.ru/228129/getCode?pp=h&ps=bugf&p2=fpjw&puid1=&puid2=&puid3=&puid4=&puid8=&puid9=&puid10=&puid21=&puid22=&puid31=&puid32=&puid33=&fmt=1&dl={REFERER}&pr=" } }, { "id": 15, "label": "Баннер в ленте на главной", "provider": "adfox", "adaptive": [ "desktop", "tablet", "phone" ], "adfox": { "ownerId": 228129, "params": { "p1": "byudx", "p2": "ftjf" } } }, { "id": 16, "label": "Кнопка в шапке мобайл", "provider": "adfox", "adaptive": [ "tablet", "phone" ], "adfox": { "ownerId": 228129, "params": { "p1": "byzqf", "p2": "ftwx" } } }, { "id": 17, "label": "Stratum Desktop", "provider": "adfox", "adaptive": [ "desktop" ], "auto_reload": true, "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "bugf", "p2": "fzvb" } } }, { "id": 18, "label": "Stratum Mobile", "provider": "adfox", "adaptive": [ "tablet", "phone" ], "auto_reload": true, "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "bugf", "p2": "fzvc" } } }, { "id": 19, "disable": true, "label": "Тизер на главной", "provider": "adfox", "adaptive": [ "desktop", "tablet", "phone" ], "auto_reload": true, "adfox": { "ownerId": 228129, "params": { "p1": "cbltd", "p2": "gazs" } } }, { "id": 20, "label": "Кнопка в сайдбаре", "provider": "adfox", "adaptive": [ "desktop" ], "adfox": { "ownerId": 228129, "params": { "p1": "cgxmr", "p2": "gnwc" } } } ] { "page_type": "default" }