- 5+ years of software development experience in Java, spanning the full application development life cycle.
- Solid command of core Java concepts, including collections, concurrency/multithreading, generics, streams, lambdas, exception handling, and JVM memory management.
- Proven, hands-on experience writing effective unit tests with JUnit and mocking frameworks such as Mockito.
- Solid understanding of test-driven development (TDD), test automation, and continuous testing practices.
- Deep commitment to code quality, clean code, SOLID principles, and design patterns.
- Experience with static code analysis and code coverage tools such as SonarQube and JaCoCo.
- Experience building RESTful APIs and microservices using frameworks such as Spring / Spring Boot.
- Experience with build tools such as Maven or Gradle.
- Experience with source code management tools such as Git and Bitbucket.
- Experience integrating automated tests and quality checks into CI/CD pipelines (for example, Jenkins).
- Strong analytical, problem-solving, communication, and technical documentation skills.
- Ability to work effectively in a fast-paced, cross-functional Agile environment.