Backend Engineer (Java)

Всем привет!

Ищем Backend Engineer в продуктовую компанию ScentBird.

Дальше - больше, в вопросах и ответах ребят.

Кто мы и что делаем?

ScentBird - это сервис ежемесячной подписки на духи и одеколоны. Мы запустились в 2014 году и на текущий момент у нас на платформе есть 400+ тысяч платящих подписчиков. За это время мы, кроме всего прочего, запустили линейку косметики Deck of Scarlet, два бренда духов Confession of a Rebel и Sanctuary, а также линейку средств по уходу за кожей GoodHabit.

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

Наш главный офис находится в Нью-Йорке, но сотрудники находятся по всему миру: Сиэтл, Париж, Киев, Минск, Москва, Воронеж, Таганрог, Гонконг и так далее. Мы растем как распределенная компания по той причине, что мы можем найти самых талантливых людей, дать им интересную работу, хорошую зарплату и возможность жить и работать оттуда, где им нравится.

Почему мы это делаем?

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

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

Что представляет собой наш проект?

Многие могут подумать, что у нас очень простой сервис, но, если начать погружаться, можно увидеть, что мы решаем множество задач. Примеры задач и сервисов, над которыми мы работаем с учетом того, что все написано с 0:

  • Система управления клиентским профилем для технической поддержки (интеграция с платежным шлюзом, сервисом мониторинга почтовых отправление, zendesk и прочим).
  • Система работы с Fulfillment center (компания, которая занимается упаковкой) - необходимая надстройка над системой управления складом, с учетом специфики бизнес модели.
  • Надстройка над внешним платежным шлюзом.
  • Система внутренней аналитики (Redshift, Looker, AWS Glue, интеграция с GA / Mixpanel).
  • Сервис рекомендации парфюмов на основании профиля пользователя.
  • И многое другое.

Какой у нас технический стек?

Как правило, мы используем последние версии:

  • React, Redux, Preact и многое другое на фронтенде (вы знаете, там каждые полгода новый фреймворк и каждый раз он лучше предыдущего).
  • Java 11 + Postgres как основой backend stack (также есть немного Groovy + Grails 3.4).
  • Kubernetes, Docker и много других страшных слов для деплоймента.
  • AWS Stack - EC2, S3, Lambda, API Gateway, RDS, Redshift, Elasticache и многое другое.
  • Continuous Deployment с помощью Gitlab, Feature Toggling (и веры в то, что мы действительно все протестировали).
  • New Relic, Sentry и Grafana для мониторинга (да, мы любим смотреть на дашборды).

Предпочтительный профессиональный уровень кандидата: Senior

Какие профессиональные навыки нам важны?

  • 5+ лет опыта с Java.
  • Опыт с Continuous Integration/ Continuous Delivery (мы заливаемся по несколько раз в день, иногда требуются очень быстрые изменения, мы используем Gitlab).
  • Умение писать Unit/Integration тесты.
  • 2+ года опыта работы с PostgreSQL.
  • Опыт работы с облачными провайдерами Amazon AWS или аналогичными.
  • Опыт оптимизации скорости работы приложения (JVM profiling, database profiling).

Будет плюсом:

  • Опыт работы с: GraphQL, SPA.
  • Опыт TDD.

Что ещё важно для нас?

  • Ответственность и умение планировать - это очень важно на удаленной работе.
  • Умение писать чистый и понятный код.
  • Знание. что такое trade-off, знание основ проектирования.
  • Понимание, что база данных - это не просто sql, это логика.
  • Умение создавать абстракции для получаемых задач.
  • Умение срезать углы и понимание того, как можно разбивать задачи на отдельные кусочки.
  • Умение разбираться с проблемами на production - находить, понимать причину и оперативно чинить.
  • Позитивное мышление, ориентированное на результат.
  • Эффективные коммуникативные навыки: регулярное достижение консенсуса с коллегами и четкий апдейт статуса.
  • Склонность к общению, вовлеченности и заметности.
  • Опыт владения проектом от концепции до производства, включая предложение, обсуждение и исполнение.
  • Целеустремленность, хорошие навыки самоорганизации.

Нужен ли английский, и на каком уровне?

Да, английский обязателен, уровень Upper-Intermediate+.

