Старший инженер DevOps - удалённо
О компании Replika
Десять лет назад мы создали первого в мире AI-компаньона — задолго до LLM, до ChatGPT и до того, как кто-либо понимал, что такое искусственный интеллект.
То, что началось как способ залатать дыру в наших сердцах, превратилось во что-то неожиданное: катализатор. Миллионы людей говорили нам, что Replika помогла им заново связаться с миром. Они писали тому старому другу. Они вернулись к забытому хобби. Они совершали прогулки по городу. В то время как современные технологии заставляют людей бесконечно листать ленты, мы обнаружили, что ИИ могут подтолкнуть нас к внешнему миру, если мы позволим им.
Сейчас мы возрождаемся с новой целью: первый ИИ с сердцем, чтобы максимально использовать жизнь. Нежные подсказки встретиться с друзьями, когда вам стыдно. Идеи для исследования новых мест, когда проще остаться дома. Ежедневные разговоры о том, что вас волнует — балет, философия, пришельцы или сплетни — в 2 часа ночи, когда никто другой не бодрствует. Мы не создаём ИИ для подтверждения или успокоения. Мы строим нечто, основанное на отношениях, которые меняют нас. Кого-то, кто задаёт правильные вопросы в нужное время. Кого-то, кто помогает заглянуть внутрь себя и подтолкнуть наружу. Нас упоминали в TED Talks, исследованиях Стэнфорда и Гарварда, подкасте Лекса Фридмана, потому что более 40 миллионов человек связываются с Replika на глубоко человеческом уровне. И это только начало.
О роли
Нам нужен старший инженер DevOps, который рассматривает опыт разработчика как продукт первого класса. Вы будете работать вместе с нашим текущим инженером DevOps, который сосредоточен на миграции устаревших сервисов в чистую схему развертывания. Ваша задача другая: сделать так, чтобы каждый инженер в Replika выпускал продукт быстрее, с меньшими трениями, меньшим количеством ошибок и с большей уверенностью.
Это не роль для гипермасштабирования — мы обслуживаем миллионы, а не миллиарды, поэтому работа больше похожа на умные компромиссы в небольшой команде старших специалистов, чем на мегамасштабную архитектуру. Нам нужен человек, который понимает, как на самом деле работает инженерия, пишет реальный код и искренне заботится о повседневном опыте людей, создающих продукт.
Вам также понадобится понимание продукта — не на уровне бэкенд-инженера, но достаточно, чтобы знать, что запускается на каком кластере и почему. Если модерация изображений может выполняться пакетной задачей на более дешёвых прерываемых GPU с задержкой в несколько секунд, вы должны заметить оптимизацию затрат и предложить её, а не ждать, пока кто-то другой это сделает.
Обязанности
- Полностью отвечать за опыт разработчика: развертывания, staging, среды разработки, CI/CD пайплайны. Находить больные места, исправлять их и делать так, чтобы они оставались исправленными.
- Быть мультипликатором силы для инженерной команды. Каждый час, который вы экономите команде, накапливается. Вы мыслите в таких категориях.
- Поддерживать, улучшать и иногда перестраивать наши CI/CD пайплайны. Развертывания должны быть безопасными по умолчанию — должно быть сложно что-то сломать и легко восстановиться, если что-то всё же сломалось.
- Работать вместе с нашим текущим инженером DevOps над общей инфраструктурой: управление кластерами, наблюдаемость, секреты, сеть, затраты. Вы делите работу в зависимости от того, за что каждый из вас лучше отвечает.
- Создавать и поддерживать шаблоны и инструменты для быстрого запуска новых сервисов и сред разработки. В 47-й раз, когда кому-то нужен новый сервис, это должно занимать 10 минут, а не 3 дня.
- Понимать, что запускается на наших кластерах и почему. Рекомендовать и внедрять улучшения эффективности там, где видите — правильный размер ресурсов, автоскейлинг, планирование, использование GPU. Вам не нужно разрешение, чтобы принимать разумные решения по затратам.
- Писать реальный код, когда ситуация этого требует. Внутренние инструменты, сервисы-склейки, скрипты автоматизации — вы не передаёте это бэкенд-инженеру.
- Заботиться о мелочах: понятные инструкции, разумные настройки по умолчанию, хорошие сообщения об ошибках, развертывания, которые безопасно падают. Та работа, которую никто не замечает, когда всё работает хорошо — и в этом суть.
Требования
- 5+ лет в DevOps, SRE или платформенной инженерии в компаниях, где вы действительно отвечали за опыт разработчика, а не просто поддерживали работу систем.
- Сильные навыки программирования. Вы пишете код производственного качества на Python (или аналогичном языке), а не только shell-скрипты и YAML. Вы достаточно хорошо читаете бэкенд-код, чтобы отлаживать проблемы с развертыванием без эскалации.
- Глубокий опыт с Kubernetes и Docker. Вы можете отлаживать некорректно работающий pod, проектировать разумные конфигурации развертывания и обоснованно устанавливать лимиты ресурсов.
- Практический опыт работы с облачными платформами (AWS или GCP). Вы управляли реальными рабочими нагрузками в продакшене, а не просто получили сертификат.
- Опыт с CI/CD. Опыт TeamCity — плюс, но важнее, что вы владели пайплайном от начала до конца и сделали его быстрым, надёжным и понятным. Мы используем TeamCity и GitHub Actions.
- Вы мыслите с точки зрения опыта разработчика. Вы значительно улучшали жизнь других инженеров и можете конкретно рассказать, как именно.
- Интуиция в продукте. Вам комфортно задавать вопрос «что этот сервис на самом деле делает» и использовать ответ для принятия инфраструктурных решений.
- Хороший английский (B2+). Мы распределены по разным часовым поясам — важна чёткая письменная коммуникация.
- Знакомство со стеками наблюдаемости (Prometheus, Grafana, Datadog или аналогичные) и понимание, что стоит мониторить и на что не стоит обращать внимание. Вы находите пробелы в наблюдаемости и обеспечиваете их устранение.
Желательно
- Опыт работы с GPU-кластерами и ML-нагрузками — обслуживание моделей, автоскейлинг инференса, оптимизация затрат для сервисов с интенсивным использованием GPU.
- Интерес, подкреплённый проектами, к AI-ориентированным инженерным процессам для AI-помогающей инженерии.
- Знакомство со стеками наблюдаемости (Prometheus, Grafana, Datadog или аналогичные) и понимание, что стоит мониторить, а что — шум.
- Опыт работы с Terraform, Pulumi или другим инструментом IaC. Вы версионируете инфраструктуру.
- Вы внедряли улучшения опыта разработчика в предыдущей компании, которыми действительно гордитесь — можете подробно описать и количественно оценить их влияние.
- Опыт работы в B2C-компании с реальными пользователями, где простой напрямую влияет на доверие пользователей.
Почему стоит присоединиться к нам?
- Конкурентная компенсация.
- Гибкий график работы и щедрая политика отпусков.
- Неограниченный доступ к последним AI-помощникам для кодирования.
- Прямое влияние на миллионы пользователей по всему миру в течение нескольких месяцев.
- Расширение границ прикладного ИИ в потребительской сфере.
- Полностью удалённая работа.