We are looking for an Software Development Engineer to join our Managed Services engineering team. You will build and run the backend services behind our Reconciliation and Trade Status products: REST APIs, batch data loaders, real-time notifications and high-volume grid data. You will own features end to end, from design through production support, and work with a small team that values clean, tested and observable code.
What You Will Do
- Design, build and maintain Spring Boot microservices in a Gradle multi-module monorepo.
- Develop secure REST APIs with role-based authorization and consistent error contracts.
- Write and tune Spring Batch jobs and data loaders that process large datasets safely (chunked writes, restartability, no OOM).
- Work with asynchronous messaging.
- Model data in PostgreSQL with JPA/Hibernate, Envers audit history and Liquibase migrations;
- Use Redis (Redisson) for caching, including Hibernate L2 cache and TTL/eviction design.
- Write unit and integration tests (JUnit, Mockito, Rest Assured, H2) and review peers' code.
- Own production quality: structured logging, trace IDs, metrics, Dynatrace dashboards, incident triage and root-cause analysis.
- Take part in design discussions, estimation and Jira-driven delivery.
Required Qualifications
- 3–6 years of professional backend development experience, with strong Java skills (Java 17 features, concurrency, collections, streams).
- Hands-on experience with Spring Boot, Spring Data JPA, Spring Security and Hibernate.
- Solid SQL and PostgreSQL knowledge: indexing, execution plans, transactions and schema design.
- Experience building and consuming REST APIs, including authentication, authorization and validation.
- Experience with Gradle or a comparable build tool (Maven) and multi-module projects.
- Good testing discipline: unit, integration and API tests with meaningful assertions.
- Comfort with Git, CI/CD pipelines and code review workflows.
- Clear written and verbal communication; ownership mindset.
Preferred Qualifications
- Spring Batch experience, including job design and large-volume data processing.
- Messaging experience with JMS, Kafka or similar.
- Redis caching experience (Redisson, Spring Cache, Hibernate L2 cache).
- Familiarity with AWS (S3, Cognito), observability tools (Dynatrace, Datadog) and Docker/Kubernetes.
- Background in financial services, trade processing or reconciliation