Обязанности
Разработка прикладного ПО Проектирование алгоритмов обработки данных Проектирование схем SQL, оптимизация запросов (JOIN, агрегации). Использование ORM-библиотек (Hibernate) для взаимодействия с реляционными (PostgreSQL, MySQL) и NoSQL (MongoDB, Redis) СУБД . Реализация API: Разработка RESTful/SOAP-сервисов для интеграции с фронтендом и внешними системами (платежные шлюзы, геолокация) . Оптимизация кода: Устранение узких мест, кэширование данных (Redis), балансировка нагрузки для highload-систем . Развертывание приложений через Docker, оркестрация в Kubernetes . Интеграция CI/CD: Настройка пайплайнов в Jenkins/GitLab CI для автоматического тестирования и деплоя . Мониторинг: Использование ELK-стека (Elasticsearch, Kibana) или Prometheus для отслеживания ошибок и производительности . Написание тестов: Unit-тесты (JUnit, Mockito) для проверки модулей, bнтеграционные тесты для API и взаимодействия с БД . Документирование: Описание архитектуры, API (Swagger), инструкций по эксплуатации . ---
Требования
1. Технические навыки - Ядро Java: - Глубокое знание OOP (наследование, инкапсуляция, полиморфизм), многопоточности, коллекций, лямбда-выражений (Java 8+), обработки исключений . - Понимание алгоритмов и структур данных: бинарный поиск, сортировки, сложность операций (Big O) . - Фреймворки: - Spring (Boot, MVC, Data, Security) для создания масштабируемых приложений . - Hibernate/JPA для ORM-маппинга и работы с БД . - Базы данных: - Реляционные БД: PostgreSQL, MySQL (написание сложных SQL-запросов, оптимизация) . - NoSQL: MongoDB, Redis (кэширование, работа с неструктурированными данными) . - Интеграции: - REST/SOAP API, message brokers (Kafka, RabbitMQ) - Микросервисная архитектура, взаимодействие между сервисами . - Инструменты: - Git/GitHub (ветвление, пул-реквесты) . - Сборка проектов: Maven/Gradle . - IDE: IntelliJ IDEA, Eclipse . 2. Инфраструктура и DevOps - Контейнеризация: Docker, оркестрация через Kubernetes . - Облачные платформы: AWS, Azure, GCP (развертывание приложений, управление сервисами) . - Мониторинг: Инструменты для логирования и анализа (ELK Stack, Prometheus) . - CI/CD: Настройка пайплайнов в Jenkins, GitLab CI . 3. Проектные практики - Тестирование: - Написание unit- (JUnit, TestNG) и интеграционных тестов . - Использование Mockito для мокирования зависимостей . - Архитектура: - Паттерны проектирования (SOLID, GRASP) . - Оптимизация производительности (кеширование, балансировка нагрузки) . - Безопасность: - OAuth 2.0, JWT, защита от уязвимостей (SQL-инъекции, XSS) .