Full time Erbil
Title: Senior Java Developer
Location: Erbil
Available Until: 5/27/2026
Key Responsibilities:
- Read and understand existing service code, then enhance and optimize it in Java/Spring Boot.
- Design data models and database migration scripts that move production data safely with zero loss.
- Write production-ready REST APIs following agreed standards (OpenAPI specifications, proper HTTP semantics, standardized error responses).
- Write unit and integration tests — testing is part of the job, not an afterthought.
- Review code from junior and mid-level developers.
- Participate in technical discussions and contribute to architecture decisions.
- Work with the QA Engineer to validate that developed services are functionally equivalent to intended design.
- Contribute to technical documentation so that knowledge is not locked inside any one person's head.
Requirements - Technical (must-have):
- 4–6 years of professional Java development experience.
- Java 17: streams, generics, exception handling, concurrency basics.
- Spring Boot: REST APIs, dependency injection, configuration, testing.
- Spring Security: securing REST APIs, understanding of authentication and authorization flows.
- JPA / Hibernate: entity mapping, relationships, query optimization, transaction management.
- MySQL: query writing, understanding of indexes, ability to write and review migration scripts.
- Redis: caching patterns, session management, basic data structures.
- MongoDB: basic document operations via Spring Data MongoDB.
- Git: professional workflow — branching, pull requests, code review, conflict resolution.
- Writing tests: JUnit, Mockito — you write tests without needing to be asked.
General (must-have):
- Ability to read PHP or any other language at a basic level.
- Strong communication: can explain technical decisions clearly to teammates.
- Takes ownership of their work through to production, not just to "code complete".