Обязанности
1. Управление командой:
- Лидерство: Руководство командой разработчиков, наставничество, помощь в решении технических задач.
- Распределение задач: Оценка задач, распределение их между членами команды в зависимости от сложности и специализации.
- Процесс разработки: Внедрение и поддержка эффективных рабочих процессов, использование методологий Agile (Scrum/Kanban).
- Код-ревью: Проведение код-ревью для улучшения качества кода и обучения команды.
- Решение проблем: Быстрое решение проблем, которые возникают в ходе разработки.
2. Проектирование и архитектура:
- Проектирование решений: Разработка архитектуры системы, выбор технологий и подходов для реализации функциональности.
- Проектирование и реализация брокеров сообщений: Использование брокеров сообщений для обеспечения асинхронной обработки и обмена данными между микросервисами или внешними системами. Выбор подходящих технологий и настроек для обработки больших объемов данных.
RabbitMQ, Apache Kafka, ActiveMQ, Amazon SQS — выбор в зависимости от потребностей системы по скорости, надежности и масштабируемости.
Оркестрация сообщений: Разработка схем обмена сообщениями между различными компонентами системы, реализация очередей и топиков для правильной маршрутизации сообщений.
- Обработка событий и потоков данных:
Event-driven архитектура: Реализация событийно-ориентированной архитектуры (Event-Driven Architecture, EDA), где системы и компоненты реагируют на события, поступающие через брокеры сообщений.
Обработка потоковых данных: Проектирование потоковой обработки данных с использованием технологий, таких как Apache Kafka Streams, Apache Flink, или Kafka Connect, для обработки и анализа данных в реальном времени.
- Микросервисная архитектура: Разработка решений на базе микросервисной архитектуры, распределенных систем, использование контейнеризации (Docker, Kubernetes).
- Производительность и масштабируемость: Обеспечение масштабируемости и высокой производительности системы, проектирование отказоустойчивых решений.
- Интеграция: Разработка стратегии для интеграции с внешними системами и API.
- Паттерны проектирования: Применение паттернов проектирования (например, SOLID, Domain-Driven Design) для создания качественного, поддерживаемого кода.
3. Техническое руководство и поддержка команды:
- Технические решения: Предоставление технических рекомендаций и решений для сложных задач.
- Обучение и развитие: Поддержка и развитие профессиональных навыков членов команды, проведение тренингов и код-ревью.
- Риск-менеджмент: Оценка рисков, связанных с техническими решениями, и минимизация технического долга.
- Координация с другими участниками: Взаимодействие с бизнес-аналитиками, менеджерами и другими командами для уточнения требований и определения архитектурных решений.
4. Процесс тестирования и CI/CD:
- Поддержка качества: Обеспечение высокого качества кода через внедрение автоматических тестов (юнит-тесты, интеграционные тесты).
- CI/CD: Настройка и поддержка процессов CI/CD для автоматизации сборки, тестирования и деплоя приложений.
Требования
1. Опыт и квалификация:
- Общий опыт: 7+ лет опыта разработки на Java, 3+ года на позициях тимлида или архитектора.
- Технические навыки:
- Глубокие знания Java, Spring, Spring Boot, Hibernate.
- Опыт работы с микросервисной архитектурой и контейнеризацией (Docker, Kubernetes).
- Знания в области работы с базами данных (SQL, NoSQL).
- Опыт работы с облачными платформами (AWS, Azure) и DevOps-инструментами (Jenkins, GitLab).
- Проектирование решений: Опыт проектирования высоконагруженных систем, микросервисных архитектур, распределенных систем.
- Методологии разработки: Опыт работы с Agile, Scrum, Kanban.
2. Лидерские и управленческие качества:
- Отличные коммуникативные навыки для работы с командой, заказчиками и другими заинтересованными сторонами.
- Способность к принятию решений и управлению рисками.
- Умение делегировать задачи, обеспечивать четкое распределение работы между членами команды.
- Опыт в наставничестве и развитии команды.
3. Личные качества:
- Способность работать в условиях многозадачности и быстро адаптироваться к изменениям.
- Ответственность за выполнение как технических, так и управленческих задач.
- Внимание к деталям и стремление к улучшению процессов.
4. Знания и навыки в области архитектуры:
- Знание принципов объектно-ориентированного проектирования (ООП) и паттернов проектирования.
- Знание методов оптимизации производительности и масштабируемости.
- Знание методов обеспечения безопасности приложений и работы с персональными данными (GDPR, защита данных).
Условия
1. Рабочий процесс:
- Местоположение: Работа в офисе, возможен гибридный формат после отладки процессов.
- Зарплата: заработная плата, основанная на опыте и квалификации.
- Бонусы и премии: Программы бонусов и премий в зависимости от результатов работы и достижения целей.
- Медицинская страховка
2. Профессиональный рост:
- Обучение и сертификация: Возможности для профессионального развития, обучение новым технологиям, участие в внешних курсах и конференциях.
3. Работа в команде:
- Работа с высококвалифицированной командой, участие в интересных и технологически сложных проектах.
- Участие в корпоративных мероприятиях, тимбилдингах, встречах с коллегами.
Ключевые навыки
- Java
- Apache Kafka
- Hibernate
- NoSQL
- Spring Boot
- Git
- Оценка производительности
- RabbitMQ
- Elasticsearch
- MongoDB
Задайте вопрос работодателю
Где предстоит работать
Вакансия опубликована 20 февраля 2025 в Астане