Generate a McCoy IQ challenge in 30 seconds.
See how candidates think and approach the work this role demands, before the phone screen. We'll build a video challenge from this posting, and you can edit or share it before it goes live.
Key details
Job Description
<div class="content-intro"><p><span class="TextRun SCXW107525881 BCX8" lang="EN-US" data-contrast="none"><span class="NormalTextRun SCXW107525881 BCX8">At Dragos, the mission is personal. The systems we protect deliver the water you drink, power your home, and keep the hospitals your community depends on running. Those critical infrastructure systems that power our civilization around the world are under attack every day by adversaries. When those systems fail, people are&nbsp;</span><span class="NormalTextRun SCXW107525881 BCX8">immediately</span><span class="NormalTextRun SCXW107525881 BCX8">&nbsp;at risk.&nbsp;</span><span class="NormalTextRun SCXW107525881 BCX8">We are the global leader in&nbsp;</span><span class="NormalTextRun SCXW107525881 BCX8">xOT</span><span class="NormalTextRun SCXW107525881 BCX8">&nbsp;cybersecurity, combining technology, threat intelligence, and expert services. The people here chose this work because they understand&nbsp;</span><span class="NormalTextRun SCXW107525881 BCX8">what is</span><span class="NormalTextRun SCXW107525881 BCX8">&nbsp;at stake</span><span class="NormalTextRun SCXW107525881 BCX8">. Here, you will find a remote-first mission-driven team across North America, Europe, the Middle East, and APAC built on authenticity, transparency, and trust. If safeguarding the systems that protect your family, friends, and community is the kind of work that matters to you, you are in the right place.</span></span><span class="EOP Selected SCXW107525881 BCX8" data-ccp-props="{&quot;134233117&quot;:false,&quot;134233118&quot;:false,&quot;201341983&quot;:0,&quot;335551550&quot;:1,&quot;335551620&quot;:1,&quot;335559685&quot;:0,&quot;335559737&quot;:0,&quot;335559738&quot;:120,&quot;335559739&quot;:160,&quot;335559740&quot;:360}">&nbsp;</span></p></div><p><strong><span data-contrast="auto">About the Role</span></strong><span data-contrast="auto">:</span><span data-ccp-props="{}">&nbsp;</span></p>
<p>We're looking for a Machine Learning Application Engineer to join our Engineering team. This role sits at the intersection of data engineering and applied ML. You'll be taking existing model types and putting them to work inside our product and data pipelines. You won't be training models from scratch or managing ML infrastructure, but you will be doing the thoughtful applied work of figuring out <em>which</em> techniques fit <em>which</em> problems, wiring them into our workflows, and making sure the outputs are reliable and useful.</p>
<p>You'll work closely with AI Engineers, Data Engineers, and product teams to bring ML-driven capabilities into the Dragos platform. Things like clustering network behaviors, classifying assets, and surfacing anomalies that matter for ICS/OT security analysts.</p>
<p><strong><span data-contrast="auto">Responsibilities</span></strong><span data-contrast="auto">:</span><span data-ccp-props="{}">&nbsp;</span></p>
<ul>
<li>Apply clustering, classification, anomaly detection, and other established ML techniques to cybersecurity data problems in the ICS/OT domain.</li>
<li>Integrate ML model outputs into existing data pipelines and product workflows, supporting both batch and near-real-time processing patterns.</li>
<li>Understand model behavior and translate research outputs into reliable pipeline components.</li>
<li>Work with Data Engineers to ensure ML-driven stages of the pipeline have clear data contracts, appropriate observability, and sane failure modes.</li>
<li>Evaluate open-source and third-party models for fit against specific use cases, knowing when to apply an existing tool versus when to escalate to a model-building effort.</li>
<li>Write clean, maintainable Python or Rust that other engineers can reason about, test, and extend.</li>
<li>Troubleshoot ML component behavior in production to diagnose issues with output quality, data drift, or unexpected edge cases.</li>
<li>Communicate clearly about what a model is doing, where it's uncertain, and how its outputs should (and shouldn't) be used downstream.</li>
</ul>
<p><strong><span data-contrast="auto">Qualifications</span></strong><span data-contrast="auto">:</span><span data-ccp-props="{}">&nbsp;</span></p>
<ul>
<li>4+ years of software engineering experience, with meaningful time spent working with ML outputs or data pipelines in a production context.</li>
<li>Strong Python skills; SQL proficiency; comfort reading and reasoning about data at scale.</li>
<li>Hands-on experience applying ML techniques including clustering (k-means, DBSCAN, hierarchical), classification, and anomaly detection.</li>
<li>Familiarity with scikit-learn and the surrounding Python ML ecosystem; you don't need to have implemented a neural net, but you should know how to use one responsibly.</li>
<li>Solid understanding of data pipeline concepts: how data flows, where it gets transformed, what can go wrong, and how to make failures visible.</li>
<li>Ability to evaluate whether a model's outputs are actually trustworthy for a given use case — not just whether accuracy metrics look good.</li>
<li>Strong written and verbal communication; comfortable explaining tradeoffs to both technical and non-technical stakeholders.</li>
<li>Cybersecurity domain knowledge — especially around threat detection, network behavior, or ICS/OT operations is a meaningful plus, but not a prerequisite.</li>
</ul>
<p><strong>Nice to Have:</strong></p>
<ul>
<li>Experience working with graph-based representations of network topology or asset relationships.</li>
<li>Familiarity with stream processing or event-driven architectures.</li>
<li>Exposure to containerized environments (Docker, Kubernetes) as a consumer/deployer, not necessarily an operator.</li>
</ul>
<p><strong><span data-contrast="auto">Compensation</span></strong><span data-contrast="auto">:</span><span data-ccp-props="{}">&nbsp;</span></p>
<ul>
<li data-leveltext="" data-font="Symbol" data-listid="3" data-list-defn-props="{&quot;335552541&quot;:1,&quot;335559683&quot;:0,&quot;335559684&quot;:-2,&quot;335559685&quot;:720,&quot;335559991&quot;:360,&quot;469769226&quot;:&quot;Symbol&quot;,&quot;469769242&quot;:[8226],&quot;469777803&quot;:&quot;left&quot;,&quot;469777804&quot;:&quot;&quot;,&quot;469777815&quot;:&quot;hybridMultilevel&quot;}" data-aria-posinset="1" data-aria-level="1"><span data-contrast="none">Salary: </span><span data-ccp-props="{&quot;134233117&quot;:false,&quot;134233118&quot;:false,&quot;335551550&quot;:0,&quot;335551620&quot;:0,&quot;335557856&quot;:16777215,&quot;335559738&quot;:0,&quot;335559739&quot;:0}">&nbsp;$225,000.00</span></li>
<li data-leveltext="" data-font="Symbol" data-listid="3" data-list-defn-props="{&quot;335552541&quot;:1,&quot;335559683&quot;:0,&quot;335559684&quot;:-2,&quot;335559685&quot;:720,&quot;335559991&quot;:360,&quot;469769226&quot;:&quot;Symbol&quot;,&quot;469769242&quot;:[8226],&quot;469777803&quot;:&quot;left&quot;,&quot;469777804&quot;:&quot;&quot;,&quot;469777815&quot;:&quot;hybridMultilevel&quot;}" data-aria-posinset="1" data-aria-level="1">Competitive Equity Package <span data-ccp-props="{&quot;134233117&quot;:false,&quot;134233118&quot;:false,&quot;335551550&quot;:0,&quot;335551620&quot;:0,&quot;335557856&quot;:16777215,&quot;335559738&quot;:0,&quot;335559739&quot;:0}">&nbsp;</span></li>
<li data-leveltext="" data-font="Symbol" data-listid="3" data-list-defn-props="{&quot;335552541&quot;:1,&quot;335559683&quot;:0,&quot;335559684&quot;:-2,&quot;335559685&quot;:720,&quot;335559991&quot;:360,&quot;469769226&quot;:&quot;Symbol&quot;,&quot;469769242&quot;:[8226],&quot;469777803&quot;:&quot;left&quot;,&quot;469777804&quot;:&quot;&quot;,&quot;469777815&quot;:&quot;hybridMultilevel&quot;}" data-aria-posinset="1" data-aria-level="1">Comprehensive Benefits Plan<span data-ccp-props="{&quot;134233117&quot;:false,&quot;134233118&quot;:false,&quot;335551550&quot;:0,&quot;335551620&quot;:0,&quot;335557856&quot;:16777215,&quot;335559738&quot;:0,&quot;335559739&quot;:0}">&nbsp;</span></li>
</ul>
<p><span data-ccp-props="{}">&nbsp;</span></p>
<p><span data-ccp-props="{}"><span data-contrast="none">#LI-NH1 #LI-REMOTE</span><span data-ccp-props="{&quot;134233117&quot;:false,&quot;134233118&quot;:false,&quot;335551550&quot;:0,&quot;335551620&quot;:0,&quot;335557856&quot;:16777215,&quot;335559738&quot;:240,&quot;335559739&quot;:240}">&nbsp;</span></span></p>
<p>&nbsp;</p><div class="content-conclusion"><p>Dragos is an Equal Opportunity Employer and considers applicants for employment without regard to race, color, religion, sex, orientation, national origin, age, disability, genetics, or any other basis forbidden under federal, state, or local laws. All new hires must pass a background check as a condition of employment.</p></div>
Audit details(provenance, verification trail, raw fields)
Core fields
dragos:5200695008Provenance
dragosVerification trail
This posting hasn't been probed by our closure verifier yet. Stream C runs on a rolling schedule against postings approaching the close-decision threshold.
See how we measure for definitions, or our corrections log for known issues. Found something wrong? Flag a correction.
