Что нужно делать
-
управлять командой разработчиков: декомпозировать и распределять задачи, определять приоритеты, контролировать сроки и качество выполнения;
-
оценивать трудоёмкость задач, анализировать техническую реализуемость решений и участвовать в формировании планов разработки;
-
нести ответственность за технический результат команды, качество решений и выполнение согласованных планов;
-
участвовать в проектировании, разработке и развитии компонентов распределённых систем;
-
проводить 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.
Если вас заинтересовала эта вакансия, отправьте свое резюме на почту
poe@arenadata.io с пометкой “Team Lead Java”