Position Summary
We are seeking a Software Developer to design, build, test, and maintain reliable software applications. In this role, you will work with product, design, and engineering colleagues to understand requirements, deliver high-quality features, and improve existing systems. The ideal candidate has practical software development experience, strong problem-solving skills, and the ability to contribute effectively within a collaborative development team.
Key Responsibilities
• Design, develop, test, and maintain software applications and services in line with project requirements and engineering standards
• Work with product managers, designers, and other stakeholders to clarify requirements and translate them into technical solutions
• Write clear, maintainable, and efficient code using appropriate programming languages, frameworks, and tools
• Contribute to the full software development lifecycle, including planning, implementation, testing, deployment, and ongoing support
• Build and maintain APIs, integrations, and software components that support application functionality
• Develop and maintain automated tests, and participate in code reviews to support software quality and consistency
• Investigate and resolve software defects, performance issues, and production incidents in collaboration with the team
• Identify opportunities to improve application performance, reliability, security, and maintainability
• Work with databases and data services to implement, maintain, and improve data access and storage solutions
• Use version control and team development practices to manage code changes and coordinate work effectively
• Contribute to technical documentation, implementation notes, and knowledge sharing within the team
• Participate in agile ceremonies, including planning, estimation, reviews, and retrospectives
• Work with quality assurance and operations colleagues to support releases, deployments, and application monitoring
• Keep up to date with relevant software development practices, technologies, and security standards
Required Qualifications
• Professional experience in software development or a related engineering role
• Proficiency in at least one modern programming language, such as Java, C#, Python, JavaScript, or TypeScript
• Experience building, testing, and maintaining software applications or services
• Understanding of software development principles, data structures, algorithms, and common design patterns
• Experience working with relational or non-relational databases and writing queries
• Familiarity with REST APIs, application integrations, and common data formats such as JSON
• Experience using version control systems, such as Git, in a collaborative development environment
• Understanding of automated testing practices and experience writing or maintaining unit or integration tests
• Strong analytical and problem-solving skills, with the ability to investigate issues and develop practical solutions
• Ability to communicate technical concepts clearly and collaborate with colleagues across different disciplines
• Good organisation and time management skills, with the ability to manage tasks and deliver work to agreed timelines
• Commitment to writing secure, reliable, and maintainable software
Preferred Qualifications
• Experience developing cloud-based applications or working with services from AWS, Microsoft Azure, or Google Cloud
• Familiarity with containerisation technologies such as Docker and orchestration platforms such as Kubernetes
• Experience with continuous integration and continuous delivery (CI/CD) pipelines and automated deployment practices
• Knowledge of front-end development technologies, such as HTML, CSS, and modern JavaScript frameworks
• Experience with message queues, event-driven systems, or microservices architecture
• Familiarity with application monitoring, logging, and performance analysis tools
• Experience working in an agile software development team
• Relevant degree, professional qualification, or equivalent practical experience in software development