Backend Software Engineer - Application Development
Required skills
Experience in designing and developing features and improvements, as well as supporting and maintaining, live backend systems, In-depth understanding of data structures, system architecture, API development for microservices frameworks, distributed systems and other backend-related concepts and best practices, Engineering background in Computer Science, Mathematics, Software Engineering, Physics or similar field, Strong coding skills with demonstrated proficiency in programming languages, such as Java, C++, Python, Rust, or similar languages, Strong written and verbal communication skills and ability to iterate quickly with teammates, incorporating feedback and holding a high bar for quality
Preferred skills
Active UK Security clearance, or eligibility and willingness to obtain a UK Security clearance is beneficial but not necessary
Technologies
Different backend languages, including Java, Rust, Python and Go, Distributed systems technologies such as Kafka, Cassandra, Elasticsearch and Spark, Docker and Kubernetes for containerisation and orchestration, Industry-standard build tooling, including Gradle and GitHub
Responsibilities
Architecting, developing, and maintaining high-performance, scalable backend services that underpin our our operational data and AI systems, Maintaining high coding standards through the development of guidelines, active participation in code reviews, and fostering a culture of continuous improvement and knowledge sharing among your team, Building robust APIs for use by front-end developers and interfacing external systems, and collaborating with front-end developers to integrate user-facing elements with server-side logic, Designing efficient data structures and algorithms to manage large-scale and high throughput data, Optimizing applications for speed and scalability through performance analysis, Actively improve user workflows by collaborating with cross-functional teams, ensuring seamless experiences across product boundaries and a cohesive user experience
Seniority
Domain
Application Development