All jobs

Software Engineer (Machine Learning)

Netcraft

Manchester, Bath), United Kingdom · United Kingdom
Salary undisclosed
full_time
onsite
English

Posted 15h ago · Sep 26, 2026

Job description

<div class="content-intro"><p>&nbsp;</p> <p><strong>About Netcraft</strong></p> <p>Netcraft is the global leader in cybercrime detection and disruption. We’re a trusted partner for three of the four largest companies in the world and many large governments. We've blocked over 225 million cyber-attacks to date, and we take down around 33% of the world's phishing attacks.</p> <p>Our purpose and passion are focused on just one thing: protecting the world from cybercrime.</p> <p>That passion shapes how we work, too. We’re proud of our talented team and the value each person brings, and we’ve built a workplace where people feel supported and inspired. From strong benefits and wellness programs to meaningful collaboration and team connection.&nbsp;</p> <p>&nbsp;</p></div><p><strong><span data-contrast="none">The role</span></strong><span data-ccp-props="{}">&nbsp;</span></p> <p><span data-contrast="auto">We are looking for an engineer who wants to apply ML to a real adversarial problem, where attackers actively evolve to evade you and turn to increasingly complicated schemes.&nbsp; As part of the Novel Classification team, you’ll use machine learning and AI to identify fraudulent content on the Internet, from phishing sites to the full breadth of online scams.&nbsp;</span><span data-ccp-props="{"134233117":false,"134233118":false,"335559738":240,"335559739":240}">&nbsp;</span></p> <p><span data-contrast="auto">You’ll learn from experienced engineers and see your ideas in production within weeks, driving the automated blocking and takedowns that disrupt cybercrime at scale. Recent projects include multi-modal embeddings that power classification and search, LLM classifiers, computer vision models for logo detection, and ensemble predictors that combine visual and semantic signals. We keep a close eye on the field and adopt new models and techniques early when they look promising.</span><span data-ccp-props="{"134233117":false,"134233118":false,"335559738":240,"335559739":240}">&nbsp;</span></p> <p><span data-contrast="auto">You’ll work across the full lifecycle: training and evaluating models, serving them on our GPU-backed Kubernetes clusters, wiring them into production classification systems, and watching how they behave against live attack traffic.</span><span data-ccp-props="{"134233117":false,"134233118":false,"335559738":240,"335559739":240}">&nbsp;</span></p> <p><strong><span data-contrast="none">Day to day, you’ll be:</span></strong><span data-ccp-props="{}">&nbsp;</span></p> <ul> <li data-leveltext="" data-font="Symbol" data-listid="1" data-list-defn-props="{"335552541":1,"335559685":720,"335559991":360,"469769226":"Symbol","469769242":[8226],"469777803":"left","469777804":"","469777815":"multilevel"}" data-aria-posinset="1" data-aria-level="1"><span data-contrast="none">Building, evaluating and tuning the classifiers that decide what gets blocked and taken down.</span></li> <li data-leveltext="" data-font="Symbol" data-listid="1" data-list-defn-props="{"335552541":1,"335559685":720,"335559991":360,"469769226":"Symbol","469769242":[8226],"469777803":"left","469777804":"","469777815":"multilevel"}" data-aria-posinset="1" data-aria-level="1">Deploying and operating model serving infrastructure on Kubernetes, including LLM inference (e.g. vLLM).</li> <li data-leveltext="" data-font="Symbol" data-listid="1" data-list-defn-props="{"335552541":1,"335559685":720,"335559991":360,"469769226":"Symbol","469769242":[8226],"469777803":"left","469777804":"","469777815":"multilevel"}" data-aria-posinset="1" data-aria-level="1">Optimising models for high-volume, low-cost serving.</li> <li data-leveltext="" data-font="Symbol" data-listid="1" data-list-defn-props="{"335552541":1,"335559685":720,"335559991":360,"469769226":"Symbol","469769242":[8226],"469777803":"left","469777804":"","469777815":"multilevel"}" data-aria-posinset="1" data-aria-level="1">Running experiments against live data, measuring precision, recall and false positive rates, and using the results to decide what ships.</li> <li data-leveltext="" data-font="Symbol" data-listid="1" data-list-defn-props="{"335552541":1,"335559685":720,"335559991":360,"469769226":"Symbol","469769242":[8226],"469777803":"left","469777804":"","469777815":"multilevel"}" data-aria-posinset="1" data-aria-level="1">Integrating models into our production classification platforms.</li> <li data-leveltext="" data-font="Symbol" data-listid="1" data-list-defn-props="{"335552541":1,"335559685":720,"335559991":360,"469769226":"Symbol","469769242":[8226],"469777803":"left","469777804":"","469777815":"multilevel"}" data-aria-posinset="1" data-aria-level="1">Building the pipelines and monitoring behind the models: feature extraction, scheduled retraining, experiment tracking, and the metrics that prove a solution works.</li> <li data-leveltext="" data-font="Symbol" data-listid="1" data-list-defn-props="{"335552541":1,"335559685":720,"335559991":360,"469769226":"Symbol","469769242":[8226],"469777803":"left","469777804":"","469777815":"multilevel"}" data-aria-posinset="1" data-aria-level="1">Investigating and fixing issues in production, from model regressions to performance bottlenecks.</li> <li data-leveltext="" data-font="Symbol" data-listid="1" data-list-defn-props="{"335552541":1,"335559685":720,"335559991":360,"469769226":"Symbol","469769242":[8226],"469777803":"left","469777804":"","469777815":"multilevel"}" data-aria-posinset="1" data-aria-level="1">Working across the business with engineers and analysts who depend on our classifiers.<span data-ccp-props="{"134233117":false,"134233118":false,"335559738":240,"335559739":240}">&nbsp;</span></li> </ul> <p><strong><span data-contrast="none">What you’ll need to be successful</span></strong><span data-ccp-props="{}">&nbsp;</span></p> <ul> <li data-leveltext="" data-font="Symbol" data-listid="2" data-list-defn-props="{"335552541":1,"335559685":720,"335559991":360,"469769226":"Symbol","469769242":[8226],"469777803":"left","469777804":"","469777815":"multilevel"}" data-aria-posinset="1" data-aria-level="1"><span data-contrast="auto">Strong web fundamentals: HTTP, DNS, and above all how websites work, from request to rendered page. You'll use them both to understand the resources we classify and to build high-performance webservers.</span></li> <li data-leveltext="" data-font="Symbol" data-listid="2" data-list-defn-props="{"335552541":1,"335559685":720,"335559991":360,"469769226":"Symbol","469769242":[8226],"469777803":"left","469777804":"","469777815":"multilevel"}" data-aria-posinset="1" data-aria-level="1">A working understanding of machine learning fundamentals, such as training, evaluation, overfitting and precision/recall trade-offs. This could come from industry, research or substantial personal projects.</li> <li data-leveltext="" data-font="Symbol" data-listid="2" data-list-defn-props="{"335552541":1,"335559685":720,"335559991":360,"469769226":"Symbol","469769242":[8226],"469777803":"left","469777804":"","469777815":"multilevel"}" data-aria-posinset="1" data-aria-level="1">Good written and verbal communication skills. The work the team does is complex, and we must be able to articulate the impact of our work clearly and concisely, to a wide range of stakeholders.</li> <li data-leveltext="" data-font="Symbol" data-listid="2" data-list-defn-props="{"335552541":1,"335559685":720,"335559991":360,"469769226":"Symbol","469769242":[8226],"469777803":"left","469777804":"","469777815":"multilevel"}" data-aria-posinset="1" data-aria-level="1">An empirical mindset. You design experiments, measure outcomes, and use metrics to validate and demonstrate impact.</li> <li data-leveltext="" data-font="Symbol" data-listid="2" data-list-defn-props="{"335552541":1,"335559685":720,"335559991":360,"469769226":"Symbol","469769242":[8226],"469777803":"left","469777804":"","469777815":"multilevel"}" data-aria-posinset="1" data-aria-level="1">Willingness to learn Go and modern Perl, including asynchronous programming.</li> <li data-leveltext="" data-font="Symbol" data-listid="2" data-list-defn-props="{"335552541":1,"335559685":720,"335559991":360,"469769226":"Symbol","469769242":[8226],"469777803":"left","469777804":"","469777815":"multilevel"}" data-aria-posinset="1" data-aria-level="1">Strong attention to detail and a real sense of responsibility. Customers act on our classifications, and Netcraft's reputation depends on getting them right.<span data-ccp-props="{"134233117":false,"134233118":false,"335559738":240,"335559739":240}">&nbsp;</span></li> </ul> <p><strong><span data-contrast="none">Bonus points if you have</span></strong><span data-ccp-props="{}">&nbsp;</span></p> <ul> <li data-leveltext="" data-font="Symbol" data-listid="3" data-list-defn-props="{"335552541":1,"335559685":720,"335559991":360,"469769226":"Symbol","469769242":[8226],"469777803":"left","469777804":"","469777815":"multilevel"}" data-aria-posinset="1" data-aria-level="1"><span data-contrast="auto">A keen interest in cybercrime or cybersecurity.</span></li> <li data-leveltext="" data-font="Symbol" data-listid="3" data-list-defn-props="{"335552541":1,"335559685":720,"335559991":360,"469769226":"Symbol","469769242":[8226],"469777803":"left","469777804":"","469777815":"multilevel"}" data-aria-posinset="1" data-aria-level="1">Experience fine-tuning models, including evaluation.</li> <li data-leveltext="" data-font="Symbol" data-listid="3" data-list-defn-props="{"335552541":1,"335559685":720,"335559991":360,"469769226":"Symbol","469769242":[8226],"469777803":"left","469777804":"","469777815":"multilevel"}" data-aria-posinset="1" data-aria-level="1">Experience with LLM agents, evaluation &amp; serving (e.g. vLLM or llama.cpp).</li> <li data-leveltext="" data-font="Symbol" data-listid="3" data-list-defn-props="{"335552541":1,"335559685":720,"335559991":360,"469769226":"Symbol","469769242":[8226],"469777803":"left","469777804":"","469777815":"multilevel"}" data-aria-posinset="1" data-aria-level="1">Familiarity with cloud-native technologies such as Kubernetes, Flux, Argo and API gateways.</li> <li data-leveltext="" data-font="Symbol" data-listid="3" data-list-defn-props="{"335552541":1,"335559685":720,"335559991":360,"469769226":"Symbol","469769242":[8226],"469777803":"left","469777804":"","469777815":"multilevel"}" data-aria-posinset="1" data-aria-level="1">Experience with multi-modal models, embeddings or similarity search at scale.</li> <li data-leveltext="" data-font="Symbol" data-listid="3" data-list-defn-props="{"335552541":1,"335559685":720,"335559991":360,"469769226":"Symbol","469769242":[8226],"469777803":"left","469777804":"","469777815":"multilevel"}" data-aria-posinset="1" data-aria-level="1">Experience with ML experiment tracking and workflow tooling, such as MLflow or Argo Workflows.</li> <li data-leveltext="" data-font="Symbol" data-listid="3" data-list-defn-props="{"335552541":1,"335559685":720,"335559991":360,"469769226":"Symbol","469769242":[8226],"469777803":"left","469777804":"","469777815":"multilevel"}" data-aria-posinset="1" data-aria-level="1">Experience with SQL databases, including writing and optimising queries against large datasets.<span data-ccp-props="{"134233117":false,"134233118":false,"335559738":240,"335559739":240}">&nbsp;</span></li> </ul> <p><span data-contrast="auto">Preferably based in London, though Manchester and Bath are also options.</span><span data-ccp-props="{}">&nbsp;</span></p> <p><span data-contrast="none">At&nbsp;Netcraft&nbsp;we strongly believe in individual growth and development. Even if you&nbsp;can't&nbsp;tick every box above right now, please&nbsp;don't&nbsp;let it put you off applying.</span><span data-ccp-props="{}">&nbsp;</span></p> <p><strong>The Reward Package:</strong></p> <div class="ewa-rteLine"> <ul> <li>33 days annual leave - includes public holidays which can be worked if you prefer</li> <li>Generous enhanced family leave and pay</li> <li>Enhanced co
Eligibility checker
Check an offered salary against the published general salary floor for a sponsoring country.

Loading thresholds…

Apply for this role
Checking your session…
Or apply on the company site