We hire the way we ship — deliberately, with clear gates.
If you've worked in regulated science and been frustrated by the toolchain, you'll feel at home. The bar is high, the compensation matches, and the work outlasts you in regulatory ledgers.
Regulatory-grade engineering, not compliance theatre
FDA Jan 2025 AI framework, EMA reflection paper, ICH Q2(R2), ALCOA+ — these aren't boxes we tick. They're the design constraint. You'll learn pharma data integrity at depth most engineers never touch.
02
Promotion-gate culture
We don't ship AI defaults until they clear strict statistical validation. New detection backends launch as opt-in, get measured against an expert-curated corpus, and only become default when they cross a published threshold. If you've watched AI startups ship and patch, this will feel like sanity.
03
Real instrument data, multi-modal by default
Bruker FIDs, Agilent-Varian acquisitions, real LC-MS feature tables, HRMS exact masses, MS/MS fragmentation. No synthetic-only demos. The platform fuses these as one evidence stack with cross-modal contradictions surfaced as first-class warnings.
04
Weekly ship cadence, in public
Every existing endpoint and regression test stays green as new evidence layers land. We publish our recent ships, our validation corpus, our gate thresholds. You'll see your work referenced in changelogs and white papers within weeks.
What you'll actually work on
Six examples of recent work, written like a teammate would describe them.
These aren't hypothetical roadmap items — they're capabilities that shipped in the last few release cycles. Open the docs to verify. The work is real.
ML systems
Close a corpus-vs-detector granularity gap with a clustering layer
Expert NMR references count chemical environments; peak-pickers find multiplet lines. Build the algorithm that bridges them, validate it against a 20-fixture corpus, and clear the strict median-Δ≤2 promotion gate.
Backend · Python
Cut a 5.5-minute Bruker FT pipeline to 3.6 minutes
Profile a 98,304-point ¹³C dense-spectrum hot path. Find the bottleneck without changing the public response envelope or any audit ledger entry. Re-bench against the regression corpus and ship the gain by fixture_id.
Frontend · TypeScript
Build a detector-agnostic results panel
Two detection backends return different per-peak shapes (GSD's open `metadata` dict vs legacy's typed top-level fields). Design the adapter + unified envelope so a single React component renders both, columns adapting to whichever fields the backend populated.
Scientific computing
Per-peak QC fit metrics, surfaced honestly
Expose reduced χ², RMSE, FWHM, S/N, and baseline σ as a green / yellow / red traffic light per peak. Catch the case where one detector reports raw signal-domain values while another reports normalised — and surface the units mismatch instead of papering over it.
Validation infrastructure
A regression test that fails by fixture_id
Generate per-fixture A/B JSON between two detection backends on a 20-fixture corpus. Wire it into CI so any > 50% drift on any single fixture surfaces with the failing fixture_id called out by name.
Product · Regulatory
Wire spectroscopy evidence into regulatory action items
Close the loop between a detected impurity, a residual-solvent class, an ICH Q3D limit, and a dossier-linked action item — with the audit ledger entry preserved every step of the way.
How we work
Working principles, extended from the architecture.
Our four design commitments don't stop at the codebase. They shape how we run meetings, how we review PRs, and how we decide what to ship.
Additive, never destructive.
Every endpoint, every regression test, every white-paper claim must stay green across releases. New evidence layers ship alongside old ones; we don't break the contract.
Write the doc with the code.
The technical white paper is part of the product, not a separate deliverable. Every important change updates the relevant section in the same task that ships the change.
Pair-by-default for cross-discipline work.
ML engineer + analytical chemist + regulatory affairs reviewer on the same feature. The combinations are the moat.
Strong opinions, gated by data.
Have a view. Then publish the corpus, the gate, and the threshold that would change your mind. We pre-register validation methodology before shipping.
Our hiring philosophy
Published rubric. Same one for every candidate.
We test for
✓Pharma / regulated-science domain literacy (or willingness to acquire it fast)
✓System design under audit constraints — immutability, traceability, signoff
✓Honest debugging — describing what you'd measure, not what you'd guess
✓Code review against published methodology (we'll share a real PR)
We won't waste your time on
✗Leetcode-style algorithmic puzzles unrelated to the work
✗Whiteboard coding without a real spec, real data, or real failure modes
✗Trick-question system-design hypotheticals that ignore regulatory constraints
✗Cultural-fit interviews without a written rubric
Open roles
Honest about what's open. Honest about what isn't.
We don't post placeholder roles to look like we're hiring. When a category is empty, register interest — we route shortlisted intros directly to the hiring manager when the role does open.
Updated Jun 2026
Engineering
Not currently hiring
Backend (Python · FastAPI), Frontend (TypeScript · Next.js · React), ML systems, infrastructure, data integrity.
The benefits below are the ones we picked because they make the work better. The standard health / parental / retirement floor is covered too — it's the floor, not the differentiator.
Conference + publication budget
ACS, Pittcon, RSC-ICMS, ENC, ASMS, plus your travel + paper-processing fees. We want you publishing what you build.
Scientific compute, not just dev laptops
Real budget for retraining shift-prediction models, running corpus expansions, and benchmarking on instrument data — not just running unit tests.
On-instrument time
Quarterly site visits to partner labs. The platform feels different after you've watched an analyst use it for a real submission.
Remote-friendly within hub timezones
Most roles support hybrid or remote within Americas / EMEA / APAC. We anchor synchronous work to your office timezone, not a single HQ.
Transparent bands, geo-parity within seniority
Salary bands published at offer time, indexed annually. Equity meaningful at every level. Region parity within seniority — we don't discount EMEA / APAC offers below market.
Health, parental, retirement — covered as the floor
Comprehensive medical / dental / vision in every hub, 16 weeks paid parental leave, retirement match. Standard expectations; not a perk.
Interview process
Four stages, written down, with timelines you can plan around.
01
Intro call
30 min
Hiring manager. We share the role spec, the team you'd work with, the actual problems open. You share what you'd want to build. No screen-share, no surprise quizzes.
02
Domain conversation
60 min
A specialist on the team. We walk through a real shipped artifact (a Phase release, a validation gate, a regulatory dossier template) and you tell us what you'd change, what you'd measure, what you'd test.
03
Take-home (paid)
4-6 hours
A real PR-style task scoped to a few hours. We pay for your time. You get the same spec a teammate would get and you can ask clarifying questions throughout. No artificial time limit.
04
Team panel + reference
Half day
Three short conversations with future peers — one technical, one cross-functional, one with someone whose work yours would block on. We ping a reference of your choice. Decision within five business days.
Hubs & remote
Three hubs. Remote within your hub timezone.
We anchor synchronous work to your office timezone — never a single HQ. The hubs are chosen for proximity to pharma R&D and regulatory ecosystems.
Boston, MA
Headquarters · Americas
Hybrid (2-3 days in-office) within MA, NH, RI · Remote within ET / CT timezones
London, UK
EMEA hub · Regulatory liaison
Hybrid within Greater London · Remote within GMT / CET timezones
Singapore
APAC hub
Hybrid within Singapore · Remote within SGT / JST timezones
Don't see your role?
Tell us what you'd build. The strongest hires we've made started with a one-line pitch that didn't match any open posting.