Software Engineer
Software Engineer
Approx. £112,000 (Plus Benefits) | London (Hybrid) | Fixed-Term Contract
As a Software Engineer, you have influence well beyond your individual contributions. You take ownership of your technical domain, self-direct your work, and plan and scope projects end to end. You act as a key point of contact for cross-functional partners, approaching problems with a structured mindset—researching solutions, evaluating technologies, and recommending approaches that balance short-term delivery with long-term sustainability.
Key Responsibilities
Software Development & Code Quality
- Write high-quality product or system development code with minimal supervision.
- Design code for testability and maintainability; write comprehensive test cases and documentation.
- Conduct testing beyond unit tests, including integration, performance, stress, security, load, and fuzz testing.
- Review peer code and provide constructive feedback to ensure best practices (style, accuracy, efficiency, testability).
- Identify technical debt and high-risk components; implement or guide improvements to enhance long-term code health.
Project Ownership & Delivery
- Own projects through to completion, including qualification, deployment, monitoring, and ongoing support.
- Contribute to end-user documentation, process automation, and customer support where required.
- Build or improve testing, monitoring, and feedback systems to support engineering excellence.
- Triage and resolve system or product issues by debugging and analyzing impacts across hardware, network, and services.
System Design & Architecture
- Design systems within your area of responsibility, breaking down complex problems into solvable components.
- Assess trade-offs and participate in or lead design reviews to select appropriate technologies.
- Ensure systems are scalable, maintainable, and aligned with long-term architectural goals.
- For those with reports, balance hands-on technical contribution with guiding and reviewing team designs.
Leadership & Business Impact
- Set, communicate, and deliver against team priorities aligned with organizational goals.
- Partner with stakeholders to make informed decisions and drive business impact.
- Prioritize work, allocate resources equitably, and define metrics to ensure successful delivery.
- Navigate change effectively by adjusting plans, removing blockers, and encouraging innovation and thoughtful risk-taking.
People Leadership & Culture (where applicable)
- Foster inclusive team norms that promote belonging, psychological safety, and respect.
- Encourage collaboration, open communication, and recognition of positive contributions.
- Support employee wellbeing through regular check-ins and proactive workload management.
- Role model company values, policies, and ethical standards.
Minimum Qualifications
Proficiency in the following areas is required:
- Programming and code comprehension
- Data structures and algorithms
- Software and systems design
- Architecture and systems thinking
- Test engineering and code/system health
- Debugging, diagnosis, and issue resolution
- Data analysis and synthesis
- Simplification and conflict resolution
- Team management (for people managers)
Role-Specific Context
The successful candidate will join a team that incubates and delivers new products through structured sprint cycles.
- Approximately 70% of the role will focus on maintaining and enhancing existing products (including building new features).
- Approximately 30% will be dedicated to incubating and developing new products.