Senior Software Engineer (Java)
Summary
Senior Java developer responsible for designing and maintaining backend microservices using Spring Boot and REST APIs. The role involves full-lifecycle development, database management with JPA/Hibernate, and unit testing in an Agile environment, requiring availability during Lebanon core hours.
This is a remote position.
- Design, develop, test, and maintain backend applications using Java and Spring Boot.
- Translate business and technical requirements into scalable software solutions.
- Participate throughout the software development lifecycle, including analysis, design, implementation, testing, deployment, and production support.
- Design and integrate REST APIs and microservices.
- Troubleshoot production issues, identify root causes, and implement sustainable solutions.
- Write clean, maintainable, and well-tested code following engineering best practices.
- Perform code reviews and provide technical guidance to other team members.
- Contribute to system design, architecture, and technical decision-making.
- Improve application performance, reliability, security, and maintainability.
- Create and maintain technical documentation in Confluence.
- Collaborate with product owners, QA engineers, and other technical teams in an Agile environment.
- Participate in Scrum ceremonies and technical discussions.
Requirements
- Bachelor’s degree in Computer Science, Computer Engineering, Software Engineering, or a related field.
- Minimum 5–6 years of professional software development experience, primarily using Java.
- Strong experience with Java, Spring Boot, and the Spring ecosystem.
- Solid understanding of object-oriented programming, design principles, and common design patterns.
- Experience designing and developing REST APIs and microservices.
- Good experience with Maven and Git-based development workflows.
- Strong knowledge of relational databases, SQL, and data-access technologies such as JPA/Hibernate.
- Experience writing unit and integration tests using tools such as JUnit and Mockito.
- Familiarity with CI/CD pipelines and modern software delivery practices.
- Strong debugging, problem-solving, and root-cause analysis skills.
- Experience with Agile software development practices.
- Ability to independently own technical tasks and guide less-experienced engineers.
- Excellent verbal and written English communication skills.
- Availability to work during the core working hours of 12:00 PM to 9:00 PM Lebanon time.
Preferred Qualifications
- Experience with AWS services and cloud-based application development.
- Working knowledge of Python.
- Experience with event-driven systems, messaging technologies, or distributed systems.
- Familiarity with Docker and containerized applications.
- Experience with application monitoring, logging, and performance optimization.
- Basic front-end experience with React is a plus but not required.