About the role
We are looking for a Senior Software Engineer (Java Full Stack) to design, develop, and maintain scalable enterprise applications. The ideal candidate will have strong expertise in Java-based technologies, modern web development frameworks, cloud platforms, and software engineering best practices. This role involves collaborating with cross-functional teams to build high-performance applications, improve existing systems, and drive innovation through modern development methodologies.
The candidate will have responsibilities across the following functions:
Application Development:
- Design, develop, and maintain scalable, secure, and extensible web and enterprise applications.
- Build and enhance backend services using Java, Spring, and Spring Boot.
- Develop and integrate RESTful APIs and web services.
- Contribute to frontend development using React.js or other modern JavaScript frameworks.
- Participate in hands-on coding, code reviews, debugging, and performance optimisation.
System Design and Architecture
- Analyse and improve application architecture, data flows, and database designs.
- Develop scalable solutions aligned with business and technical requirements.
- Support modernisation initiatives and migration to next-generation platforms.
- Apply domain-driven design principles and architectural best practices.
Agile and Engineering Excellence:
- Follow Agile development methodologies and participate in sprint planning, estimation, and retrospectives.
- Promote Test-Driven Development (TDD), automation, and continuous integration practices.
- Contribute to continuous deployment and DevOps initiatives.
- Ensure code quality through unit testing, peer reviews, and engineering standards.
Cloud and Platform Engineering:
- Develop and deploy applications on AWS and/or Google Cloud Platform (GCP).
- Implement containerised solutions using Docker and Kubernetes.
- Collaborate with DevOps teams to improve deployment, monitoring, and operational processes.
Collaboration and Leadership:
- Work closely with product owners, business analysts, architects, QA teams, and developers.
- Provide technical guidance and mentorship to junior engineers.
- Participate in technical discussions and contribute to engineering best practices.
- Communicate effectively with stakeholders across technical and non-technical teams.
Requirements:
- Bachelor's degree in Computer Science, Information Systems, or a related field.
- Proven experience as a Full Stack Developer in enterprise application development.
- Strong hands-on experience with Java, Spring, Spring Boot, and RESTful web services.
- Experience with frontend technologies such as React.js or similar frameworks.
- Strong understanding of web technologies and standards, including JSON and JWT.
- Expertise in relational databases such as MSSQL, MySQL, or PostgreSQL.
- Experience with NoSQL databases such as MongoDB or DynamoDB.
- Strong knowledge of software design principles, data structures, and application architecture.
- Experience with Agile development methodologies and modern software engineering practices.
Preferred Qualifications:
- Experience with AI-assisted development tools such as GitHub Copilot.
- Experience with AWS and/or GCP cloud services.
- Familiarity with Docker and Kubernetes.
- Knowledge of CI/CD pipelines and DevOps practices.
- Understanding of domain-driven design and architecture trade-off analysis.
- Contributions to open-source projects are a plus.
Ideal Candidate Profile:
- Strong problem-solving and analytical skills.
- Passion for building high-quality, scalable software solutions.
- Self-driven professional with a strong sense of ownership and accountability.
- Effective communicator with excellent collaboration skills.
- Ability to mentor team members and contribute to technical leadership.
- Continuous learner with an interest in emerging technologies and engineering best practices.