Джетлин
Backend-инженер (базы данных и потоковые данные)
1 нед. назад
РоссияSeniorRemote
golangpostgresqlclickhouseapache kafkanatsrabbitmqci/cdkubernetes
Компания «Джетлин» ищет Backend-инженера для разработки систем мониторинга и управления транспортом с обработкой большого потока телеметрии и баз данных.
О компании
- Мы разрабатываем системы мониторинга и управления транспортом. Каждую секунду к нам поступают тысячи событий от устройств: их нужно быстро принять, корректно сохранить и отдать в аналитику.
О продукте
- Проектировать и развивать хранилища данных на PostgreSQL и ClickHouse, обеспечивая высокую нагрузку на запись и чтение.
- Обеспечивать приём и обработку непрерывных потоков телеметрии: настраивать буферизацию, дедупликацию, корректно работать с опоздавшими событиями.
- Оптимизировать запросы и схемы данных: искать узкие места и устранять их, опираясь на метрики и профилирование.
- Разрабатывать и поддерживать сервисы (основной язык стека — Go).
- Участвовать в архитектурных решениях и проводить код-ревью.
- Работать с ИИ-агентами (Claude Code, OpenCode, Pi и аналоги), используя их как основной инструмент для ускорения разработки.
Обязанности
- Проектировать и развивать хранилища данных на PostgreSQL и ClickHouse, обеспечивая высокую нагрузку на запись и чтение.
- Обеспечивать приём и обработку непрерывных потоков телеметрии: настраивать буферизацию, дедупликацию, корректно работать с опоздавшими событиями.
- Оптимизировать запросы и схемы данных: искать узкие места и устранять их, опираясь на метрики и профилирование.
- Разрабатывать и поддерживать сервисы (основной язык стека — Go).
- Участвовать в архитектурных решениях и проводить код-ревью.
- Работать с ИИ-агентами (Claude Code, OpenCode, Pi и аналоги), используя их как основной инструмент для ускорения разработки.
Требования
- Глубокое знание PostgreSQL : уверенное чтение планов запросов (EXPLAIN ANALYZE), понимание работы индексов, партиционирования, MVCC, vacuum и блокировок.
- Опыт работы с колоночными СУБД (в идеале ClickHouse ): понимание движков MergeTree, ключей сортировки и партиционирования, материализованных представлений, пакетной вставки.
- Умение проектировать модель данных от сценариев чтения: разделение на «горячие» и исторические данные, предагрегация, управление сроками хранения (TTL).
- Привычка измерять всё: профилирование, нагрузочное тестирование, принятие решений на основе цифр.
- Опыт обработки непрерывных потоков событий (телеметрия, логи, IoT, трекинг, платежи и т.д.).
- Понимание и опыт решения типовых проблем стриминга: события не по порядку, дубли и идемпотентность, backpressure, батчинг, восстановление после сбоя.
- Опыт работы с брокерами сообщений: Kafka, NATS, RabbitMQ или аналоги.
- Умение разложить систему на сервисы и грамотно обосновать компромиссы (консистентность vs задержка, стоимость хранения vs скорость запросов).
- Опыт эксплуатации своего кода в продакшене: настройка метрик, логов, самостоятельный разбор инцидентов.
- Готовность к ежедневной работе с агентными ИИ-инструментами (Claude Code, OpenCode, Pi и др.).
- Умение ставить агенту задачу с нужным контекстом, критически проверять результат и нести полную ответственность за сгенерированный код как за свой собственный.
Будет плюсом
- Опыт коммерческой разработки на Go : понимание горутин и каналов, работа с pprof, построение микросервисов.
- Опыт работы с геоданными: PostGIS, геоиндексы, построение треков.
- Знание Kubernetes, Docker, настройка CI/CD.
- Опыт миграции или масштабирования хранилища без остановки сервиса (zero-downtime).