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