Работа

Отдел
поисковых интерфейсов

Руководитель — Сергей Бережной

Отдел поисковых интерфейсов

Чем занимается отдел

Наш отдел разрабатывает веб-интерфейсы для главной страницы результатов поиска, а также для поисков по изображениям, видео, новостям и для других сопутствующих сервисов. Это достаточно большой отдел (больше 150 человек) внутри которого соблюдаются общие принципы и подходы к разработке и поощряется повторное использование общего кода. В частности, внутри отдела делается общая библиотека блоков не только для наших проектов, но и для остального Яндекса, а всё что возможно мы публикуем с открытым кодом в рамках БЭМ-методологии и экосистемы. Одна из особенностей нашего процесса разработки, это плотная связь с процессами тестирования и инфраструктурой. Как ручное, так и автоматическое тестирование является у нас неотъемлемой частью процесса разработки и интегрировано в основную кодовую базу. И чтобы такие объёмные процессы не приходилось поддерживать вручную у нас есть целая служба, которая занимается всевозможной инфраструктурой.

Какие люди нужны

Нам нужны опытные разработчики, которые отлично знают JavaScript, понимают стек технологий поверх HTTP-протокола, умеют работать с инструментами промышленной разработки: Git, GitHub, командная строка (Linux / OSX), IDE. Точно не будут лишними знания в области оптимизации производительности интерфейсов.

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

Преимущества

У нас хорошо организовано внутреннее обучение — мы участвуем как в семинарах по разным инструментам и технологиям, так и во внутренних конференциях для разработчиков. Мы также ездим на внешние конференции, в том числе за границу.

Заполнить анкету

Служба поисковых интерфейсов

Рассказывает руководитель службы Михаил Трошев

Чем занимается подразделение

Служба занимается разработкой интерфейсов одного из самых важных проектов Яндекса — страницы с результатами поиска. Ежедневно поиском Яндекса пользуется 40 миллионов человек, из них около половины — с мобильных устройств. Специфика сервиса в том, что он существует уже почти 20 лет и при этом постоянно развивается.

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

Основной язык программирования в команде — JavaScript. На нём пишется практически всё: серверный и клиентский код, утилиты и внутренние сервисы, всевозможные виды тестов и статические анализаторы кода. Мы используем препроцессоры Stylus и PostCSS, придерживаемся методологии БЭМ, ведём разработку в GitHub Enterprise по концепции «зелёного транка» и пишем много тестов — модульных, функциональных, визуальных регрессий.

Мы стараемся сделать поиск доступным для всех пользователей, поэтому ведем разработку под множество платформ: настольные компьютеры, планшеты, смартфоны (и даже телевизоры!) любых версий, с любыми операционными системами и браузерами, в том числе не самыми современными. При этом не забываем про пользователей с медленным интернет-соединением, делая для них легкую версию поисковой выдачи.

Какие люди нужны

Мы ждём специалистов с отличным знанием HTML, CSS и JavaScript и опытом проектирования и применения основных видов автоматизированного тестирования. Также очень желательно, чтобы кандидат был знаком с построением сложных и долгоживущих систем и умел выстраивать процессы с большим количеством участников — менеджеров, дизайнеров, разработчиков, тестировщиков и т. д.

Преимущества
Страница результатов поиска — одна из самых важных частей Яндекса. Мы практикуем гибкие подходы в разработке (Scrum), и в нашей команде мнение каждого разработчика имеет вес и влияет на продуктовые решения.

Заполнить анкету

Служба интерфейсов мультимедийных поисков

Рассказывает руководитель службы Роман Рождественский

Чем занимается подразделение

Наша команда создает интерфейсы нескольких проектов: Яндекс.Картинки, Яндекс.Видео, Яндекс.Новости, Турбо-страницы и Чаты.

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

В Яндекс.Видео мы создаем сервис для поиска и просмотра видео в интернете. У нас придется работать с API многих видеохостингов, чтобы создавать инструменты для просмотра видео, обеспечивать ускорение выдачи и сокращение времени до начала проигрывания ролика. Будет возможность не только работать над традиционными платформами для сайтов, но и заняться очень перспективной версией сервиса для SmartTV. Помимо разработки сервиса для взрослой аудитории, отдельно мы разрабатываем версию для детей, в которой можно безопасно просматривать видео.

Сервис Яндекс.Новости — имиджевый и сложный. Каждый день Новостями пользуются миллионы людей, и именно от нас они узнают, что происходит в мире в самых разных сферах. Яндекс.Новости — особенные: у нас нет ни одного журналиста, зато есть умные алгоритмы обучения, которые призваны их заменить. Мы очень любим освещать крупные события и готовим специальные проекты, чтобы наглядно рассказывать об олимпиаде, выборах или чемпионате мира по футболу.

