Description
Are you a hands-on engineer who raises the bar for everyone around you? Join us at FTSE Russell! We're establishing a team of engineers passionate about software craftsmanship, quality, and substantial impact. As a Lead Software Engineer, you'll own the technical direction of the software that powers the indices trusted by financial institutions worldwide.
We build primarily in Python, so that's our preference , but depth of engineering judgement matters more to us than the language on your CV. If you've led the design and delivery of serious systems in Java, C#, C, C++, Scala, Go, or Rust and you're motivated to lead in Python, we'd like to talk. At this level we expect you to become fluent quickly and to bring the cross-language perspective with you.
This is a hands-on Lead IC role , not a management role. You'll still be writing and reviewing code every week. What changes at this level is scope: you own architecture and technical direction in a defined area, you mentor and grow the engineers around you, and you raise quality across the team through reuse, good design, and hands-on support. The systems handle serious volumes of financial data, so there's real depth in the data problems , but you're being hired as a software engineer who leads through code.
Responsibilities
- Staying hands-on , designing and writing production code, primarily in Python with 10 +yrs of experience , and setting the standard for what good looks like through the code you ship
- Owning technical direction and architecture for a defined area of the platform, and making the trade-offs explicit so the team can move fast with confidence
- Leading design of software systems , services, APIs, shared libraries, and the interfaces between them , with resilience, performance, and reusability designed in
- Driving engineering quality across the team: raising the bar in code review, reducing duplication through well-designed shared components, and championing testing, refactoring, and secure development practices
- Mentoring and coaching engineers , pairing, reviewing, and growing capability so that good practice outlives any one project
- Digging into design and risk trade-offs , failure modes, operational readiness, security, and cost , and resolving the blockers that slow the team down
- Designing data-intensive software across relational databases (Aurora PostgreSQL), object storage, and AWS services, with careful attention to schema design and evolution at scale
- Building software that processes data at scale on AWS , Lambda, containerised services, and where appropriate Glue, EMR Serverless, and lakehouse table formats such as Apache Iceberg
- Embedding observability and quality controls so issues are found before customers find them
- Influencing and collaborating across teams, and translating between technical and non-technical audiences
- Building deep knowledge of the financial indices domain and using it to guide team-level design
Requirements
- A substantial track record of building and shipping software. Applications, services, platforms, or libraries you designed, built, ran in production, and evolved over years , not just pipelines and scripts
- Python is our preference, but not a hard gate at this level either. Either you already lead in production Python, or you have equivalent depth in Java, C#, C, C++, Scala, Go, or Rust and are motivated to make Python your primary language here
- Depth in software design and architecture , you can decompose a complex problem, choose the right boundaries, and explain why
- You write and review excellent code. In Python: type hints, linters, strong pytest discipline, and an instinct for readable, maintainable code , and the equivalent rigour in any other language you've worked in
- You are genuinely hands-on and intend to stay that way. Leading through code is the point of this role
- Proven experience mentoring and levelling up other engineers , through code review, pairing, design guidance, and setting standards
- Strong ownership of technical outcomes , you take responsibility for what production does, not just what merges
- Deep experience with relational databases (e.g. Aurora PostgreSQL) , modelling, performance, and evolution under real load
- Solid AWS experience and strong CI/CD, automation, and testing practice
- Comfort with data-intensive systems , batch processing, ETL, schema evolution, and reasoning about correctness at volume
- Excellent communication , you tailor how you explain design decisions to technical and non-technical audiences and create shared understanding
- You value collaboration over solo heroics and thrive in Agile teams
Nice to Haves
- Apache Spark / PySpark and experience optimising large-scale distributed processing
- Big data experience , designing systems for datasets and workloads well beyond single-machine scale
- Breadth across languages used in data-intensive and performance-critical systems , Scala, Java, C++, Go, or Rust , and the judgement to know when reaching for one is warranted
- Apache Iceberg, Delta Lake, or similar open table formats, and lakehouse architecture
- Databricks, Snowflake, or comparable data platforms
- CI/CD tooling such as GitLab CI, Jenkins, or GitHub Actions
- Infrastructure as code (Terraform, CDK) and platform/DevOps exposure
- Data quality frameworks like Great Expectations or Deequ
- Experience in financial markets, index data, or investment analytics
- Experience in finance domain (investment banking, asset/portfolio management) or in any product company