Java Software Engineer
Role details
Job location
Tech stack
Job description
We are looking for a Software Engineer with hands-on experience in building microservices and 12-Factor, cloud-native applications using Java, Quarkus and Dapr. You will design, implement, and operate distributed services running on containerized infrastructure with fully automated CI/CD pipelines. This is a must-have Quarkus + Dapr role: you will actively use both frameworks daily to build resilient, observable, and event-driven services.
Key Responsibilities . Microservices design & implementation o Design and develop Back End microservices using Java and Quarkus. o Apply 12-Factor App principles (config externalization, stateless processes, disposability, logs, etc.). o Implement synchronous and asynchronous communication patterns (REST/gRPC, pub/sub, events). . Dapr-based cloud-native services o Use Dapr sidecars and building blocks (service invocation, pub/sub, bindings, state stores, secrets, workflows) to build loosely coupled services. o Define and maintain Dapr component configurations for various backends (message brokers, state stores, etc.). o Implement resilience patterns (retries, timeouts, circuit breakers, idempotency) leveraging Dapr and Quarkus. . CI/CD & DevOps collaboration o Work with CI/CD pipelines (eg GitLab CI, GitHub Actions, Azure DevOps, Jenkins) for build, test, security scanning, and deployment. o Ensure high test coverage through unit, integration and contract tests integrated into the pipeline. o Deploy and operate services on container orchestration platforms such as Kubernetes. . Quality, security & observability o Write clean, maintainable, testable code following best practices and design patterns. o Implement observability: structured logging, metrics and distributed tracing (eg via OpenTelemetry through Quarkus/Dapr). o Collaborate on secure service design (OAuth2/OIDC, JWT, secrets management, TLS). . Collaboration & life cycle ownership o Work in cross-functional agile teams with product owners, architects and other engineers. o Participate in code reviews, design sessions, and troubleshooting of production issues. o Own services end-to-end from design through implementation to monitoring and continuous improvement.
Requirements
Java Software Engineer MUST have Quarkus and Dapr experience