- Работа в Москве
- Удаленно
- Старший разработчик
- Старший разработчик Go (Команда непрерывного профилирования)
Старший разработчик Go (Команда непрерывного профилирования)
По договоренности
Наша команда строит платформу непрерывного сбора профилей на базе собственного решения. Мы работаем над улучшением производительности, добавляем новые фичи и интеграции с другими компонентами телеметрии (алерты, трейсы, метрики). Основная задача предоставлять продукт, позволяющий всем разработчикам Ozon находит узкие места для оптимизации своих сервисов.
Вам предстоит:
- Поддерживать и улучшать собственное решение, менять архитектуру под быстрый и непрерывный рост нагрузки;
- Работать над стабильностью и находить места оптимизации для сокращения потребления ресурсов;
- Реализовать такие фичи, как более частый сбор в нужные момент (например, при падении сервиса по OOM), интеграция с алертингом, детект аномального потребления cpu/memory, функционал сравнение профилей, корреляции и т.д;
- Улучшать функционал сжатия профилей;
- Засетапить и поддерживать профайлинг в Ozon банке;
- Подключать к профайлингу новые k8s кластера и работать над улучшением деплоя компонентов;
- Исследовать нетривиальные баги и фиксить их.
Мы ожидаем:
- Умение писать чистый и производительный код на Go.
- Опыт написания Unit тестов.
- Опыт в разработке высоконагруженных, отказоустойчивых, распределенных систем.
- Знания docker/kubernetes: умение создавать ресурсы, смотреть логи, выполнять команды в контейнере.
- Опыт с CI/CD, знание helm, qbec или kustomize приветствуется.
- Опыт работы с Unix подобными операционными системами.
- Умение работать с мониторингом и трейсингом (Prometheus + Grafana + OpenTelemetry/Jaeger): писать алерты, делать запросы, инструментировать сервисы метриками и трейсами.
Почему у нас может быть интересно:
- Мы активно улучшаем существующую платформу профайлинга на базе собственного решения.
- Ресерчим существующие решения, такие как Parca, Pyroscope и привносим новые фичи, которые могут быть нам полезны.
- Сервис сбора профилей является достаточно высоконагруженным сервисом: мы собираем порядка 1gb профилей в секунду.
- Мы выделяем около 1500Gb оперативки и 200 ядер компонентам для сбора профилей каждые 2 минуты.
- Планируем делать сбор каждые 30 секунд, что потребует более сложных оптимизаций.
- Наш продукт настроен и оптимизирован так, чтобы переживать DC-1.
- Мы сами разворачиваем большинство компонентов в kubernetes, что дает полное понимание, как работает система.
Опубликована 21 день назад