Описание вакансии
Наша основная миссия в Railway — повысить эффективность инженеров-программистов. Мы верим, что людям следует предоставлять мощные инструменты, чтобы они могли тратить меньше времени на настройку и больше на работу.
Многие инфраструктурные платформы просто фокусируются на том, как развернуть ваше отдельное приложение, а не на том, как эти приложения функционируют в совокупности. Вопросы вроде «Как создавать системы для развертывания с нулевым простоем?», «Как осуществляется межсервисное взаимодействие?» обычно оставляются на усмотрение инженеров.
В Railway наша цель — стать всеобъемлющим решением всех этих проблем. Поэтому мы уделяем особое внимание разработке нашей сетевой инфраструктуры.
Примечание: Сетевая инфраструктура относится к области платформенной инженерии. Если вы специализируетесь в этой области, мы будем рады пообщаться! Тем не менее, мы также хотели бы отметить, что, вероятно, вам придется заниматься множеством задач, не связанных с сетевой инфраструктурой, а также платформенных задач.
«Но мир был бы лучше, если бы больше инженеров, как я, ненавидели технологии. То, что я проектирую, если я буду успешен, никто никогда не заметит. Все просто будет работать и будет самодостаточным»
О РОЛИ
В этой роли вы будете:
- Создавать конвейеры приема данных для обработки потоков журналов, метрик и других телеметрических данных объемом более 1 млн RPS.
- Создавать масштабируемые, отказоустойчивые системы оповещения для уведомления пользователей в режиме реального времени о превышении пороговых значений.
- Разрабатывать богатые API для серверной части наблюдения, работая с продуктовыми командами над созданием потрясающих возможностей для мгновенного понимания их приложений.
- Предоставлять API для доступа к потокам журналов/метрик в реальном времени, которые будут использоваться командами Dashboard и Product.
- Создавать с нуля сервисы Golang/Rust GRPC, способные поддерживать десятки тысяч пользователей и миллионы последующих.
- Определять инфраструктуру, которую можно демонтировать, переключать при сбое и восстанавливать с нуля, используя принцип неизменяемой инфраструктуры с помощью Terraform и Ansible.
- Писать документы с инженерными требованиями (Engineering Requirement Documents), чтобы пройти путь от идеи к определенным задачам, к реализации и к мониторингу успеха.
- Взаимодействовать с нашим TypeScript и GraphQL-интерфейсом для предоставления ваших микросервисных API как для внутреннего, так и для потенциального внешнего использования.
Это роль с высоким уровнем влияния и широкой автономией, напрямую влияющая на культуру, траекторию развития и результаты компании.
О ВАС
- Глубокое понимание распределенных систем. Вам нравится создавать отказоустойчивые, надежные и масштабируемые сервисы.
- Интерес к VictoriaMetrics, ClickHouse и другим системам для создания стеков наблюдения с нуля.
- Четкое понимание, как долго будут существовать ваши решения. Все системы стареют. В стартапах мы можем рассчитывать на увеличение в 2-3 порядка или на 12-18 месяцев.
- Тактичность в реализации вашего решения, создание механизмов мониторинга границ ошибок и документирование любых требований на случай вашего отсутствия.
- Отличное чувство направления и приоритетов при работе с неопределенностью на ранней стадии стартапа.
- Стойкость, чтобы глубоко погружаться в проблему, реализовывать решение, масштабировать его и заменять при необходимости.
- Отличные коммуникативные навыки для донесения своей точки зрения, реализации решения и дальнейшей работы.
Мы ценим и любим работать с разнообразными людьми из разных слоев общества.
Что нужно знать
К лучшему или худшему, мы — стартап; наши командные взаимодействия отличаются от взаимодействий в компаниях других размеров и стадий развития.
- Мы распределены ПО ВСЕМУ миру, и эта распределенность будет только расти. В результате, события происходят ВСЕГДА.
- Мы НЕ ожидаем, что вы будете работать все время, но вам придется тщательно устанавливать границы, потому что конец вашего рабочего дня может совпадать с началом рабочего дня кого-то другого.
- Мы — небольшая команда с высокой степенью ответственности, которая не только увлечена своим делом, но и стремится быть исключительной. На момент написания нас 21 человек, обслуживающих сотни тысяч пользователей. Происходит много всего, и много неопределенности.
- Мы хотим, чтобы вы брали на себя ответственность. Мы верим, что ответственность — ключ к росту, и частью этого роста является не только способность принимать решения, но и нести ответственность за успех или неудачу, которые приходят с этими решениями.
Преимущества и бонусы
В Railway мы предоставляем лучшие в своем классе льготы. Отличная зарплата, полное медицинское страхование, включая иждивенцев, сильные опционы, компенсация оборудования и многое другое. Для получения более подробной информации обратитесь к странице вакансий.
Помимо компенсации, есть несколько вещей, которые, по нашему мнению, делают работу в Railway по-настоящему уникальной:
- Автономия: у нас очень мало встреч. Только понедельник и пятница для обзора общего состояния компании. Мы считаем, что ваше время священно, как на работе, так и вне ее.
- Ответственность: у нас культура высокой ответственности и высокой автономии. Мы надеемся, что вы присоединитесь к нам, поможете нам и в течение многих лет будете выполнять лучшую работу в своей жизни. Когда мы принимаем вас на работу, мы ожидаем, что вы измените компанию.
- Новые проблемы/решения: мы — хорошо финансируемый стартап с интересными проблемами, что позволяет нам реализовывать новые решения! Мы избегаем «суррогатной работы» и считаем, что, будь то сообщество, инженерия, операции и т. д., всегда есть возможности для творческих и высокоэффективных решений.
- Рост: мы хотим, чтобы вы росли вместе с нами, но мы знаем, что талант — это временный ресурс, поэтому, когда вы определитесь, в какой области вы хотите развиваться дальше, будь то в Railway или за ее пределами, мы позаботимся о том, чтобы вы оказались там.
Как мы нанимаем
Никаких уловок. Никаких сюрпризов. Вот весь процесс:
-
Поговорите с нами о вакансии
- Это полностью открытый диалог, и мы просто пытаемся понять, кто вы, что вы хотите делать и куда вы стремитесь.
-
Работайте над небольшим проектом для обсуждения на собеседовании
- Асинхронно реализуйте следующее:
- Представьте теоретическую или реальную систему, подобную Railway, которая может управлять состояниями вычислений без состояния и с состоянием. Разработайте движок для управления наблюдаемостью.
- Структура собеседования (60 минут):
- Предварительная подготовка (до собеседования): завершите свое решение (рекомендуется).
- 0-5 мин: введение.
- 5-50 мин: разработка (или расширение) вашего решения.
- 50-60 мин: вопросы о Railway/технологиях/и т.д.
- Вы можете и ДОЛЖНЫ задавать нам вопросы заранее. Задавайте все!
-
Обсудите ваше решение с командой
- Вы встретитесь с кем-то из команды и обсудите вышеизложенное. Мы изучим ваше решение, а также познакомим вас еще с двумя членами команды.
- Мы ищем: Понимание ваших навыков решения проблем. Как вы разбиваете проблему и как представляете решение.
- Структура собеседования (60 минут):
- Предварительная подготовка (предоставляется до собеседования): завершите свое решение.
- 0-5 мин: введение.
- 5-50 мин: разработка (или расширение) вашего решения.
- 50-60 мин: вопросы о Railway/технологиях/и т.д.
-
Встреча с командой
- Вы встретитесь с командой, которая будет состоять из 4 человек из совершенно разных отделов компании.
- Мы ищем: Как вы работаете с остальной командой и общаетесь.
-
Предложение и обсуждение деталей с CEO
- Наконец, мы пройдемся по процессу, роли и обсудим детали вашей позиции, процесса адаптации и все прочее.
Заключительное примечание: Собеседование проходит в обе стороны. Еще раз, пожалуйста, задавайте нам вопросы. Много вопросов! Сложных вопросов. Мы здесь для этого.