Вам предстоит руководить командой Java-разработки и принимать непосредственное участие в развитии продуктов Arenadata для распределённого хранения, пакетной и потоковой обработки больших объёмов данных, включая Arenadata Hyperwave и Arenadata Streaming.
Стек технологий
Java, Apache Hadoop, Apache Spark, Apache Kafka, Linux, Maven. В экосистеме продуктов также используются HBase, Hive, Ozone, Kyuubi, NiFi, Flink, Trino, Impala, Iceberg, ZooKeeper, Docker и другие технологии распределённой обработки и хранения данных.
Задачи
- Управлять командой разработчиков: декомпозировать и распределять задачи, определять приоритеты, контролировать сроки и качество выполнения
- Оценивать трудоёмкость задач, анализировать техническую реализуемость решений и участвовать в формировании планов разработки
- Нести ответственность за технический результат команды, качество решений и выполнение согласованных планов
- Участвовать в проектировании, разработке и развитии компонентов распределённых систем
- Проводить R&D-исследования и готовить PoC-решения
- Взаимодействовать с TPM, архитекторами и другими командами для определения технических решений, стратегии и планов развития продуктов
- Заниматься разработкой программного обеспечения (ПО) в соответствии с функциональными спецификациями (техническим заданием)
- Выявлять и устранять сбои, узкие места и проблемы производительности в распределённых и высоконагруженных системах
- Работать с кодом крупных open-source проектов: исследовать внутреннее устройство компонентов, диагностировать проблемы и вносить необходимые изменения
- Проводить и организовывать code review
- Обеспечивать необходимый уровень тестирования: писать unit-тесты и, при необходимости, интеграционные тесты
- Участвовать в построении и совершенствовании процессов разработки внутри команды
- Обеспечивать прозрачность работы команды, своевременно информировать заинтересованные стороны о статусе задач, рисках и изменениях планов
- Развивать разработчиков внутри команды: проводить техническое наставничество, помогать с профессиональным ростом и распространением экспертизы
- Участвовать в подборе команды
- Организовывать накопление экспертизы, вести и поддерживать в актуальном состоянии документацию разработки и базу знаний. Мы ждем, что вы: имеете опыт управления командой разработки в роли Team Lead от 2 лет и от 4 лет в роли Senior Java Developer
- Продолжаете самостоятельно работать с кодом и готовы глубоко погружаться в технические задачи команды
- Хорошо знаете Java, ООП, SOLID, алгоритмы и структуры данных, понимаете многопоточность и concurrency
- Имеете глубокий практический опыт разработки и эксплуатации распределённых и высоконагруженных систем
- Имеете практический опыт работы с экосистемой Apache Hadoop, принципы распределённого хранения, управления ресурсами и отказоустойчивости
- Хорошо понимаете Apache Spark: архитектуру, модель выполнения приложений, управление ресурсами и основные механизмы оптимизации
- Хорошо понимаете Apache Kafka: архитектуру, масштабирование, производительность и отказоустойчивость
- Умеете диагностировать сложные проблемы распределённых систем: анализировать логи и метрики, находить первопричины сбоев и узкие места производительности, аргументировать и реализовывать необходимые улучшения
- Понимаете основные механизмы безопасности, High Availability и восстановления распределённых систем после сбоев
- Имеете опыт JVM profiling и диагностики проблем CPU, memory, GC, I/O, heap dump
- Умеете читать и модифицировать код крупных open-source проектов и быстро разбираться в незнакомой кодовой базе
- Имеете опыт написания unit- и интеграционных тестов, работы с Maven, Linux и CI/CD
- Умеете проводить качественный code review, декомпозировать сложные задачи, принимать технические решения и нести ответственность за результат команды
Будет плюсом
- Опыт эксплуатации Hadoop, Spark и Kafka в production-среде
- Глубокое понимание внутреннего устройства HDFS, YARN и Kafka
- Опыт работы с HBase, Hive, Ozone, NiFi, Flink, Trino, Impala или Iceberg
- Опыт работы с Kafka Connect, Kafka Streams, Schema Registry, ZooKeeper
- Опыт работы с Kerberos, SASL/SSL, ACL и другими механизмами безопасности распределённых систем
- Опыт разработки или существенной доработки крупных open-source проектов
- Опыт работы с Docker и Kubernetes