Junior Software Engineer
Junior Developer (Mathematical Optimisation)
We are looking for a junior developer who enjoys working at the intersection of software engineering and mathematical optimisation. This role suits someone who likes building well structured Python code while also understanding how models, constraints, and solvers are used to tackle real world problems.
You will be joining a small technical team working on optimisation driven software that has direct operational impact. The focus is on writing production ready code while gradually developing deeper modelling and optimisation expertise.
Software Engineering
- Writing clean, maintainable Python code for optimisation workflows and data pipelines
- Implementing model building logic, scenario generation, and result processing components
- Writing unit tests and contributing to automated testing and continuous integration
- Working with APIs, databases, and internal services to ingest and prepare data
- Collaborating with more experienced engineers on architecture, refactoring, and performance improvements
Mathematical Optimisation
- Assisting with the formulation of optimisation problems such as linear, mixed integer, or related models
- Translating real world requirements into variables, constraints, and objective functions
- Building and maintaining optimisation models using tools such as Pyomo, PuLP, OR Tools, or similar
- Running experiments, analysing solver outputs, and helping diagnose infeasibilities or performance issues
- Developing a strong appreciation for testing and validation within optimisation systems
What we are looking for:
Essential
- Good programming skills in Python
- Understanding of core software engineering concepts, data structures, and algorithms
- Some exposure to mathematical optimisation through university modules, projects, or internships
- Experience working with numerical or data libraries such as NumPy and pandas
- Basic understanding of optimisation concepts including constraints, objectives, and feasibility
Nice to have
- Experience with optimisation frameworks such as Pyomo, OR Tools, Gurobi, or CPLEX
- Familiarity with common modelling patterns
- Interest in performance, scalability, or parallel processing
- Experience with automated testing
- Familiarity with Git, Docker, or cloud based environments
About you
- Curious and analytical, with an interest in learning new mathematical and technical concepts
- Practical in your approach, able to balance model elegance with real world constraints
- Comfortable explaining technical ideas to non technical colleagues
- Enjoy working in collaborative, cross functional teams
What the role offers
- Hands on experience working on real optimisation problems with tangible impact
- Mentorship from experienced engineers and optimisation specialists
- A clear development path into a hybrid role spanning software engineering and optimisation
- Long term progression toward optimisation engineering or applied research roles