Старший инженер-программист | Автоматизация Kubernetes
Что вам предстоит решать
Под находится в середине запроса. Узел, на котором он работает, вот-вот исчезнет — Spot выводит экземпляр, или Autoscaler пометил узел как недоиспользуемый и отметил его для удаления. Безопасный ход — подождать. Прибыльный ход — действовать сейчас. Каждая команда в этом конвейере создана для того, чтобы сократить этот разрыв: принять агрессивное решение и по-прежнему гарантировать, что ничего не сломается. Эта гарантия — самая сложная часть. Решение о том, какие узлы уничтожить, какие поды переместить и какой том хранилища изменить размер, — это действительно сложная оптимизационная задача; несколько из них в общем случае относятся к классу P=NP-hard, и она должна выполняться непрерывно, в продакшене, быстрее, чем человек когда-либо попытался бы сделать это вручную. Сделайте это правильно, и кластеры будут работать вдвое дешевле. Ошибитесь один раз, и вы вывели из строя что-то работающее. Эта вакансия охватывает несколько команд, работающих над разными частями одной и той же задачи автоматизации: алгоритмы размещения узлов и их подготовка, глубокая интеграция с такими инструментами, как Karpenter, масштабирование рабочей нагрузки (вертикальное и горизонтальное), перемещение работающих рабочих нагрузок между узлами без их прерывания, самостоятельное масштабирование хранилища и оптимизация мощности GPU в различных облаках и регионах. Все это работает в режиме реального времени, в продакшене, без вмешательства человека в настройку YAML.
Местоположение
Это возможность, связанная с конкретным местоположением. В настоящее время мы принимаем заявки от кандидатов, проживающих в следующих европейских странах: Болгария, Хорватия, Эстония, Греция, Венгрия, Латвия, Литва, Польша, Румыния, Словакия, Словения и Украина.
Требования
- Сильные основы инженерии программного обеспечения: вы проектируете чистые абстракции, пишете поддерживаемый код и можете обосновать свой выбор архитектуры — не просто заставить что-то работать.
- Опыт работы с Go в продакшене является сильным предпочтением; кандидаты без опыта работы с Go должны продемонстрировать сильные навыки системного программирования в сопоставимом языке.
- Понимание внутренних механизмов Kubernetes — автомасштабирование и сетевые возможности.
- Вы лично руководили сложным проектом от начала до конца.
- Опыт работы с ИИ-агентами для написания кода и рабочими процессами на основе агентов.
- Вы использовали инструменты наблюдаемости в продакшене.
- Опыт работы с CI/CD и DevOps практиками.
- Отличное владение английским языком, как устным, так и письменным.
- Менталитет стартапа: адаптивность, проактивность и комфортное отношение к неопределенности.
Желательно
- Глубокий практический опыт работы с облачными платформами (AWS, GCP или Azure) — включая реальное понимание того, как вычислительные ресурсы, сети и хранилища работают «под капотом».
- Глубокое знание внутренних механизмов EKS, GKE или AKS.
- Опыт работы с контейнерными средами выполнения CRI-O, runc, containerd.
- Глубокое знание облачных хранилищ — блочных хранилищ, CSI, управления томами, внутренних механизмов файловых систем.
- Низкоуровневый опыт работы с Linux: внутренние механизмы процессов, сетевые возможности на уровне пакетов (NAT, iptables, conntrack, eBPF, SDN), файловые системы, хранилища.
- Опыт низкоуровневого системного программирования на C или C++.
- Участие в разработке Kubernetes или облачных OSS проектов.
- Опыт работы с ИИ-агентами для написания кода и рабочими процессами на основе агентов.
Обязанности
- Проектирование и создание распределенных систем, которые автономно управляют инфраструктурой Kubernetes в масштабе.
- Написание сервисов Go для продакшена, которые взаимодействуют с API AWS, GCP и Azure для управления облачными ресурсами в режиме реального времени.
- Ответственность за функции от начала до конца: от проектирования до реализации, тестирования и развертывания в продакшене (большинство проектов выпускаются в течение 1-4 недель).
- Диагностика сложных производственных проблем в различных облачных провайдерах, кластерах Kubernetes и распределенных сервисах.
- Сотрудничество с продуктовой командой и другими инженерными командами для решения проблем, не имеющих стандартных решений.
- Работа с временными рядами данных, API облачных провайдеров и внутренними механизмами управляющего уровня Kubernetes.
- Вклад в направление продукта и бэклог — определение того, что будет создано дальше, а не только как это будет создано.
- Участие в дежурствах по вызову для команд, которые в этом нуждаются.
Инструменты, которые мы используем ежедневно
- Языки программирования: Go
- Облачные технологии и оркестрация: Kubernetes, AWS, GCP, Azure
- Инфраструктура как код: Terraform
- Базы данных и хранилища: PostgreSQL, Cloud Object Storage, ClickHouse
- Обмен сообщениями и API: GCP Pub/Sub, gRPC для внутреннего взаимодействия, REST для публичных API
- Наблюдаемость: Prometheus, Grafana, Loki, Tempo
- CI/CD и GitOps: GitLab/Github CI с ArgoCD и Kargo
Что вас ждет?
- Конкурентная заработная плата (6500 - 9000 евро брутто, в зависимости от уровня опыта)
- Гибкая, преимущественно удаленная работа в глобальной среде.
- Сотрудничество с международной командой экспертов по облачным технологиям и новаторов, увлеченных расширением границ технологии Kubernetes.
- Опционы на акции.
- Быстрая обратная связь благодаря быстрому рабочему процессу. Большинство проектов по разработке новых функций завершаются за 1–4 недели.
- 10% рабочего времени на личные проекты или самосовершенствование.
- Бюджет на обучение для профессионального и личного развития — включая доступ к международным конференциям и курсам, которые повысят ваши навыки.
- Ежегодный хакатон для зарождения новых идей и укрепления командных связей.
- Бюджет на командные мероприятия и корпоративные события для общения с коллегами.
- Бюджет на оборудование, чтобы обеспечить вас всем необходимым.
- Дополнительные выходные дни для поддержания здорового баланса между работой и личной жизнью.
Процесс найма
- Отборочный звонок с рекрутером
- Собеседование с нанимающим менеджером
- Техническое собеседование (системное проектирование)
- Live coding
- Культурное собеседование с руководством
В рамках нашего стандартного процесса найма мы хотели бы проинформировать вас о том, что на заключительном этапе подбора может быть проведена проверка данных через нашего стороннего поставщика, Checkr.
Обратите внимание, что Cast AI не предоставляет никакой визовой поддержки/разрешения на работу.