Backend-инженер (базы данных и потоковые данные)
Employment type: Полный рабочий день
Grade: Senior
Skills: Golang, PostgreSQL, ClickHouse, Apache Kafka, NATS, RabbitMQ, CI/CD, Kubernetes
Description:
О проекте и роли Мы разрабатываем системы мониторинга и управления транспортом. Каждую секунду к нам поступают тысячи событий от устройств: их нужно быстро принять, корректно сохранить и отдать в аналитику.
Мы ищем инженера, который глубоко понимает базы данных и умеет строить системы, переваривающие непрерывный поток данных. Опыт именно в транспорте или GPS не обязателен — для нас гораздо важнее ваша инженерная база и умение работать с нагруженными данными.
Стек: PostgreSQL, ClickHouse, Go (рассмотрим сильных инженеров на Python/Java/Rust/C++), Kafka/NATS.
💻 Чем предстоит заниматься
Проектировать и развивать хранилища данных на 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).
Анонимная аналитика
Мы используем анонимную аналитику, чтобы улучшать поиск вакансий и работу сайта.