About 1,070 UK employers name TensorFlow somewhere on their careers pages, out of the 1.1 million pages we crawl — second only to PyTorch at roughly 1,200. The two numbers mean different things, though. PyTorch appears where something is being built; TensorFlow appears where something already runs.
That is the whole of this hire. You are not staffing a new project; you are taking custody of an estate that earns money, was written by people who have left, and cannot be switched off while somebody decides what to do with it.
Maintain, migrate or extend — decide the verb first
Three jobs hide behind the same advert. Maintaining means the system is acceptable and must stay acceptable: retrains on schedule, upstream data changes absorbed, no ambitions. Migrating means you have judged the stack a liability and want the models living elsewhere. Extending means the estate stays where it is and grows, in the framework you already have.
Teams that have not chosen ask for all three at once, which attracts the wrong applicants: an engineer energised by a migration is bored by custody inside two months, and one excellent at custody will quietly resist a rewrite for a year. Pick a verb, and say which in the advert.
If none of the three fits because the work is new, a PyTorch engineer is the sensible hire and the framework does not belong in the requirements.
Price the model before you price the rewrite
Almost every discussion about this framework becomes a discussion about leaving it, and nearly all start at the wrong end: the rewrite estimate. Start with what the model earns.
Get three figures onto one page. The model’s contribution: what would it cost you if, for a month, it returned nothing cleverer than the median prediction? For some fraud and pricing models that is large and defensible; for others it is a rounding error nobody has had the nerve to say aloud. The cost of standing still: pinned libraries out of security support, an unpatched base image, one host nobody dares rebuild. Then the rewrite, against what that engineer could otherwise deliver in the quarter.
A model worth a rounding error does not justify a rewrite; it justifies freezing it deliberately, recording that you did, and spending the quarter on work that pays. A central model held together by one fragile host justifies the rewrite now. Most estates contain both, so the answer is model by model. If the destination is a portable runtime rather than another training framework, the ONNX engineer guide covers that route.
Hiring somebody who will argue against the work
You are buying judgement as much as labour, so test the judgement while you are still cheap to disappoint.
Ask for an occasion when they recommended leaving a system exactly where it was, and what followed. Ask about a migration that went badly and where the estimate broke. Useful answers are specific and mildly unflattering: a bespoke training loop that behaved differently once rewritten, six weeks lost reproducing one number.
Be wary of enthusiasm. Anybody can be keen to replace an old framework with a current one, and an engineer whose professional identity rests on modern tooling is not a neutral adviser about whether your estate should move.
Interviewing for custody of something fragile
Custody is a real skill that interviews badly, because none of it sounds impressive. Ask about the unglamorous parts directly.
- Pinned dependencies. The model trains only under an old framework version, which needs an old Python, which needs an old driver stack. What do they do on Monday? Good answers reach for isolation — containerise it, get a reproducible build, stop the drift — rather than upgrading.
- An unowned runtime. Something has been answering prediction requests on a version nobody has touched in years. Ask what they establish first: “what calls it, and what breaks if it stops” is the answer you want, not a redesign.
- Training data that no longer exists. Ask how they would rebuild a training set from a pipeline since changed twice, and listen for somebody willing to say it may not be possible.
Where the models were written through the high-level frontend rather than the framework’s own interfaces, the Keras engineer guide is the closer match.
Deciding whether a retrained model is close enough
Retrain, port or upgrade and you have a different set of weights; the question is whether you may put them in front of customers. Most candidates have never had to answer it properly.
Identical output is not a realistic standard once anything has been retrained, so the conversation must be about tolerance. Strong candidates get there unprompted: hold a fixed evaluation set aside, compare how often the two models agree rather than only their aggregate accuracy, and break that down by segment, because a replacement can match on the headline metric while behaving differently for the small group that generates every complaint. Then read the disagreements by hand.
Ask what agreement rate they would accept before releasing. There is no correct number; having a considered view is the qualification.
The money, and the discount this pool gives away
Indicatively, permanent roles land around £65,000 to £100,000, depending on London weighting and how much of the job is modelling rather than keeping the lights on. Contract work runs roughly £450 to £650 a day outside IR35, the top of that band for whoever will own a migration rather than advise on one.
Here is the argument: maintenance briefs are routinely advertised £10,000 to £15,000 below comparable greenfield roles, and that is backwards. Keeping an undocumented, imperfectly reproducible, revenue-bearing model alive is harder than building a fresh one, because you cannot choose the problem, the data or the tools. Pay for the difficulty and you get somebody who has done it before, which here beats general brilliance.
Modesty reads as weakness on these CVs
There is a quiet distortion in this pool. Engineers whose recent years have gone on established systems have fewer fashionable nouns to offer, and many know it: they apply for less, negotiate softly, and compress years of load-bearing production work into a single line.
Correct for it as you read. Ask what the systems did, how long they ran unattended, and what went wrong at three in the morning. Then write the advert in the same register: describe the estate and the decision you are trying to reach about it, so the people who are good at this stop screening themselves out.