About This Role
This backend developer role focuses on building robust and scalable services using Kotlin and Spring Boot. The position is for someone passionate about good software practices and architectural design, who will contribute to a collaborative technical team and promote technical excellence.
Responsibilities
- Build robust and highly maintainable services using Kotlin and Spring Boot
- Design and integrate web services using Swagger and Open API
- Manage data with SQL and DynamoDB databases, and integrate with Amazon SQS Queues
- Ensure solid automated tests by applying JUnit, Mockito, and maintaining quality standards with SonarQube
- Use Git, IntelliJ, Rancher Desktop, Maven, Jira, and automated workflows with GitLab / GitLab Actions
- Maintain code and process documentation using Markdown, Obsidian, and Gherkin
- Participate in Scrum and Scrumban methodologies, applying TDD (Test Driven Development) and BDD (Behavior-Driven Development) strategies
- Integrate Continuous Monitoring / Observability practices to maintain visibility and health of applications in production
- Work with Clean Code, SOLID, DRY, KISS, and YAGNI principles, on Hexagonal and Event-Driven Architectures
- Support deployments with CI/CD and Automated Deployment, Infrastructure as Code, and ensure high modularity, horizontal scalability, and resilience and fault tolerance
Requirements
- Demonstrable experience working in Backend development with Kotlin and the Spring Boot ecosystem
- Track record applying agile methodologies (Scrum / Scrumban) in collaborative environments
- Practical experience working under Event Driven Architecture and Hexagonal Architecture
- Proficiency in Kotlin and Spring Boot
- Practical experience in SQL, DynamoDB, and Amazon SQS Queues
- Extensive experience in TDD, JUnit, Mockito, SonarQube, and Clean Code / SOLID Principles
- Daily use of Git, REST, Open API / Swagger, Maven, GitLab, and Jira
- Knowledge of Hexagonal Architecture, Event Driven Architecture, DRY, KISS, and YAGNI
- Comfortable working in a dynamic environment where priorities may change
- Ability to organize and manage deadlines without compromising technical quality or design principles
- Enjoy architectural design as well as practical code execution and refactoring
- Curious and up-to-date with best practices in software engineering and observability
- Value transparency, clear communication, and teamwork
Nice to have:
- Knowledge in BDD using Gherkin
- Experience with GitLab Actions, Rancher Desktop, and Infrastructure as Code