Java Engineer Role Profile
We are seeking a highly skilled and experienced Java Engineer to join a dynamic development team. In this role, you will be responsible for designing, developing, and maintaining complex Java-based applications and services. You will also collaborate with cross-functional teams to implement high-quality, scalable, and efficient solutions. The ideal candidate has a strong understanding of Java and related technologies, along with a passion for writing clean, maintainable code and solving complex problems.
Responsibilities
- Architect, design, and implement high-performance, scalable, and maintainable Java applications and services.
- Write clean, efficient, and testable code following best practices. Refactor existing code and ensure proper documentation.
- Work closely with product managers, and other engineers to deliver high-quality software solutions. Participate in code reviews and provide constructive feedback to peers.
- Mentor junior and mid-level developers, promoting best practices in software development, code quality, and engineering standards.
- Analyse and improve application performance, identifying bottlenecks and suggesting solutions for scalability and performance improvements.
- Implement and maintain CI/CD pipelines, ensuring smooth and efficient deployments.
- Investigate complex production issues, perform root-cause analysis, and implement effective solutions.
- Participate in Agile ceremonies (standups, sprint planning, retrospectives), ensuring timely and efficient delivery of features
Requisite Experience, Education and/ or Skills
- Expertise in Java 8 and later versions, including experience with lambdas, streams, and modern Java features.
- Strong experience with Java-based frameworks like Spring (Spring Boot, Spring Cloud, Spring MVC), Hibernate, and JPA.
- Experience with RESTful APIs, microservices architecture, and tools like Apache Kafka, RabbitMQ, or similar messaging systems.
- Proficiency in working with relational databases (e.g., PostgreSQL, MySQL, Oracle) and NoSQL databases (e.g., MongoDB, Cassandra).
- Solid understanding of unit testing (JUnit, TestNG), integration testing, and test-driven development (TDD).
- Strong knowledge of Git, branching strategies, and workflows (e.g., GitFlow).
- Experience with Jenkins, GitLab CI, or similar CI/CD tools. Familiarity with Docker and Kubernetes is a plus.
- Familiarity with cloud platforms (AWS, Azure, Google Cloud) and deploying Java applications in the cloud environment.
- Understanding of security best practices in application development (e.g., OAuth, JWT, data encryption).
- Familiarity with DevOps practices and tools for automated deployments, monitoring, and scaling.
Soft Skills:
- Strong analytical and problem-solving skills with attention to detail.
- Excellent communication and collaboration skills, with the ability to work effectively in a team and engage with stakeholders.
- Ability to take ownership of complex features, from design to deployment.
- Self-motivated and proactive in staying up-to-date with industry trends and technologies.
- Ability to work under pressure and meet deadlines in a fast-paced environment.
Experience:
- 5+ years of experience in Java software development.
- Proven track record of delivering large-scale, high-performance, and highly available Java applications.
- Experience with Agile methodologies (Scrum, Kanban) and familiarity with Agile tools (e.g., Jira, Trello).
Preferred Qualifications:
- Bachelor’s or Master’s degree in Computer Science, Engineering, or a related field.
- Experience in designing microservices architectures and working with containerized applications (Docker, Kubernetes).
- Knowledge of front-end technologies (e.g., React, Angular) and how they interact with Java-based backends.
- Experience with Big Data tools or platforms (e.g., Hadoop, Spark) is a plus.
- Contributed to open-source projects or have personal projects demonstrating expertise in Java development.