Что делать в проекте?
Основные задачи, которые вы будете решать, связаны с нашим основным приложением (сайтом scentbird.com), которое мы создали с 0 и уже переписывали несколько раз. Текущая реализация - это Java 13, Spring Boot 2 и полный набор технологий поверх. Мы сейчас стали морально готовы к микросервисам, но создаем их только тогда, когда иначе не получается. 

Что надо будет делать на данной позиции:

  • Решать задачи связанные с направление growth / acquisition.
  • Работать над производительностью бэкэнда.
  • Участвовать в поддержке самых разных маркетинговых акций (например, мы партнеримся с Amazon Pay, в том числе и в рамках Alexa).
  • Внедрение наших сервисов рекомендаций в различных частях сайта.

В задачи наших backend разработчиков входит широкий спектр задач:

  • Анализировать задачи от бизнеса и разбивать их на гранулярные технические таски.
  • Создавать сущности базы данных, которые оптимальное решают поставленные задачи.
  • Писать код, задачей которой является решение задач от бизнеса, а не просто быть отлично написанным кодом.
  • Писать unit / integration test, делать code review.
  • Работать с инструментами мониторинга.
  • Уметь решать задачи системного администрирования (DevOps это не роль, это культура, поэтому мы не нанимаем DevOps).

В связи с чем открылась позиция? Рост бизнеса.

Перспектива роста/развития по данной позиции?

В основном, рост связан с техническими навыками - у нас не так много изменений в руководстве.

Размер и структура команды?

Вся команда состоит из 140 сотрудников, 35 из которых - разработчики программного обеспечения из разных стран (Россия, Украина, Беларусь).

Команда разработчиков: Frontend, Backend, QA Engineers, Mobile (iOS + Android), Data Science. Все ребята разделены на команды по продуктам и направлениям бизнеса.

Каждая команда тесно сотрудничает со своими пользователями и получает обратную связь из первых рук. Нам удается поддерживать ритм ежедневных релизов (в том числе в пятницу) и мы планируем наращивать скорость.

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

Кто у нас работает?

Founder & CEO Mariya Nurislamova

Founder & COO Sergei Gusev

Founder & CTO Andrei Rebrov

По условиям:

  • Есть ли испытательный срок и сколько он длится? Да, испытательный срок 3 месяца с 30-60-90 ожиданиями, определенными при старте.
  • Овертаймы, как часто бывают, какой подход к оплате? Обычно у нас нет овертаймов, в редких случаях мы можем попросить команду выполнить задачу к определенному сроку. Мы не отслеживаем, сколько времени человек тратит в течение дня на работу, но если человек берет на себя обязательство, мы ожидаем, что оно будет выполнено.
  • Какой график работы? С 12:00 до 20:00, чтобы иметь возможность пересекаться с американской частью команды.
  • Количество дней отпуска? 14 рабочих дней и увеличение каждые 3 года. Неограниченное количество неоплачиваемых отпусков. 3 дня в случае тяжелой утраты. 14 праздников.
  • Есть ли перспектива командировок и куда? Раньше у нас были командные встречи. В связи с текущей ситуацией, они пока отложены.
  • Возможна ли релокация за пределы Украины и как компания готова её поддержать? Возможна, это обсуждается индивидуально.
  • Соцпакет (медстраховка, другое). Есть бонус в конце года на основе личных и корпоративных результатов.
  • Когда, каким образом и в какой валюте платится/считается зарплата? На банковский счет частного предпринимателя один раз в месяц в долларах. Компания не компенсирует украинские налоги, поэтому их нужно покрывать самостоятельно.
  • Адрес офиса: ул. Большая Васильковская (возле ст. метро “Олимпийская“).

По процессу:

Есть ли тестовое задание? Тестовое задание, если первое собеседование прошло успешно.

Интервью на английском? На русском и английском.

Кто ревьювит резюме? CTO, Chief Architect, Team Lead.

Сколько этапов интервью, с кем?

1. Общение с рекрутером.

2. Вступительное интервью с тимлидом.

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

4. Техническое интервью с главным архитектором, тимлидом.

5. Интервью с CTO.


Если вам все нравится, присылайте, пожалуйста, ваши резюме.

Ждем с нетерпением!