Один из наших новых проектов — Турбо-страницы. Они помогают пользователям мобильных устройств легче и быстрее находить в интернете нужную информацию. Большинство сайтов плохо адаптированы для работы на мобильных телефонах. Они долго грузятся, бывают переполнены рекламой, их неудобно читать. Чтобы решить эту проблему, мы собираем основное содержимое оригинальных страниц, сохраняем его у себя и показываем пользователю с помощью быстрой сетевой инфраструктуры Яндекса. Для рендеринга мы используем библиотеку компонентов, которая написана специально для адаптации сайтов под мобильные устройства. По нашим подсчетам, в сетях 3G загрузка таких страниц ускоряется в 10 раз, а за счет этого уменьшается число отказов.

Последние по порядку, но не по значению — Чаты с бизнесами. Ежедневно пользователи совершают более ста тысяч звонков со страницы результатов поиска на мобильных устройствах и более тридцати тысяч звонков из мобильных Яндекс.Карт в различные организации. Телефонный звонок как канал коммуникации имеет ряд недостатков, которые мешают и нашим пользователям, и организациям. Когда мы говорим по телефону, трудно одновременно звонить куда-то еще и вообще делать что-то другое. Это влияет и на эффективность контакт-центров: служба поддержки обрабатывает меньше обращений в единицу времени. Не во всех ситуациях удобно звонить: в метро, лифте, в опенспейсе или на встрече говорить по телефону сложно или невозможно. Рынок чатов очень активно растет в последнее время, и у нас большие планы.

Разработка интерфейсов в нашей службе включает написание серверного кода для приложения на базе Node.js, клиентского кода и всех видов тестов для того, чтобы продукт был стабильным, а рефакторинг существующего кода —безболезненным. Большие и сложные задачи делаются в режиме парного программирования, проводится ревью дизайна и кода. А еще мы нежно любим TypeScript.

Мы практикуем Scrum, но если процессы разработки перестают нас устраивать, меняем их.

Какие люди нужны

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

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

Заполнить анкету

Служба общих компонентов интерфейсов

Рассказывает руководитель службы Владимир Гриненко

Чем занимается подразделение

Мы делаем общепортальную библиотеку компонент (Лего), реализующую портальный стиль Яндекса и сопутствующую инфраструктуру вокруг. В общих компонентах тщательно прорабатывается API и к ним предъявляются высокие требования по качеству, поскольку они используются в других сервисах компании и с ними работает большое количество разработчиков.

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

Так же мы выносим в open source то, что может быть использовано вне Яндекса: bem-core, bem-components и всё остальное, связанное с БЭМ.

Какие люди нужны

Нам нужны опытные разработчики, которые отлично знают HTML, CSS и JavaScript, умеют работать с командная строкой.

Так же очень ценным будет опыт проектирования API и создания кода для других разработчиков.

Преимущества
Написание повторно используемого кода и проектирование API, участие в open source проектах. Ваш код будет использоваться другими разработчиками ежедневно. Если вы перфекционист и вам важно, чтобы результат вашего труда использовало как можно больше человек — мы сработаемся. ;)

Заполнить анкету

Служба инфраструктуры разработки интерфейсов

Рассказывает руководитель службы Сергей Белов

Чем занимается подразделение

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

Например, мы настраиваем непрерывную интеграцию, разрабатываем инструменты для статического анализа кода и создаем новые инструменты тестирования. Основным (хотя не единственными) языком разработки у нас является JavaScript (NodeJS). Многие инструменты разрабатываются нами в open source на GitHub и используются, в том числе, командами за пределами Яндекса. Среди этих инструментов — gemini, hermione, enb и другие.

Инфраструктура для автоматизации сборки, тестирования и развертывания кода, которую мы создаем, работает на сотнях серверов под высокой нагрузкой. Например, разработанная нами инфраструктура тестирования позволяет выполнять тысячи функциональных тестов верстки в 10+ браузерах (в том числе мобильных) в Selenium Grid за время до 5 минут.

Основная задача создаваемой нами инфраструктуры автосборки — поддерживать процесс разработки кода в концепции «зелёного транка» для большой (100+ человек) команды разработки, занимающейся развитием более пяти богатых функционально и работающих под высокой нагрузкой (тысячи RPS) сервисов.

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

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

У нас вы найдёте сложные и интересные инфраструктурные задачи, решение которых непосредственно влияет на скорость производства таких сервисов, как Поиск, Картинки, Видео, Новости и других.

Если вы раньше занимались или продолжаете заниматься разработкой интерфейсов, но устали бороться с проблемами кроссбраузерности — вам у нас понравится!

Заполнить анкету

Служба тестирования интерфейсов поиска

Рассказывает руководитель службы Юлия Викторова

Чем занимается подразделение

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

Мы планируем тестирование и составляем сценарии, которые потом либо проходят через автоматическую систему тестирования, либо отправляются в краудтестинг.

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

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

Заполнить анкету