Архитектор Java
Зарплата
Требования
Местоположение и тип занятости
Компания
Описание вакансии
О компании и команде
Команда создаёт промышленную платформу. Одно из ключевых направлений работы — это производственные данные:
- временные ряды, которые собирают датчики и PLC-контроллеры;
- транзакционные данные, получаемые от систем автоматизации технологических процессов (АСУТП) и систем управления производством (MES);
- геоданные, поступающие от носимых устройств и передвижной техники.
Для разработки тиражируемых сервисов подъема и организации доступа к данным в рамках создаваемой промышленной платформы требуется архитектор.
Стек проекта: Java, Go, Python и JavaScript, PostgreSQL, Gitlab (для управления кодом и создания пайплайнов), Artifactory (для управления артефактами поставки и Sonarqube для анализа кода),
OpenSearch (для диагностики и мониторинга мы используем для работы с логами), Prometheus (для метрик), Sentry (для отслеживания ошибок и исключений), Jaeger (для трассировки), Kubernetes или OKD
(в качестве среды запуска). Kafka и Confluent Schema Registry (для интеграционной платформы).
Основные задачи:
- участие в проектировании и разработке сервисов, которые обеспечивают подключение и сбор различных типов данных (временные ряды, транзакционные) с датчиков, PLC-контроллеров и других систем АСУТП;
- выполнение трансформации, верификации и доступа к данным с минимальной задержкой в соответствии со стандартом OPC UA;
- реализация расчётов над данными в потоковом режиме и над хранилищами;
- поддержка механизмов высокой доступности для бесперебойного выполнения функций.
Ожидания от кандидата
- Опыт разработки на Java — не менее 3 лет;
- Опыт разработки распределенных и высоконадежных систем;
- Понимание принципов объектно-ориентированного программирования (ООП) и знание шаблонов проектирования;
- Знание Spring Framework или Spring Boot;
- Опыт работы с SQL-базами данных (Oracle DB, PostgreSQL) и JDBC;
- Понимание механизмов и особенностей пакетов ввода-вывода, включая NIO;
- Опыт использования систем версионирования кода (git) и хранилищ артефактов.
Будет плюсом:
- Опыт работы с JavaScript и языками JVM, такими как Groovy, Beanshell и другими;
- Опыт использования библиотек и подходов для отправки диагностических данных, таких как Prometheus, Sentry, Opentracing, ECS;
- Опыт профилирования и оптимизации Java-приложений, настройка сборщика мусора (GC);
- Опыт построения решений с использованием Apache Camel, PLC4x и Vert.x;
- Опыт работы с нестандартными протоколами обмена, работающими поверх TCP или UDP;
- Опыт многопоточного программирования и глубокое понимание модели памяти Java;
- Опыт работы с инструментами сборки (maven, gradle), автоматизации сборки и развертывания (GitlabCI), контейнерами (docker) и системами оркестрации (Kubernetes / OKD), очередями сообщений (RabbitMQ/Kafka), а также in-memory хранилищами (Redis);
- Возможность регистрироваться при запуске, сообщать о своём состоянии и получать обновления конфигурации;
- Доработка существующих open-source решений.
Условия работы
- Уровень оплаты обсуждается после собеседования (заработная плата без задержек и опозданий);
- Условия оформления, формат: ТК РФ или сотрудничаем с ИП;
- Работа удаленно в IT аккредитованной компании;
- График работы 5/2, с 09.00 до 18.00 по Московскому времени (возможен сдвиг на более раннее или позднее время по согласованию с командой);
- Работа в команде профессионалов, с возможностью карьерного и профессионального роста;
- Приятная бонусная система;
- Персональный менеджер, который решит все вопросы за Вас :)