Job Description
We're looking for a versatile full stack engineer to help modernize our API platform. You'll work on evolving existing Java/Spring Boot REST services — refactoring how they source and serve data, integrating GraphQL-based data access, and consuming real-time event streams. This is a hands-on role for someone comfortable picking up any task across API, streaming, and data layers.
Key Responsibilities
- Enhance and refactor existing Java / Spring Boot REST APIs, including re-platforming their data access layers.
- Design and integrate GraphQL services — schema design, queries/mutations, resolvers, federation, and client integration from Spring Boot (Spring for GraphQL, DGS, or similar).
- Build and maintain Kafka streaming components that feed and synchronize downstream data stores and APIs (producers, consumers, Kafka Streams, Avro/Schema Registry).
- Work with Microsoft SQL Server — understand existing schemas, queries, and stored procedures to accurately migrate data access logic without breaking contracts.
- Own features end to end design, implementation, testing, code review, deployment, and production support.
- Maintain backward compatibility of public API contracts during migration; version and document APIs (OpenAPI/GraphQL schema).
- Write automated tests (JUnit, Mockito, Testcontainers) and contribute to CI/CD pipelines.
Required Skills
- Min 8+ years of Java and production Spring Boot REST API development.
- Hands-on GraphQL experience — schema modeling, resolver implementation, and consuming GraphQL from backend services.
- Solid Apache Kafka experience: event-driven design, serialization/schema evolution, consumer groups, offset and error handling.
- Strong MS SQL Server / T-SQL skills and query tuning.
- Experience migrating or refactoring legacy services to new data sources or architectures.
- Git, Maven/Gradle, Docker, Kubernetes, and CI/CD tooling.
- Strong debugging skills across service, stream, and database boundaries.
- Practical experience applying AI/LLM-based developer tools to speed up day-to-day engineering work, with good judgment on where they help and where they don't.