About this role.
Sona is hiring a Senior Machine Learning Engineer to help scale a demand-forecasting platform for restaurant chains. The engineer will work within a two-person ML team, producing half-hourly demand forecasts in a complex operational setting with feedback loops and variable data quality. The role owns client launches end-to-end, including data validation, model selection, UAT, go-live, monitoring, and client communication. Candidates need strong production ML and Python skills, ideally including time-series forecasting, and should be comfortable using AI development tools as part of daily work.
Role DNA
A quick view of the complexity, pace, ownership and collaboration implied by the job description.
Job Complexity
5/5Pace & Pressure
5/5Autonomy Level
5/5Communication Load
4/5Salary analysis
Estimated compensation compared with the broader UK market for similar roles.
Core skills
Skills and capabilities most closely associated with this opportunity.
Cover letter sample
Dear Hiring Team,
I am excited to apply for the Senior Machine Learning Engineer role at Sona. My experience delivering production machine-learning systems, particularly forecasting solutions operating on imperfect real-world data, aligns closely with your need to scale reliable client-facing demand prediction products.
I would bring strong Python and scientific ML expertise, pragmatic model-selection judgement, and an end-to-end approach spanning data validation, deployment, monitoring, and iterative improvement. I am also comfortable translating technical performance into operational outcomes for non-technical stakeholders and working closely with clients during launches.
Sona’s focus on useful, deployed AI for frontline businesses is especially compelling, and I would welcome the opportunity to help build dependable systems that improve customer operations.
Sample interview questions
I would begin by auditing source completeness, timestamp consistency, granularity, target definitions, and leakage risks. I would establish a simple, robust baseline, use time-aware validation splits, and select a model based on both forecast accuracy and operational reliability. Before go-live, I would agree acceptance criteria with the client, run UAT against realistic scenarios, and ensure monitoring and rollback procedures are in place.
I would investigate whether the issue is caused by data quality, distribution shift, a changed operating process, or a weakness in the model assumptions. I would compare live inputs and prediction errors with historical baselines, communicate the likely business impact clearly, and deploy a safe mitigation such as a fallback forecast or retrained model where appropriate. I would then document the root cause and add monitoring to detect the same failure mode earlier.
I use rolling or expanding-window backtests so that each evaluation reflects the information that would have been available at prediction time. Features are generated strictly from past data, and I check that calendar, promotions, and operational inputs would genuinely be known in advance. I also evaluate across stores, periods, and unusual demand conditions rather than relying on one aggregate metric.
I would explain the forecast in terms of the operational decision it supports, such as staffing or food preparation, rather than beginning with model architecture. I would describe uncertainty, expected error ranges, and the practical trade-offs of over- versus under-forecasting. Regular feedback from the stakeholder would help validate whether the output is useful and reveal operational changes that the model should account for.
I use AI coding tools to accelerate routine development, explore implementations, generate tests, and improve documentation, while retaining responsibility for design, validation, security, and correctness. For ML systems, I verify generated code carefully, especially around data transformations, leakage, evaluation logic, and deployment behaviour. The goal is faster iteration without weakening engineering discipline.
Running a frontline business is an operational puzzle most software has never touched. Shift-by-shift labour costs, compliance that changes by region and by role, and margins thin enough that a badly built rota can sink a quarter. It’s a harder problem than most white-collar SaaS, and yet frontline sectors employ 80% of the global workforce and have received about 1% of the last decade’s software investment.
We think that’s because the problem needed AI, not just better software, before it was solvable. Frontline organisations sit on enormous amounts of operational data. Used properly, that data lets agents take on real parts of running the business rather than just reporting on it. That’s what we’re building at Sona, and it’s early enough that the systems you build now will still be foundational in three years.
We’ve raised over $100M from N47, Felicis, Gradient and Northzone, signed more than 100 enterprise customers across the UK and US, and opened offices in London, New York, Austin and Lisbon. More on working at Sona here.
About the Role
You’ll join a two-person ML team and a forecasting system making half hourly demand predictions across diverse targets for multiple restaurant chains. Our forecasting models enter into a complex environment with key machine and human decisions being made on their predictions, facing feedback loops and a highly variable environment. The system works – the challenge now is scaling it from a handful of clients to 100s.
You’ll own client launches end-to-end: validating data, selecting models, running UAT, going live, and monitoring performance afterwards. You’ll join client calls, build relationships, and understand what actually matters on the ground – not just whether the model is accurate, but whether the kitchen prepped the right amount of food.
You’ll love this role if:
You enjoy taking ownership of the product and outcome end-to-end. Machine learning at Sona is a success if we have happy clients running successful businesses as well as the models which are best in industry
You have a focus on solving the problem and when given the choice between “complicated and shiny” vs “get something simple in front of a user”, you choose the latter
You’re excited by working with our industry experts to really understand what’s happening in our client’s businesses and the realities of working there
You see beyond the data to the world that resulted in this data generating process, the issues that come with it and the opportunity that it gives us
You’re experienced in and excited by taking a machine learning project from business idea to deployed production system
You default to AI tools for development and you’re excited by what they can achieve for ML. You use Claude Code, Cursor, or equivalent daily – not as a novelty, but as your standard working mode
Our role won’t be for you if:
You’re hoping to do research and publish research papers as a key element of the work that you do
You’re looking to move into a less technical, more managerial role
You’re keen to get your hands on fancy new technology X and apply it to something
You prefer to work on one thing and make it perfect before moving on – the role requires pragmatism, parallelism, and iterative improvement
Requirements
You’ll need these skills/experience to be successful:
Production ML experience, with a track record of deploying ML systems that handle messy data, fail gracefully, and need monitoring
Strong ML fundamentals – you can reason about trade-offs in practice, explain the “why” behind feature and model choices, and make good judgement calls when something unexpected happens
Client-facing deployment experience – you’ve personally owned an ML deployment end-to-end and are comfortable on calls with non-technical stakeholders
Strong programming skills in Python, including the ML/scientific Python stack (e.g. numpy, scikit-learn)
Daily use of AI development tools (Claude Code, Cursor, Copilot or equivalent) as your default working mode
It would be great if you have experience in some of these areas too:
Forecasting, time-series, or demand-planning – someone who understands lag features, calendar effects, and evaluation integrity intuitively will ramp significantly faster
Our stack: Python, scikit-learn, MLflow, Docker, GCP
A small team where ownership is wide and context-switching is normal
Benefits
Salary: £95,000-£110,000
Fully remote (European timezones)
Share options
35 days annual leave (25 days standard plus 10 flexible public holiday days)
Extra day of leave for every year of service
Pension contributions matched up to 5%
Comprehensive health insurance
Enhanced parental leave & pay
Salary sacrifice childcare scheme (Workplace Nursery)
Co-working space stipend for those based outside London
Annual all expenses paid team retreats
The latest Macbook and equipment budget for your home office
Professional development budget
Unlimited free books
Note: this represents a typical benefits package for a UK-based, full-time employee. Exact details may vary based on location and employment type but we try to be as fair as possible to all of our team members. Please ask your contact in the Talent team to clarify the available benefits for you.
This job listing has been manually reviewed by the Jobicy Trust & Safety Team for compliance with our posting guidelines, including verification of the company's legitimacy, accuracy of job details, clarity of remote work policy, and absence of misleading or fraudulent content.







