We're currently seeking an experienced Senior Scala Developer to join our team. This role will involve a blend of coding, managing deployment scripts, and overseeing our infrastructure on AWS. The ideal candidate will have a strong background in Scala development, with experience in deployment technologies like Ansible, Kubernetes, and Docker, as well as a familiarity with AWS infrastructure management.
We are a Living Wage employer and are committed to ensuring our team has a proper work/life balance. Though our preference is a UK Candidate based in South Wales we are open to international remote candidates for this role as we already have a very geographically dispersed team working across Europe with clients in the US.
Key Responsibilities:Design and develop high-quality, scalable, and efficient software solutions using the Scala programming language and Play Framework for backend services.Manage deployment processes and scripts using Ansible, Kubernetes, and Docker to ensure smooth and reliable deployment of software solutions.Oversee and manage infrastructure on AWS, including but not limited to EC2, S3, RDS and VPC.Collaborate with the development team to architect and implement best practices in software development, deployment, and infrastructure management.Code reviews and contribute to improving team practices in code quality and reliability.Troubleshoot, debug, and upgrade existing software and infrastructure.
Requirements:5+ years of experience in software development, with a strong focus on Scala programming.Proficient in functional programming principles and practices.Experience with Akka toolkit and Play framework.Proficiency in managing deployment scripts such as Ansible.Knowledge of containerization and orchestration technologies (Docker, Kubernetes)Experience with AWS infrastructure management, including an understanding of its core services (EC2, S3, RDS, VPC, etc.).Experience with continuous integration and continuous delivery (CI/CD) practices.Excellent problem-solving skills and the ability to work independently or as part of a team.