Build the systems, not the slide about the systems.
We are hiring across engineering and operations, and taking interns. Every role here involves client contact, written reasoning, and ownership of something that has to keep working after it ships.
- Open roles
- 10
- Full-time positions
- 10 across 8 roles
- Working location
- Remote
Engineering
Senior engineers who have shipped systems and maintained them afterwards. Every role here involves client contact — the people who build the thing explain the thing.
01AI Engineer, Agents & Automation
Build the agentic systems at the centre of what we do: multi-step workflows that call real tools, enforce written policy in code, and stop for a person when the stakes justify it.
AI261001AI systemsSenior2 positions
AI Engineer, Agents & Automation
Build the agentic systems at the centre of what we do: multi-step workflows that call real tools, enforce written policy in code, and stop for a person when the stakes justify it.
What you would work on
- Design and build tool-using agents with typed, validated tool contracts and narrow permissions
- Own the durable workflow state that lets a run pause for three days waiting on an approver and resume cleanly
- Write the deterministic authority layer — amount ceilings, rate limits, always-review action classes — in code, outside the model
- Build the evaluation set before the prompt, and keep it running on every change to prompts, schema or retrieval
- Instrument every run so a decision can be explained to a client months later
- Sit in client conversations and help decide what a system is allowed to do on its own
What we are looking for
- Several years building production software, with real ownership of something that ran and was maintained
- Strong Python or TypeScript, and willing to work in both
- Experience with LLM APIs well beyond prototypes — retries, timeouts, cost, and the specific ways they fail
- A habit of reaching for ordinary code when a model is not the right tool
- Clear written reasoning. Our decisions live in documents as much as in commits.
Nice to have
- Durable execution engines (Temporal, Inngest) or your own queue-backed equivalent
- You have deleted an agent, replaced it with a scheduled job, and been right to
Quote AI261001
02Applied ML Engineer, Retrieval & Evaluation
Own retrieval quality as an engineering problem — chunking, hybrid search, re-ranking, grounding — and the measurement that proves any of it worked.
ML261002RetrievalMid–Senior1 position
Applied ML Engineer, Retrieval & Evaluation
Own retrieval quality as an engineering problem — chunking, hybrid search, re-ranking, grounding — and the measurement that proves any of it worked.
What you would work on
- Build ingestion pipelines that survive the real corpus rather than the demo one
- Design chunking that follows the structure a document already has instead of counting characters
- Combine vector and lexical retrieval, re-rank the union, and measure what each stage contributed
- Set abstention thresholds so a system can answer “I do not have anything on that”
- Build evaluation harnesses that score retrieval separately from generation, because the fixes are different
What we are looking for
- Solid Python, and comfort with embeddings, vector stores and classical information retrieval
- You can explain precision and recall at k to a client without jargon
- Experience tuning a retrieval system against a measured set rather than impressions
- Healthy scepticism about any benchmark number that did not come from your own corpus
Nice to have
- Cross-encoder re-ranking in production
- Document intelligence: OCR, layout analysis, table extraction
Quote ML261002
03Senior Full-Stack Engineer
Take a product from scope to launch — schema, API, interface, deployment. Most of what makes an AI feature usable is ordinary software built properly.
FS261003Product engineeringSenior2 positions
Senior Full-Stack Engineer
Take a product from scope to launch — schema, API, interface, deployment. Most of what makes an AI feature usable is ordinary software built properly.
What you would work on
- Own features end to end: data model, API, interface, tests, deployment
- Design the operator surfaces that make these systems workable — queues, approvals, overrides, audit history
- Build interfaces for the hundredth use of the morning, not the first
- Keep accessibility and performance inside the component rather than in a later audit
- Leave behind a codebase another engineer can pick up without you
What we are looking for
- Strong TypeScript and React, and comfort in a backend language — Python or Node
- Real relational database experience: you design schemas, not just query them
- You write tests for the things that break and skip the ones that do not
- Taste. You notice when an interface is tedious and you care enough to fix it.
Nice to have
- Design-system or accessibility depth
- You have modernised something that had outgrown its original design without a rewrite
Quote FS261003
04Backend Engineer, APIs & Integrations
Build the connective layer between systems that were never designed to talk to each other, and the monitoring that tells us when one end of it changes.
BE261004IntegrationsMid–Senior1 position
Backend Engineer, APIs & Integrations
Build the connective layer between systems that were never designed to talk to each other, and the monitoring that tells us when one end of it changes.
What you would work on
- Build integrations with idempotency keys, backoff and circuit breaking as defaults rather than additions
- Design event-driven flows: webhooks, queues, retries, dead letters, replay
- Keep secrets server-side and document how they rotate
- Instrument throughput, error rate and spend, then act on what it shows
- Write the runbooks for the failures that will actually happen
What we are looking for
- Strong Python or Node, and fluency with HTTP, auth, and the reality of third-party APIs
- You have been paged for a duplicated side effect and fixed it at the root
- Experience with queues and asynchronous processing
- Clear thinking about failure: partial, delayed, duplicated, out of order
Nice to have
- CRM, billing or support-desk integration experience
- Infrastructure-as-code
Quote BE261004
05Database Engineer
Own the data layer: schema design, query performance, and migrations that run on a Tuesday afternoon without anyone holding their breath.
DB261005DataMid–Senior1 position
Database Engineer
Own the data layer: schema design, query performance, and migrations that run on a Tuesday afternoon without anyone holding their breath.
What you would work on
- Design schemas that still make sense after the third feature nobody planned for
- Diagnose and fix query performance with evidence rather than guesses
- Write migrations that are reversible, online and boring
- Build the metric layer behind our conversational analytics work — certified definitions with owners and review dates
- Set up row- and column-level access so permissions are enforced before a query is ever planned
What we are looking for
- Deep PostgreSQL: indexing, query planning, locking, partitioning
- Experience with analytical workloads as well as transactional ones
- You have recovered from a bad migration and changed your process afterwards
- Comfort with pgvector or a dedicated vector store
Nice to have
- Warehouse experience — BigQuery, Snowflake or DuckDB
- dbt or an equivalent transformation layer
Quote DB261005
06Infrastructure & Reliability Engineer
Make what we build deployable, observable and cheap enough to run. Agentic systems fail in ways ordinary services do not, and the instrumentation has to see it.
IN261006InfrastructureMid–Senior1 position
Infrastructure & Reliability Engineer
Make what we build deployable, observable and cheap enough to run. Agentic systems fail in ways ordinary services do not, and the instrumentation has to see it.
What you would work on
- Own deployment, environments and infrastructure-as-code across client projects
- Build the observability layer: logging, tracing, alerting, and model-spend monitoring
- Set cost ceilings and rate limits that hold during a surprising week
- Harden upload handling, secret management and permission boundaries
- Keep CI fast enough that people actually wait for it
What we are looking for
- Strong Linux and containers, and real depth in at least one major cloud
- Terraform or equivalent, with state you would be happy to let someone else touch
- Practical security instincts: least privilege, rotation, blast radius
- You treat an incident as a systems question, not a person question
Nice to have
- Running LLM workloads and watching their cost curve closely
- Self-hosted model serving
Quote IN261006
Operations
A studio this size cannot afford administration to be an afterthought. These roles exist so engineering time goes to engineering.
07Delivery Operations Lead
Keep engagements running — scope, schedule, communication, and the unglamorous coordination that decides whether good engineering reaches a client on time.
DO261007DeliverySenior1 position
Delivery Operations Lead
Keep engagements running — scope, schedule, communication, and the unglamorous coordination that decides whether good engineering reaches a client on time.
What you would work on
- Run engagement planning: scope, milestones, capacity, and honest re-planning when something slips
- Be the operational point of contact for clients between technical conversations
- Keep decisions written down and findable, so nothing important depends on someone remembering it
- Track where time actually goes and surface it before it becomes a budget conversation
- Protect the team’s focus: fewer things in flight, each one finished properly
What we are looking for
- Experience running software delivery in a studio, agency or product team
- You are comfortable telling a client something is slipping — early, and with a proposal attached
- Strong written communication: you can summarise a technical decision for a non-technical stakeholder without flattening it
- Enough technical literacy to ask the right follow-up question
Nice to have
- You have worked with a small senior team rather than a large delivery organisation
Quote DO261007
08Studio Operations Associate
Run the business side of a small studio: contracts, invoicing, scheduling, tooling, and the quiet administration that otherwise eats engineering time.
SO261008Business operationsMid1 position
Studio Operations Associate
Run the business side of a small studio: contracts, invoicing, scheduling, tooling, and the quiet administration that otherwise eats engineering time.
What you would work on
- Own contracting, invoicing and the payment chase from start to finish
- Manage scheduling and the logistics of client engagements
- Administer studio tooling, licences and access
- Keep internal records tidy enough that any question can be answered in a minute
- Improve the processes you inherit rather than only operating them
What we are looking for
- Experience in operations, finance administration or office management
- Extremely organised, and comfortable owning something without being chased for it
- Clear, direct, polite written communication with clients and suppliers
- Discretion with commercial and personal information
Nice to have
- A professional-services or consultancy setting
- Familiarity with contract and invoicing tooling
Quote SO261008
Internships
Twelve weeks, with a senior engineer alongside you throughout. We take the right people rather than filling a fixed number of seats, so there is no headcount listed.
09Software Engineering Intern
Work on a real part of a real project with a senior engineer alongside you. Interns here ship something that goes into a codebase, not a side project nobody opens again.
SI261009Engineering12 weeksInternship
Software Engineering Intern
Work on a real part of a real project with a senior engineer alongside you. Interns here ship something that goes into a codebase, not a side project nobody opens again.
What you would work on
- Build and ship a scoped feature, with review and pairing throughout
- Write the tests and the documentation for what you build
- Join client conversations — first as a listener, then as a contributor
- Take part in code review in both directions
What we are looking for
- Studying, recently graduated, or self-taught and ready to show us what you have made
- Comfortable in at least one language and curious about the others
- You can read unfamiliar code and form a useful question about it
- You would rather ask early than stay stuck quietly
Nice to have
- Something you have built and can walk us through — any size, any level of polish
Quote SI261009
10AI/ML Intern
Work on retrieval, evaluation and agent behaviour with a senior engineer alongside you. A lot of this job is measurement, and measurement is a good place to learn.
AM261010AI systems12 weeksInternship
AI/ML Intern
Work on retrieval, evaluation and agent behaviour with a senior engineer alongside you. A lot of this job is measurement, and measurement is a good place to learn.
What you would work on
- Build and extend the evaluation set for a live project
- Run experiments on chunking, retrieval and ranking, and write up what you find
- Help instrument traces so failures can be analysed instead of guessed at
- Present findings to the team — including the experiments that did not work
What we are looking for
- Comfortable with Python, and at home in both a notebook and a repository
- Enough statistics to recognise when a result is not actually a result
- Interest in why systems fail, not only in what they can do
- You can describe a method clearly in writing
Nice to have
- Coursework or projects in information retrieval, NLP or evaluation
- You have been sceptical of a benchmark and gone looking for why
Quote AM261010
Four steps, no busywork.
The whole process is designed to take a few hours of your time, not a few weekends. You will hear from us either way, with a reason.
- 01
A short written exchange
Tell us what you have built and what you want to build next. We read every application ourselves — there is no screening layer and no automated ranking.
- 02
A conversation about your work
Forty-five minutes on something you have actually shipped: what you chose, what you got wrong, and what you would do differently. No whiteboard algorithms.
- 03
A short exercise, or your own code
A small, realistic problem that takes a couple of hours — or we read something you have already written instead, if you would rather. Your choice, not ours.
- 04
Meet the people you would work with
The whole team, talking about how an engagement actually runs. You should be interviewing us at least as hard by this point.
Send us something real.
Open the role above and use its apply button — the form takes one question at a time and every field is optional. A CV is welcome, but a link to something you built tells us far more.
- Working location
- Remote
- Open roles
- 10, 10 positions
- Reference
- Quote the job ID on every application