Python Software Engineer - Digital Assets

IMC

Job Summary

As a Python Software Engineer, you will collaborate with trading and engineering teams on applications, tools, and automation projects within a Python analysis ecosystem. You will build analysis and visualization tools, taking ownership of end-to-end product development from requirements to production. The role involves interpreting ideas, implementing them efficiently into reliable, scalable, and performant tools, and navigating complex systems while balancing throughput, simplicity, scalability, and maintainability.

Must Have

  • Collaborate closely with researchers and engineers to deliver challenging projects.
  • Build, maintain, and enhance research frameworks and data pipelines.
  • Curate, transform, and present data in clear, accessible formats.
  • Take ownership of end-to-end product development, from requirements gathering to production deployment.
  • Navigate diverse systems and technologies, making informed trade-offs.
  • 2-3 years of professional Python development experience.
  • Solid computer science knowledge.
  • Hands-on experience with statistical analysis, numerical programming, data engineering, or machine learning in Python (Polars, Pandas, NumPy, SciPy, TensorFlow).
  • Proven ability to handle large datasets, architect and optimize data pipelines, and present data effectively.
  • Solid grounding in calculus, probability, statistics, and optimization.

Good to Have

  • Experience with orchestration and containerization tools like Kubernetes and Docker.
  • Familiarity with machine-learning techniques.

Perks & Benefits

  • Dynamic, fast-paced environment with steady challenges and opportunities.
  • Quick feedback loop in research, development, and deployment of strategies.
  • Lots of responsibility and support to make an impact from day one.
  • Flat structure and an open, collaborative culture.
  • Stimulates sharing of ideas, knowledge, and technology between teams and offices.

Job Description

You can expect a dynamic, fast-paced environment that delivers a steady stream of challenges and opportunities, with one of the most exciting aspects of the job being our quick feedback loop in the research, development and deployment of strategies.

As a Python Software Engineer, you will work closely with our trading and engineering teams on a variety of applications, tools and automation projects. You’ll be placed in an environment consisting primarily of a large Python analysis ecosystem drawing data from various sources including our own trading systems. You’ll build analysis & visualisation tools at the heart of the business logic, in close collaboration with the traders who use them. Your work involves both interpreting ideas, coming up with your own, and efficiently implementing these into tools that are reliable, scalable and performant.

Together with traders, researchers and engineers, you deliver challenging projects, while taking ownership for end-to-end product development – from requirements gathering to production. You’ll write reliable and scalable software while balancing time to production with quality and testability. Advanced automated testing and daily deployments will allow you to achieve agile and incremental benefits. Within a complex landscape of varying systems and technologies, you’ll be constantly challenged to consider trade-offs between throughput, simplicity, scalability and maintainability.

Your Core Responsibilities:

  • Collaborate closely with researchers, and engineers to deliver challenging projects.
  • Build, maintain, and enhance research frameworks and data pipelines that enable trading and quantitative research.
  • Curate, transform, and present data in clear, accessible formats for traders and researchers.
  • Take ownership of end-to-end product development, from requirements gathering to production deployment
  • Navigate a complex landscape of diverse systems and technologies, making informed trade-offs between throughput, simplicity, scalability, and maintainability

Your Skills and Experience:

  • Master’s or Ph.D. in Mathematics, Physics, Statistics, Computer Science, Econometrics, or a related discipline.
  • 2–3 years of professional Python development experience
  • solid computer science knowledge, has experience or capability to quickly adapt to additional languages such as Java, Scala, C++, Go, etc.
  • Hands-on experience with statistical analysis, numerical programming, data engineering, or machine learning in Python (Polars, Pandas, NumPy, SciPy, TensorFlow).
  • Proven ability to handle large datasets, architect and optimize data pipelines, and present data effectively.
  • Experience with orchestration and containerization tools like Kubernetes and Docker is a plus.
  • Solid grounding in calculus, probability, statistics, and optimization; familiarity with machine-learning techniques is beneficial.

Location and Office Culture:

  • Note that this is an onsite role, with some but limited flexibility for working from home
  • You can expect a dynamic, fast-paced environment that delivers a steady stream of challenges and opportunities
  • One of the most exciting aspects of the job is our quick feedback loop in the research, development and deployment of strategies
  • We give people lots of responsibility and the support they need to make an impact from day one
  • We promise you a flat structure and an open, collaborative culture that stimulates the sharing of ideas, knowledge and technology between our teams and offices

14 Skills Required For This Role

Cpp Unity Game Texts Agile Development Automated Testing Numpy Pandas Docker Kubernetes Python Scala Tensorflow Java Machine Learning

Similar Jobs