Forward deployed engineering: the complete guide / Building the function
The productization loop
The productization loop is the mechanism that turns one customer's custom work into a capability every customer gets. It needs three things: a fixed cadence, a named owner, and a stop rule. First Round Review's version of the stop rule is the useful one: expand scope when the work creates repeatable software value, and halt when the iteration only serves a single customer. Without this loop, embedded engineering produces what a16z describes as bespoke deployments impossible to maintain or upgrade, where revenue grows and nothing compounds.
Key takeaways
- Three requirements: a fixed cadence, a named owner with authority to promote work into the platform, and a stop rule.
- The stop rule: expand scope when the work creates repeatable value, stop when the next iteration only serves one customer.
- AWS names the artefacts this loop should produce: domain ontologies, evaluation frameworks and capability registries.
- The measure of whether the loop is running is revenue per embedded engineer rising over time. Flat means it is not.
This is the mechanism that separates a moat from a cost centre. Everything else about the model is downstream of whether this loop runs.
What the loop is
At a fixed interval, somebody with authority asks one question: of everything we built for customers this period, what generalises?
Then they decide what gets promoted into the platform, who does that work, and when. And they apply a stop rule to whatever does not generalise.
That is the whole mechanism. It sounds trivial and almost nobody runs it, because it requires taking engineers off customer work in the same period the customer work is visibly urgent.
Why it decides everything
The economic case for embedding engineers is that the margin you spend buys learning that improves the product for every future customer. The engineer costs real money now and the platform gets better, so the next deployment is cheaper.
Take out the second half and you have paid the cost without the mechanism. a16z's Marc Andrusko describes the outcome as thousands of bespoke deployments impossible to maintain or upgrade: revenue scales, nothing compounds, and there is no durable advantage.
The industry shorthand for the intended shape is a rough custom solution first and a paved path second. The rough version proves the problem is real and the paved version makes the next one cheap. Skipping the second step is how a software company becomes a labour business without noticing.
The three requirements
A cadence. Weekly or fortnightly, on the calendar, with the same question each time. Not "when we have bandwidth", because there will not be any. A standing meeting whose only agenda item is what generalises.
A named owner with authority. Somebody who can say a capability is going into the platform and assign the work. If the answer to who decides is a committee, it is nobody. This is also why the reporting line matters: an owner inside a services unit with its own margin target has an incentive against promoting work, because a platform capability is revenue they no longer bill.
A stop rule. First Round Review states it well: embrace scope expansion when it creates repeatable software value, and halt when iterations cap at single-customer utility. Somebody has to apply that weekly, out loud, and decline work.
What the loop should produce
Not a document. Working infrastructure that the next deployment starts from.
The AWS partner programme names the modern version of these artefacts directly: reusable delivery harnesses including domain ontologies, evaluation frameworks and capability registries.
Translated into things you can build:
Domain models. The shapes that recur across customers in your market, so each deployment does not re-model the same concepts.
Evaluation frameworks. The checks that prove a deployment works, reusable across customers. On an AI-native engagement this is the highest-leverage artefact, because it is also the handover deliverable that lets a customer's team own the system. Eval-driven development covers the method.
Connectors and integrations. Written once for the systems that keep appearing.
A capability registry. A list of what already exists, so an engineer starting a deployment can find it. Without this, capabilities get rebuilt because nobody knew they were there.
How to run the meeting
Short, and structured around evidence rather than opinion.
Each embedded engineer brings what they built and one sentence on whether they expect to build it again. The owner asks whether any other customer has asked for something similar. Anything with two or more requests goes into the promotion queue. Anything with one gets a note in the registry and stays custom.
The two-request threshold is arbitrary and useful. It stops the loop from generalising prematurely, which is its own failure: a capability built for a pattern that turns out not to exist is worse than the custom code, because now it is in the platform and everyone maintains it.
What to measure
Revenue per embedded engineer, over time. The output measure. If the loop is running, this rises: the platform absorbs what the field learned, so each engineer covers more ground. Flat revenue per engineer with custom work accumulating means the loop is not running. That page covers it.
Share of shared versus custom code per deployment. Should trend toward shared. If the custom share grows with each new account, the loop is losing.
Time from signature to production, over successive deployments. Should fall. This is the number a customer feels, and the clearest evidence the loop produces value rather than internal tidiness.
The failure modes
Nobody owns it. The most common. The cadence exists and produces a list nobody acts on.
The owner has no authority. They can recommend and not assign, so the queue grows.
Generalising too early. One customer's request becomes a platform capability, and it turns out no other customer wanted it. Now it is a maintenance burden with a config flag.
Generalising too late. Four accounts have four versions of the same thing before anybody notices. This is the expensive one, and the registry is what prevents it.
The loop competes with revenue and always loses. If promotion work is only done when no customer needs anything, it will never be done. It has to be funded as a line rather than as slack.
Where this fits for us
We run this as part of how we work rather than as a separate function, and the artefact that matters most is the eval suite. Because the specification is written to the level our tooling generates from, the checks derived from it are reusable across engagements in the same domain, and they are also what your team inherits at handover. The reusable asset and the handover deliverable are the same object, which is the neatest version of this loop we have found.
Next: how to price it, or measuring the function.
Best for
- Installing the mechanism that turns field work into product
- Diagnosing why an embedded function has produced no platform improvement
- Deciding who has authority to promote custom work into the platform
Avoid if
- You have one customer and nothing to generalise across yet
Verify before you commit
- Confirm a fixed cadence exists on the calendar with one standing question
- Name the owner, and confirm they can assign work rather than only recommend
- Confirm a stop rule is applied out loud and work is actually declined
- Track shared versus custom code per deployment and confirm it trends toward shared
Common questions
What is the productization loop?
A fixed cadence at which somebody with authority asks what of the period's customer work generalises, decides what gets promoted into the platform, assigns that work, and applies a stop rule to whatever does not generalise. It is the mechanism that turns one customer's custom work into a capability every customer gets.
What is the stop rule?
First Round Review's version: embrace scope expansion when it creates repeatable software value, and halt when iterations cap at single-customer utility. Somebody has to apply it weekly, out loud, and decline work. Without it the engagement grows by one reasonable request at a time and never ends.
What should the loop produce?
Working infrastructure rather than documents. AWS names the artefacts as reusable delivery harnesses including domain ontologies, evaluation frameworks and capability registries. In practice: domain models, reusable evaluation suites, connectors written once, and a registry so engineers can find what already exists.
How do you know the loop is working?
Revenue per embedded engineer rises over time, the share of shared versus custom code per deployment trends toward shared, and time from signature to production falls across successive deployments. The last one is what a customer actually feels.
What is the risk of generalising too early?
A capability built for a pattern that turns out not to exist is worse than the custom code it replaced, because now it lives in the platform and everyone maintains it behind a config flag. A two-request threshold before promotion is arbitrary and works: one request stays custom with a note in the registry.
Why does the loop usually fail?
Five ways. Nobody owns it. The owner can recommend but not assign. Generalising too early. Generalising too late, after four accounts built four versions. And the loop competing with revenue, which it always loses unless promotion work is funded as a line rather than done in slack time.
Related reading
How to say no to a feature request
When building got cheap, the reason to decline stopped being cost. It is now that every feature you keep makes every future change slower, and nobody sends an invoice for that.
Why scope creep happens and how to stop it
Scope creep is rarely about laziness or bad discipline. It is about unclear goals and a fear of saying no. Here is how to keep scope honest without killing good ideas.
More in Building the function
How to build a forward deployed engineering team
Before hiring anyone, confirm three prerequisites: your customers are enterprises, your product is still flexible enough to change based on what you learn, and their use cases differ from each other. First Round Review names all three, and missing two means do not start. Then begin with two or three engineers on your highest-value accounts only, report the function into product or engineering rather than sales, and give somebody the job of turning field work into product from the first month. Those last two decisions determine whether the function becomes a moat or a cost centre.
Forward deployed engineer job description
Most forward deployed engineer job descriptions fail in the same two places: they do not say which of the three jobs the role actually is, and they hide the travel. Across 1,000 postings carrying the title, 60 percent were production engineering roles, 30 percent were sales engineering with implementation duties, and 10 percent faced no external customer. 68 percent required travel, with 50 to 75 percent typical where a number was given. State both in the first hundred words and your funnel gets smaller and much better.
How to hire a forward deployed engineer
The candidates come mostly from software engineering: across 1,000 postings, 45 percent of routes into the role came from software engineering, 22 percent from solutions or sales engineering, 15 percent from data, 10 percent from technical consulting and 8 percent from founding or early-employee roles. First Round Review names five qualities that predict success and one counter-intuitive red flag: ten or more years at a large tech company, because the role needs somebody who operates without institutional scaffolding. Do not lower the engineering bar to get customer skills.
How to interview a forward deployed engineer
A forward deployed engineering loop has to test three things in roughly equal weight: engineering depth, judgment in front of a customer, and the ability to reason out loud through ambiguity. That makes it different from a standard engineering loop, where the third is barely assessed. The signature round is an ambiguous case: a vague problem from a hypothetical customer, which the candidate has to decompose into a plan. The most common reason strong engineers fail it is jumping to a solution before scoping the problem.
Where forward deployed engineering should report
Forward deployed engineering should report into product or engineering, not sales, and not a separate professional services unit. Marty Cagan's warning is direct: if embedded engineers sit in a professional services group, you lose the feedback loop and drift toward a pure services business. The hiring data suggests most of the market has already made the wrong choice, with only 45 percent of 1,000 postings sitting on a dedicated forward deployed team rather than under sales. This is a nearly free decision at the start and expensive to reverse later.
The forward deployed to product engineer ratio
There is no credible published benchmark for the ratio of forward deployed engineers to product engineers, and we are not going to invent one. What exists is arithmetic you can do with your own numbers, and one documented floor: First Round Review reports Looker validating $25,000 or more in annual contract value before committing to the model. Size the function from account count, deployment length and the contract value that has to carry it, then check the result against whether your revenue per embedded engineer is rising.