Назад к вакансиям

Software engineer

JavaDockerREST APIKafkaAWSMicroservicesRedisSpring BootAngularOpenAPIJunitOAuth 2.0

Описание

This role involves working as a Senior Angular+Java/Spring Software Engineer on a project for a customer in Germany.

Responsibilities

  • Development of new features across the full stack (Angular front-end + Java/Spring back-end)
  • Refactoring existing code and reducing technical debt in both layers
  • Writing unit, component and integration tests according to team checklists
  • Bug fixing, including production incidents on customer-facing flows
  • Working with service documentation and specifications in OpenAPI format — both consuming and defining contracts
  • Monitoring running services (Grafana, Kibana) and reacting to alerts
  • Deploying features to all environments and conducting release warranty
  • Participating in all Scrum ceremonies; contributing to refinement and estimation, not only receiving ready user stories
  • Supporting reusability of the widget for new partner onboardings

Requirements

  • Java Modern versions (17/21): Records, sealed types, pattern matching; awareness of virtual threads
  • Spring: Spring Boot 3.x in production, autoconfiguration, Actuator, filters/interceptors, Spring Security
  • REST API: Confident on principles, versioning, idempotency, error contracts — can define an API, not only call one
  • OpenAPI: Spec-first workflow, SpringDoc, client/server code generation
  • Architecture: Microservices in practice: service boundaries, data consistency, BFF pattern, resilience (Circuit Breaker, Retry, Timeout)
  • Integrations: OpenFeign or equivalent, MQ / Kafka, third-party API integration under unreliable conditions
  • Caching: Redis — strategies, TTL, serialization pitfalls, debugging cached state
  • Cloud & infra: AWS, Docker; ability to read pipelines and troubleshoot a broken deployment
  • Testing: JUnit 5, Mockito, •••, integration tests, WireMock; JaCoCo coverage read as a signal, not a target
  • Security: OAuth2 / JWT validation, CSRF, XSS, SQL injection, CORS, safe logging of sensitive customer data
  • Angular: Angular 15+ in production (ideally 17/18): standalone components, DI, change detection, lazy loading
  • TypeScript: Strong typing discipline, generics, strict mode
  • RxJS: Operators, subscription management, error handling — not copy-paste level
  • State management: NgRx, Signals or a comparable approach, with a rationale for when not to use it
  • Forms: Reactive forms, complex validation, multi-step flows (claims journeys are long and conditional)
  • HTTP layer: Interceptors, auth token handling, retry/error UX
  • Quality: Unit tests (Jest/Karma), component tests, e2e (Cypress/Playwright)
  • UI craft: SCSS, responsive layouts, cross-browser behaviour, WCAG accessibility — a hard requirement for a customer-facing insurance product
  • Delivery context: i18n / multi-market content, bundle size awareness, embedding into a host application
  • English B2+
  • Candidate must be a senior engineer who can own a claims feature end-to-end: from clarifying the requirements and agreeing on the OpenAPI contract, through Angular UI and Spring Boot service implementation, to tests, deployment across all environments, and release warranty.
  • Autonomy matters more than raw coding speed — the team works under heavy cross-team dependencies, so the candidate should be someone who unblocks themselves, documents decisions, and raises risks early instead of waiting.

Nice to have

  • Keycloak (the project's authorization model is non-trivial: individual policy, beneficiary contract, anonymous access)
  • Camunda / BPMN process orchestration
  • Insurance, claims, fintech or other regulated domain experience
  • Experience migrating a modular monolith toward microservices
  • Prior work on a product embedded in third-party environments
  • Delivery context: Web Components / Angular Elements / module federation is a strong plus

We offer

  • Duration: 12 months
  • Estimated start date: 19.10.2026

Hiring process

  • To apply, send your CV including age and current location to •••, specifying vacancy ID 124799. Applications without this information will not be considered.