Allen & Overy

Senior Machine Learning Engineer

Job description

Allen & Overy is a leading global law firm operating in over thirty countries. We work on some of the most challenging and important deals and have built a reputation for delivering exceptional legal solutions that help our clients grow, innovate and thrive. The legal industry is changing, and we're committed to leading that change, putting our people first, embracing new ways of thinking and integrating technology into our everyday work.


Our culture is one of high-performance and we have high expectations of one another, in everything we do. Being a proud team player is essential. We work together, listen and learn from one another and achieve results we could never achieve on our own. When you join our team, you'll become part of a flexible, inclusive environment underpinned by openness and consistent support for one another. At A&O, you're not only valued for what you do, but for who you are.


We have a powerful commitment to diversity, equity and inclusion, and we're working hard to create an environment where you can bring your authentic self to work. We know that to excel, we must nurture an environment where our people feel they belong.



Department purpose


The Engineering Team are primarily accountable for delivering the software and applications that Allen & Overy develop internally, and with the help of selected near source and outsource partners.



This includes providing:


  • APIs to integrate internal systems
  • Data processing and analytics to enable data-driven decision making
  • Bespoke legal applications for clients
  • Explore Machine Learning solutions and support the Data Science team to productionise their prototypes




Legal Engineering Team


The Legal Engineering Team are a team of developers that focus on the development of legal applications for the Legal Tech Solutions Team in Allen & Overy. The team develop multiple solutions including Legal Bricks and Contract Matrix, and work closely with the Data Science team.



What you will do


  • Be familiar with Python and major ML packages like Numpy, Pandas, Scikit-learn, TensorFlow, PyTorch, Keras etc.
  • Support the Data Science team with their research and being able to convert Data Science POCs into production grade solutions using best software engineering paradigms like Object-Oriented (OO) programming in order to develop modular and maintainable ML pipelines, microservices and APIs.
  • Be familiar with containerisation of models and Infrastructure as Code.
  • Be responsible for the ML services operationally.
  • Participate in agile ceremonies such as sprint planning, retrospectives and demos.
  • Work with Legal Tech and MIG stakeholders to refine acceptance criteria.
  • Plan and deploy software and model releases.
  • Write unit, integration, and acceptance tests including model performance on validation and test sets, measuring accuracy, precision, recall, F1 score and other performance metrics relevant to the specific ML task.
  • Continually improve the deployment, monitoring/alerting, dashboards, and general quality of production ML solutions.
  • Share knowledge among the team and department with a collaborative mind set




What you will have


  • Demonstrable problem solving skills using Python, or other ML-focused programming languages
  • Experience with supervised and unsupervised learning and deep learning techniques.
  • Experience with building and deploying Machine Learning models using MLOps tools and frameworks such as TensorFlow, PyTorch, Scikit-Learn, and Spacy.
  • Experience with exploratory data analysis, experiment cycle and pipelines and data visualisation.
  • Demonstrable understanding of ML architecture, patterns, testing and debugging
  • Strong understanding of Machine Learning and Natural Language Processing algorithms and techniques
  • Understanding common ML problems like overfitting/underfitting, data drift, data imbalance.
  • Understanding of modern API development e.g. OpenAPI, Versioning, Blue / Green deployments.
  • Strong problem solving skills and a can-do attitude, with a positive mind-set.
  • Engineering excellence and rigour in ML system design and development
  • Solid understanding of testing methodologies and the testing pyramid, specifically for ML models
  • Proactive attitude to self-improvement and working as a team
  • Experience of agile working methods and work item tracking tools
  • Ability to work cross functionally, building strong relationships with our stakeholders.
  • Ability to work as a team and independently, scoping and delivering high quality ML software.




You will stand out if you bring


  • Experience with modern programming languages used in Machine Learning such as Python and familiarity with one or more statically typed language like C#, Java, etc, solid understanding of data structures, algorithms, and software engineering principles.
  • Familiarity with statistical concepts like distribution, variance and standard deviation, conditional probability, Bayesian theorem, hypothesis testing and confidence intervals, t-test, ANOVA and Chi-Square tests.
  • Experience with Azure DevOps and building and deploying Machine Learning models using MLOps tools and frameworks in Azure Cloud.
  • Experience with container technologies such as Docker, docker-compose, and relevant Azure orchestration options.
  • Experience with securing Machine Learning models and infrastructure, including DevSecOps practices, encryption, and access control.
  • Experience of working in highly regulated sectors.
  • Experience with testing and validation of Machine Learning models, including end-to-end testing using tools like Playwright and Behavior Driven Development (BDD).
  • Contributing back to the community through Open Source / Stack Overflow / Meetups.




As a senior member to the team, we would expect you to


  • Bring your experience and insight to help influence the technical direction of the team's roadmap.
  • Have strong architectural skills.
  • Mentor less experienced members of the team, supporting their journey in writing high quality code.
  • Act as a subject matter expert, being able to offer guidance for other teams.
  • Be self-motivated and have strong decision-making skills.
  • Be capable of picking up any user story from a sprint.
  • Be familiar with a range of database technologies, including specialised vector search databases as well as traditional relational databases such as Azure SQL DB. Understanding the unique capabilities of these databases, including their ability to efficiently store and retrieve large-scale vector datasets.
  • Be familiar with Azure resources such as Azure Functions, App Service, Storage, Service Bus, Key Vault, etc.
  • Be able to lead on sub-projects, gathering requirements and working with stakeholders.
  • Have strong presentation skills, being able to present new learnings e.g. from spikes back to the team.
  • Act as a source of good practice for other non-core development teams for example offering code reviews or demoing MLOps and CML pipelines.
  • Begin to influence the wider organization, for example influencing ML strategy, test strategy, or security policies as code. Where a principal developer is expected to seek out organisation wide impact, a senior ML engineer is expected to influence outside of their team, for example their guild.
  • Learning should not stop, a senior ML engineer should keep their skills fresh and bring new ideas to the team.

Please let the company know that you found this position on this Job Board as a way to support us, so we can keep posting cool jobs.