Python Software Engineer - ML Tooling / Research

Location London
Discipline: Technology
Job type: Contract
Salary: £10000 - £115000 per annum
Contact name: Som Rajendra

Contact email: som@principlehr.com
Job ref: 36112
Published: about 8 hours ago
Startdate: ASAP

If you like building Python systems that make machine learning research actually work at scale - this one's for you. You'll develop and improve the internal tooling that researchers rely on daily: distributed compute workflows, data pipelines, and robust infrastructure that connects research code to real environments (including hardware/prototype devices on-site).

What's in it for you

  • £98,000 - £110,000 annual salary
  • 12-month contract - inside IR35 - PAYE
  • Fully on-site in Cambridgeshire - hardware-heavy environment
  • Proper engineering role: ownership, impact, and technical depth

What you'll do

  • Build and maintain scalable Python tooling that supports ML research workflows
  • Improve reliability: fix bugs, optimise performance, and ship iterative enhancements in sprints
  • Integrate with distributed compute, data storage, and internal development systems
  • Work closely with researchers as your "users" - gather requirements, translate ambiguity into working software
  • Write clean, maintainable code and debug problems that span systems

Must-haves

  • 4+ years commercial experience building software in Python
  • Hands-on with PyTorch or TensorFlow in production or applied ML environments
  • Experience with distributed or high-performance compute
  • Comfortable working with large/complex ML datasets and research-style workflows
  • Good communicator: you can explain what you're building and why, not just ship code

Nice to have

  • Audio / DSP-adjacent ML exposure
  • ML tooling/pipelines built for researchers or data scientists
  • Linux/Windows scripting
  • CI/CD and deployment experience in complex environments

How your day looks
You'll spend time building new features into internal tools, responding to researcher requests, fixing what's broken, improving what's slow, and collaborating with the infra team in a sprint cadence. This is hands-on engineering with real ownership.

How to apply?

If you're a Python engineer who enjoys solving real systems problems for ML teams, share your CV and we'll talk through fit, on-site expectations, and interview process.