Senior Software Engineer
The Role
A technology‑driven trading firm is seeking a senior software engineer to strengthen the testability, design quality, and long‑term maintainability of a production‑grade order management and execution platform.
The system is mission‑critical and already in active production, with some automated testing in place; however, validation still relies heavily on late‑stage regression testing. The initial focus of this role will be to support refactoring and architectural improvements that enable practical, sustainable automated testing, fully integrated into the development workflow.
The platform spans multiple languages, including systems‑level and JVM‑based technologies, with the majority of core logic implemented in low‑level languages. Day‑to‑day work will focus primarily on these core components, alongside some higher‑level service and interface layers. While experience with all technologies is not required, strong software design fundamentals and experience refactoring complex systems are essential. Engineers who are comfortable learning new languages are strongly encouraged.
This is a hands‑on engineering role centred on code quality, refactoring, and system design. It is well suited to a senior engineer who enjoys improving existing systems, making them easier to test, maintain, and extend. The role is not focused on DevOps or manual testing, and it is not a narrow test‑automation position. Over time, as the platform matures, the focus will increasingly shift toward delivering new product and feature development on a robust, well‑tested foundation.
Role Focus
- Initial phase: Collaborate with other senior engineers to refactor existing components, improve separation of concerns, and remove barriers to fast, reliable automated testing.
- Medium term: Expand and solidify the automated testing strategy, applying test‑driven development principles where appropriate.
- Longer term: Transition toward broader product and feature development as the system becomes consistently testable and easier to evolve.
Responsibilities
- Refactor core components to improve testability, including separating business logic from I/O and simplifying tightly coupled or complex modules
- Work closely with senior engineers to implement planned architectural improvements
- Apply test‑driven development practices on new and refactored code, contributing to a balanced mix of unit, integration, and acceptance tests
- Deliver high‑quality production code, primarily in systems‑level languages, with occasional work in higher‑level platform and interface technologies
- Ensure automated tests run efficiently within the existing CI/CD pipeline
- Contribute to shared engineering standards, patterns, and testing infrastructure through collaboration and code reviews
- Progressively take ownership of new product and feature development as the platform stabilises
FAQs
Congratulations, we understand that taking the time to apply is a big step. When you apply, your details go directly to the consultant who is sourcing talent. Due to demand, we may not get back to all applicants that have applied. However, we always keep your CV and details on file so when we see similar roles or see skillsets that drive growth in organisations, we will always reach out to discuss opportunities.
Yes. Even if this role isn’t a perfect match, applying allows us to understand your expertise and ambitions, ensuring you're on our radar for the right opportunity when it arises.
We also work in several ways, firstly we advertise our roles available on our site, however, often due to confidentiality we may not post all. We also work with clients who are more focused on skills and understanding what is required to future-proof their business.
That's why we recommend registering your CV so you can be considered for roles that have yet to be created.
Yes, we help with CV and interview preparation. From customised support on how to optimise your CV to interview preparation and compensation negotiations, we advocate for you throughout your next career move.
