Архитектор Java

Зарплата

от 300 000 до 430 000 ₽

Местоположение и тип занятости

Полный рабочий деньМожно удаленно

Компания

Заказная и продуктовая разработка, внедрение и поддержка программного обеспечения

Описание вакансии

О компании и команде

Команда создаёт промышленную платформу. Одно из ключевых направлений работы — это производственные данные:

  • временные ряды, которые собирают датчики и 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 по Московскому времени (возможен сдвиг на более раннее или позднее время по согласованию с командой);
  • Работа в команде профессионалов, с возможностью карьерного и профессионального роста;
  • Приятная бонусная система;
  • Персональный менеджер, который решит все вопросы за Вас :)