About the company
Join a technology-driven team focused on building, maintaining, and evolving robust web applications and innovative digital solutions.
Responsibilities
- Develop, maintain, and enhance web applications using Java
- Apply object-oriented programming principles, design patterns, SOLID principles, Clean Architecture, DDD, and MVC
- Build and maintain RESTful APIs and microservices using Spring, Spring Boot, and Spring Cloud
- Develop and maintain integrations with relational databases, write and optimize SQL queries
- Work with NoSQL technologies, including MongoDB and Elasticsearch
- Implement and maintain integrations between systems using RabbitMQ, webhooks, REST, and SOAP protocols
- Create, update, and maintain API documentation
- Develop automated unit and integration tests using JUnit and apply TDD practices
- Implement secure development practices covering authentication, authorization, OAuth2, JWT, Keycloak, and OWASP
- Investigate and resolve software defects, refactor existing code, identify performance bottlenecks
- Use Git, Docker, SonarQube, and CI/CD pipelines
- Work with Kubernetes and containerized environments
- Analyze functional and non-functional requirements
- Work with multidisciplinary teams using agile methodologies
Requirements
- Completed higher education degree with a postgraduate qualification in Information Technology of at least 360 hours, or an undergraduate degree in progress in an IT-related field
- Strong hands-on experience in Java development with solid knowledge of OOP, Collections, Generics, Lambda expressions, Stream API, exception handling, I/O
- Practical experience with Spring, Spring Boot, and Spring Cloud
- Strong understanding of software architecture and design principles including Clean Architecture, DDD, MVC, design patterns, and SOLID
- Experience with relational databases, particularly Oracle or PostgreSQL, including SQL, PL/SQL or PL/pgSQL, query optimization
- Familiarity with NoSQL databases and search technologies such as MongoDB and Elasticsearch
- Experience implementing messaging and system integrations using RabbitMQ, webhooks, REST, and SOAP
- Knowledge of automated testing practices including unit and integration testing with JUnit, as well as TDD principles
- Understanding of application security, authentication and authorization mechanisms, OAuth2, JWT, Keycloak, and OWASP best practices
- Experience using Git, Docker, and SonarQube, along with CI/CD pipelines
- Familiarity with Kubernetes, containerization, and orchestration environments
- Ability to analyze functional and non-functional requirements and work effectively within agile development methodologies
- Strong analytical and problem-solving skills
- Good communication and collaboration skills