Software Scientist – Innovation & Applied Research
An exciting opportunity is available for a Software Scientist to join a pioneering Innovation Team within a cutting-edge Development and AI Engineering group. This role is at the forefront of scientific computing, emerging technologies, and early-stage prototyping, offering the chance to bridge academic research and high-performance software development.
About the Role
This position is ideal for someone who thrives at the intersection of scientific research and robust software engineering. You will play a key role in transforming experimental prototypes into scalable, production-quality software, collaborating with cross-functional teams and contributing to breakthrough technological innovations.
Key Responsibilities
- Translate experimental research code into production-ready implementations.
- Refactor or reimplement prototypes from languages like Python, Julia, or R into high-performance systems using C, C++, C#, or Fortran.
- Contribute to early-stage exploration of technologies such as AI/ML, digital twins, control systems, agent-based modelling, reinforcement learning, and probabilistic programming.
- Collaborate with scientists, engineers, and developers to identify, evolve, and scale innovative ideas.
- Integrate software quality best practices early in the research pipeline, including testing, documentation, and modular design.
- Participate in the full software development lifecycle: design, implementation, testing, and deployment.
Qualifications & Skills
- Advanced degree (MSc, PhD, or equivalent experience) in Physical Sciences, Engineering, Mathematics, Geoscience, or Computer Science.
- Demonstrated experience bridging the gap between research and software engineering, especially transforming prototypes into production-grade applications.
- Proficiency in at least one high-level scientific programming language (e.g., Python, Julia) and one or more compiled languages (e.g., C, C++, C#, Fortran).
- Strong grasp of software engineering principles, including code maintainability, unit testing, and modular architecture.
- Effective communicator with experience in cross-disciplinary collaboration.
- Self-motivated, organised, and comfortable working in a fast-paced, exploratory environment.
Desirable Experience
- Background in scientific computing, numerical methods, or computational modelling.
- Familiarity with emerging technologies such as machine learning, digital twins, agentic systems, probabilistic computing, or control systems.
- Experience in an R&D, innovation, or applied research setting.
Compensation & Benefits
This role offers a highly competitive salary, performance-related bonuses, and a comprehensive benefits package. Relocation support is available where applicable. Compensation is structured to reward individual contribution, collaboration, and technical excellence.