RELX
Senior Software Engineer II
Автоматический пересказ вакансии на русском. Полный текст на языке оригинала и форма отклика — на сайте работодателя.
Senior-инженер в команду Web Access Management / Identity & Access Management платформы. Отвечает за сервисы идентификации, аутентификации и access-токенов, участвует в переводе legacy-сервисов на cloud-native Micronaut микросервисы в AWS.
Задачи
- Взаимодействовать с product-менеджерами, архитекторами и командой для финализации требований к сервисам идентификации, entitlement, аутентификации и access-токенов
- Писать и ревьюить части детальных спецификаций и дизайн-документов для компонентов системы средней сложности
- Проектировать, реализовывать и покрывать unit-тестами backend-сервисы (Java / Spring / Micronaut), при необходимости — frontend-компоненты (Angular / TypeScript)
- Участвовать в переводе legacy-сервисов на Micronaut микросервисы с применением clean/hexagonal архитектуры и принципов SOLID
- Разрабатывать и поддерживать защищённые RESTful API и интеграции с OAuth 2.0, OpenID Connect, SAML и MFA
- Применять процессы разработки, best practices безопасного кодирования и code review (SonarQube quality gates, Jacoco coverage)
- Писать unit-, integration- и e2e-тесты (JUnit, Mockito, Cypress) и поддерживать CI/CD пайплайны (GitHub Actions, Azure DevOps, Gradle)
- Работать в различных методологиях разработки (Agile, Waterfall) во взаимодействии со стейкхолдерами
- Решать технические проблемы, разбирать production-инциденты и исправлять баги
- Следить за новыми технологиями в области identity & access management, cloud и application security
Требования
- 7+ лет опыта в Software Engineering
- Степень BS в Engineering/Computer Science или эквивалентный опыт
- Сильное владение Java / J2EE, практический опыт со Spring Framework / Spring Boot и/или Micronaut
- Опыт проектирования и разработки микросервисов и RESTful API; знакомство с clean/hexagonal архитектурой и принципами SOLID
- Опыт frontend-разработки на JavaScript / TypeScript и современном фреймворке (предпочтительно Angular); понимание HTML5, CSS3 и JSP
- Опыт работы с реляционными БД (Oracle и/или PostgreSQL) и написания SQL-запросов; знакомство с NoSQL (DynamoDB) будет плюсом
- Понимание принципов моделирования данных и умение работать со сложными моделями данных
- Практический опыт с облачной платформой (предпочтительно AWS) и infrastructure-as-code (Terraform)
- Опыт контейнеризации (Docker) и работы с веб-серверами / reverse proxy (Apache, NGINX); комфортная работа в Linux/UNIX
- Знакомство с протоколами аутентификации и авторизации — OAuth 2.0, OpenID Connect, SAML, MFA и identity federation
- Сильное понимание принципов и best practices безопасности веб-приложений (OWASP)
- Хорошее знание Git и best practices работы с репозиториями
- Понимание современных веб-технологий, веб-инфраструктуры и процесса DevOps
- Опыт с build-инструментами (Gradle и/или Maven) и пакетными менеджерами (npm)
- Знакомство с test-driven development и code coverage (Jacoco, SonarQube)
- Знание messaging / event-driven систем (SQS, Kinesis, EventBridge, Step Functions) будет плюсом
- Знание методологий разработки ПО (Agile, Waterfall)
- Умение писать и ревьюить части детальных спецификаций для компонентов системы средней сложности
- Умение исправлять баги средней сложности
- Умение эффективно работать с внутренними и внешними технологическими ресурсами
- Хорошие навыки устной и письменной коммуникации на английском
Условия
- U.S. National Base Pay Range: $95,300 - $158,800; возможны географические дифференциалы
- Должность предполагает годовой incentive bonus
- Страновые benefits (подробности по ссылке)
- Равные возможности при трудоустройстве
- Поддержка доступности процесса найма (accommodation по запросу)
Навыки
- Java
- J2EE
- Spring
- Spring Boot
- Micronaut
- RESTful API
- Microservices
- JavaScript
- TypeScript
- Angular
- HTML5
- CSS3
- JSP
- Oracle
- PostgreSQL
- SQL
- DynamoDB
- NoSQL
- AWS
- Terraform
- Docker
- Apache
- NGINX
- Linux
- UNIX
- OAuth 2.0
- OpenID Connect
- SAML
- MFA
- OWASP
- Git
- Gradle
- Maven
- npm
- JUnit
- Mockito
- Cypress
- Jacoco
- SonarQube
- GitHub Actions
- Azure DevOps
- SQS
- Kinesis
- EventBridge
- Step Functions
- DevOps