We are looking for a Full-Stack Software Engineer to design, build and maintain modern, cloud-native web applications. You will work across the full software development lifecycle, collaborating with cross-functional teams to deliver scalable, secure and production-ready solutions.
This role is well suited for engineers who enjoy building high-quality products using Next.js, TypeScript and AWS, while leveraging modern AI-powered development tools to improve engineering productivity.
Key Responsibilities
- Design, develop and maintain scalable full-stack web applications using Next.js and TypeScript.
- Build responsive, accessible and reusable UI components following modern frontend best practices.
- Develop and maintain backend services, APIs and business logic to support application functionality.
- Design and integrate RESTful APIs and third-party services.
- Deploy, manage and troubleshoot applications hosted on AWS cloud infrastructure.
- Implement secure authentication, authorization and application security best practices.
- Write clean, maintainable and well-tested code following engineering standards and coding best practices.
- Participate in architecture discussions, code reviews and technical design sessions.
- Utilise AI coding assistants and agentic engineering tools to accelerate software development while reviewing generated code for quality, correctness and maintainability.
- Build and maintain CI/CD pipelines to support automated testing and deployment.
- Work with containerised applications using Docker and Kubernetes where applicable.
- Support infrastructure automation using Infrastructure-as-Code tools such as Terraform or AWS CDK.
- Implement application monitoring, logging and observability to ensure production reliability.
- Troubleshoot production issues and optimise application performance.
- Collaborate closely with product managers, designers and fellow engineers throughout the software development lifecycle.
Requirements
- Bachelor's degree in Computer Science, Software Engineering or a related discipline.
- 3–5 years of hands-on software engineering experience delivering production-grade applications.
- Strong experience with Next.js, React and TypeScript.
- Good understanding of modern web development principles including component-based architecture, state management and responsive design.
- Experience developing backend APIs and server-side applications.
- Hands-on experience with AWS services such as:
- EC2
- S3
- Lambda
- RDS
- CloudFront
- API Gateway
- IAM
- Experience deploying and managing applications in AWS environments.
- Familiarity with AI-assisted software development and agentic engineering workflows using coding agents (e.g. GitHub Copilot, Claude Code, Cursor or similar).
- Experience reviewing AI-generated code and ensuring software quality.
- Knowledge of CI/CD pipelines and DevOps practices.
- Experience with Docker and Kubernetes.
- Familiarity with Infrastructure-as-Code tools such as Terraform or AWS CDK.
- Understanding of application monitoring, logging and observability.
- Experience with Git and collaborative software development workflows.
- Strong analytical, troubleshooting and problem-solving skills.
- Good communication skills and the ability to work effectively within agile development teams.
Nice to Have
- Experience designing cloud-native or serverless architectures.
- Experience with automated testing frameworks and test-driven development.
- Knowledge of authentication protocols such as OAuth2, OpenID Connect or JWT.
- Experience working with microservices or event-driven architectures.
- Experience with performance optimisation and application scalability.
- Exposure to GenAI, LLM integrations or AI-powered applications.
- AWS certifications are advantageous.
Preferred Experience
Candidates should ideally have:
- 3–5 years of relevant full-stack development experience
- Proven experience delivering production-ready software solutions.
- Strong ownership of software quality and engineering best practices.
- Experience working across the complete software development lifecycle in agile environments.