Software Engineer
Location: Remote First; office location Moorgate, London (flexible remote working locations within UK/Europe)
Employment type: Permanent
Working Hours: Full time (UK 9-6)
Salary: dependent on experience up to £90,000 + Shares + Benefits
You will work within a small team where you will pair-program (we operate using the extreme programming framework) to:
Build resilient and adaptable fintech platforms and components in Java
Refactor to improve code design
Write lots of tests (every one of our commits is continuously and rapidly verified by thousands of tests)
Automate the boring bits
Features of the way we work:
We avoid silos by regularly rotating between teams to work on the whole system with an Our Code not My Code mindset and approach
We practice trunk-based development and continuous integration: we treat every commit as releasable
We treat broken tests as failures and revert where possible
We practice TDD, BDD and DDD
We automate as much as possible
We pair program to ensure that everyone understands the context of what they are working on. We also believe that pairing drives quality, learning, cross-skilling, and builds empathy with other developers
Sometimes we have to care about throughput and latency and so take this into account when writing code
See Dave Farley walk through how our CI pipeline works -
Our needs:
We are growing the team and are keen to encourage diversity of domain experience and background. We’re open minded about your path to becoming a developer: we don’t require any particular academic or specific work experience, but we do expect you to have written code in a commercial setting.
Our mid-level positions are targeted at developers who are keen to broaden and deepen their technical skills and understanding of sound development practices, whilst still having made some impact in their current role.
Above all you will:
Write clean Java code and work confidently in a large codebase
Show curiosity about how systems work under the hood and a willingness to learn
Apply TDD principles and pair with others to improve your code
Starting to contribute to design discussions with clear opinions
Communicate ideas and thought processes clearly