Job Overview:
We are seeking a highly skilled and experienced Senior Java Developer to join our dynamic development team. The ideal candidate will have a strong background in Java development, with extensive experience in building and maintaining scalable, high-performance applications. You will play a key role in driving development initiatives in an agile environment while collaborating closely with cross-functional teams to deliver high-quality software solutions.
Key Responsibilities:
- Design, develop, and maintain robust Java-based applications, with a focus on high-performance and scalability.
- Collaborate within an agile team, participating in sprint planning, code reviews, and daily stand-ups.
- Apply Object-Oriented Design principles and utilize design patterns to create efficient, maintainable, and reusable software components.
- Implement and work with messaging protocols such as SOAP and REST to integrate with various systems and services.
- Leverage test-driven development (TDD) practices to ensure high code quality and coverage.
- Engage in domain-driven design to understand and develop solutions based on business requirements.
- Maintain and improve existing applications, ensuring they remain high-performing and reliable.
- Utilize CI/CD tools (such as Jenkins) to automate and streamline build, test, and deployment processes.
- Manage and optimize open-source relational databases, particularly PostgreSQL.
- Work with source control systems such as GitHub and Bitbucket, ensuring proper versioning and code collaboration.
- Document technical processes, designs, and workflows in Confluence, ensuring clarity and accessibility for the team.
- Collaborate with other teams to ensure proper integration of application features and functionality.
- Troubleshoot and resolve issues as they arise, ensuring minimal disruption to development timelines.
Required Skills & Qualifications:
- Minimum 6 years of hands-on Java development experience.
- Strong experience working in an Agile environment.
- Excellent communication, analytical, and decision-making abilities, with the capacity to work in collaborative team settings.
- Solid understanding and application of Object-Oriented Design principles, as well as experience with common design patterns.
- Experience with test-driven development (TDD) and domain-driven design (DDD).
- In-depth knowledge of messaging protocols and web services, including SOAP and REST.
- Proficiency with open-source relational databases, particularly PostgreSQL.
- Experience working with Continuous Integration and Continuous Delivery (CI/CD) tools, such as Jenkins.
- Familiarity with Artifact Management tools, preferably Nexus.
- Expertise in Java 8 and J2EE development.
- Strong familiarity with development and project management tools such as Jira and Confluence.
- Version control proficiency using GitHub and Bitbucket.
- Experience with build automation tools like Maven.
- Strong understanding and experience with testing frameworks such as Junit.
- Hands-on experience with ORM frameworks, such as Hibernate or JPA.
Preferred Qualifications:
Bachelor’s degree in Computer Science, Engineering, or a related field.
Experience with cloud platforms (AWS, Azure, etc.).
Knowledge of containerization and orchestration technologies like Docker and Kubernetes.
Familiarity with front-end technologies and frameworks (e.g., Angular, React) is a plus.