- Delivering ML software implemented in python.
- A good working knowledge of a deep learning framework, preferably PyTorch or TensorFlow or both.
- Delivering high-quality product increments.
- Modern software development techniques - unit testing, refactoring.
- Working knowledge of mathematics and algorithms underpinning modern ML methods, for example stochastic gradient descent and basic linear algebra.
- Can balance passion for technology with commercial awareness.
- Can communicate effectively with business stakeholders in a professional manner.
Good experience to have
- Building service-oriented architectures.
- Designing and implementing distributed data intensive applications.
- Scaling and optimising systems.
- “Hardening” research-code into production-ready code.
- Coaching and mentoring team members in various coding methodologies, patterns & practices, testing practices, and tools that complement the software development process.
- Applying agile techniques in an engineering team.
Our ideal candidate
- Is educated to postgraduate level in a computer-related (or applicable) discipline.
- Is a team player who can work in a diverse, world class team.
- Is a self-starter who finds solutions rather than problems and is easily able to adapt to new technologies.
- Is prepared to travel domestically or globally on occasion.
You have an expert with .NET languages such as C# and VB. You will be comfortable working with databases, web services, APIs, WinForms and Installers. You will be adept at finding bugs and performance problems in legacy code.
Mentoring and teaching
You will be confident in coaching less experienced staff members to use best practice software development techniques. You will be able to host training sessions for the departments on tools and techniques.
You know the importance of unit testing and be proficient in writing them. You will be familiar with mocking frameworks and how to design classes to be testable.
Enterprise software architecture
You should have a good understanding of how modern enterprise scale software is architected. This includes practices such as message queues, micro-services, virtualization and APIs. You will have proven experience using design patterns in everyday development. You will consider SOLID principles in component design.
You can work in a transparent, constantly changing, iterative and collaborative way with a multidisciplinary team. You are familiar with agile methodologies such as LEAN, SCRUM, KANBAN, LESS.