з/п не указана
Москва
Серпуховско-Тимирязевская линия метро Тульская
Серпуховско-Тимирязевская линия метро Тульская
От 3 до 6 лет
ЧЕМ ПРЕДСТОИТ ЗАНИМАТЬСЯ:
- Спроектировать и реализовать сервис‑коллектор, который периодически забирает события по ISAPI с терминалов:
- HTTPS + Digest‑аутентификация, фильтрация по номеру события, надёжная пагинация и идемпотентность.
- Экспоненциальный backoff при сетевых ошибках/таймаутах и сохранение «последней точки» (checkpoint) для безошибочного возобновления выборки.
- Обработка ошибок устройств, в том числе Invalid Content (валидация схемы под модель/прошивку).
Реализовать прикладную логику:
- Применение паттернов рабочего времени по объектам.
- Расчёт присутствия, опозданий, перерывов;
- Разработать административный веб‑интерфейс и отчётность: отчёты с гибкой настройкой параметров, включая тепловые карты.
- Обеспечить эксплуатацию и безопасность:
- Деплой на Ubuntu LTS (рекомендуется 22.04).
- Логирование, мониторинг, документация.
Технологическая среда:
- ОС: Ubuntu LTS (22.04 предпочтительно).
- Веб‑сервер: Apache HTTP Server 2.4 + mod_ssl (TLS/HTTPS).
- База данных: PostgreSQL 15/16+.
- Интеграции: ISAPI с Digest‑аутентификацией, HTTPS.
ДЛЯ НАС ВАЖНО:
- Опыт коммерческой разработки на Python (Django или FastAPI);
- знание PostgreSQL: умеете проектировать индексы (особенно для интервальных типов), работали с партиционированием таблиц по датам, оптимизируете медленные запросы;
- Опыт с асинхронностью и очередями: Redis + Celery (настройка воркеров, мониторинг, обработка ошибок);
- Понимание работы с часовыми поясами (timezones): знаете, чем naive отличается от aware, как хранить время в UTC и корректно преобразовывать в локальное время объекта;
- Опыт написания интеграционных модулей (HTTP API, работа с вендорскими SDK);
- Уверенное владение Git, понимание CI/CD.
Мы предлагаем:
- Возможность реализации своих идей и профессионального развития в команде единомышленников;
- Работу в крупной, динамично развивающейся компании;
- Размер оплаты за проект обсуждается индивидуально с каждым кандидатом;
- Возможность вести проект удаленно.