Requirements
- Bachelor’s degree in Computer Science, Engineering, or equivalent practical experience
- Strong hands‑on experience in both C++ and Java, delivering production‑grade systems
- 10+ years of software engineering experience as a senior individual contributor
- Proven delivery experience with low‑latency, high‑throughput, distributed systems, ideally in FX, trading, or matching platforms
- Strong understanding of system integration, messaging, event‑driven architectures, and data consistency
- Experience working across the full SDLC, including design, development, automated testing, deployment, and production support
- Familiarity with Linux, CI/CD pipelines, build systems, performance testing, and monitoring/alerting
- Practical experience with cloud platforms, containerization, and open‑source technologies
- Excellent problem‑solving skills and the ability to influence technical outcomes without formal authority
- Up‑to‑date with modern engineering practices, tools, and industry trends
What the job involves
- The Senior Software Engineer is a hands‑on individual contributor responsible for designing, building, and operating mission‑critical FX market infrastructure and matching platforms using C++ and Java
- The role focuses on low‑latency, high‑throughput distributed systems with strict availability, resiliency, and data integrity requirements
- This role owns technical outcomes for complex components and services, influences architecture and platform evolution, and provides deep expertise across development, testing, and production support
- While not a line‑management role, it carries strong expectations for technical leadership, mentoring, and collaboration across engineering, architecture, and product teams
- Design, develop, and maintain C++ and Java services supporting FX matching and trading workflows
- Own technical delivery for key platform components, ensuring alignment with LSEG architectural principles, performance standards, and operational controls
- Build and evolve low‑latency, high‑availability systems handling high message volumes and time‑critical processing
- Ensure systems meet non‑functional requirements, including latency, throughput, resiliency, fault tolerance, security, and observability
- Contribute to system and solution architecture, participating in design reviews and providing pragmatic input on scalability and operability
- Work closely with Product, QA, SRE, and Architecture teams to translate business requirements into robust technical solutions
- Diagnose and resolve complex issues across production, QA, and client environments, including root‑cause analysis of cross‑system failures
- Improve code quality and maintainability through clean design, automated testing, performance tuning, and controlled refactoring
- Integrate and manage dependencies on messaging platforms, data distribution systems, and upstream/downstream market infrastructure
- Evaluate and adopt suitable open‑source and third‑party technologies, ensuring they meet regulatory, security, and performance requirements
- Provide technical mentoring through code reviews, design discussions across teams
- Ensure adherence to SDLC standards, engineering best practices, and operational readiness requirements
- Contribute recommendations that influence platform standards, engineering patterns, and architectural direction across FX technology