Forward Deployed Engineer  /  Security & Compliance
FDE Track 07~14 min readIntermediate
Earning the Yes

Security is the
critical path.

An FDE can build the perfect solution and still watch it die in a security review. At most enterprises, the security and compliance team holds a veto — and the fastest way to lose a quarter is to discover their requirements at the end instead of the start. You don’t need to be a security expert; you need to earn their yes.

01

Security is the critical path

Engineers tend to file security under “things to clean up before launch.” In an FDE deployment, that framing loses deals. At most enterprises the security and compliance function holds a genuine veto: no matter how much the users love your solution, if security says no, it doesn’t ship. And security teams say no reflexively to anything they don’t understand or weren’t consulted on.

So the move is to treat security as a stakeholder from discovery onward, not a gate at the end. Ask early: “What does it take to get a new tool approved here?” Loop the right person in before you’ve committed to an architecture. A security requirement discovered in week one is a design input; the same requirement discovered in week six is a rebuild — or a dead deal.

→ The reframe

Security isn’t the thing standing between you and shipping. Security is the path to shipping. Earning their yes is as much a deliverable as the working demo.

02

The frameworks, decoded

You don’t need to be an auditor. You need to know what each framework actually cares about, so you can answer questions without bluffing.

FrameworkCoversWhat it actually asks for
SOC 2General trust controlsAccess control, encryption, change management, monitoring, vendor risk. A report, not a law.
HIPAAUS health data (PHI)A signed BAA, encryption, access logs, minimum-necessary access.
GDPREU personal dataA lawful basis, data-subject rights (access/delete), data residency, a DPA.
PCI-DSSPayment card dataStrict controls — the winning move is usually to never touch card data (tokenize / use a processor).

The practical takeaway is a hierarchy of avoidance: the easiest compliance problem is the one you design out of existence. Don’t store card data. Don’t move health data off-network. Don’t collect personal data you don’t need. Every category of sensitive data you can avoid touching is an entire class of requirements you skip. The quick-reference keeps these straight in the moment.

03

Data handling

Underneath every framework sit the same few data disciplines. Get these right and you’re most of the way to any of them.

The non-negotiables

  • Encrypt everywhereTLS in transit, encryption at rest. Table stakes.
  • Data residency — know which region/network data must stay in; it drives the deployment target.
  • Minimize + retain — collect only what you need; delete on a schedule.

PII discipline

  • Redact or mask personal data in logs — a leaked log is a real incident.
  • Never paste customer PII into a third-party API without approval.
  • Treat the model provider as a subprocessor: what leaves matters.

The phrase to remember is less data, less risk. Every sensitive field you don’t store is a field that can’t leak, can’t be subpoenaed, and can’t sink a review. Data minimization is the cheapest security control there is.

04

Secrets and access

Secrets are where good intentions meet a leaked GitHub repo. In a customer deployment the rules tighten, and the reviewer will ask about every one of them.

No secrets in codeUse the customer’s vault/KMS + env injection. Never a committed key; never a token in a log line.
Least privilegeScope every credential to exactly what the job needs; prefer short-lived over long-lived.
RotateCredentials expire and rotate. A permanent key is a permanent liability.
Audit trailLog who did what, when — immutable and exportable. Reviewers will want it.
MFA + SSOIntegrate with their identity provider; don’t create a parallel login to manage.

There’s a strategic angle here: least privilege is a speed tactic. A tightly scoped access request is easy for security to reason about and approve; a broad one demands a deep review. Asking for exactly what you need — and no more — is often how you deploy this quarter instead of next.

05

The security review

Eventually you’ll sit across from (or send a questionnaire to) the security team. Walk in with the answers and it’s a conversation; walk in empty and it’s an interrogation that stalls for weeks.

→ Bring these to the review

A data-flow diagram (what data, from where, to where). Where data lives and whether it leaves the network. Encryption in transit and at rest. Your access model and least-privilege scoping. Your subprocessors (including any model provider). Answer these before they’re asked and you’ll clear reviews others get stuck in for a month.

Two principles make reviews go fast. A smaller ask gets a faster yes — minimize scope and footprint so there’s less to scrutinize. And involve them early — a team that helped shape the design defends it; a team ambushed at the end blocks it. Security is a relationship, not a checkpoint.

06

The AI-specific risks

Modern FDE work adds a new risk surface that traditional security reviews are only starting to catch up with. Know these before the customer asks.

Because so many deployments now put an LLM to work on the customer’s data, three AI-specific risks land squarely on the FDE.

RiskWhat goes wrongThe mitigation
Prompt injectionUntrusted content (a document, a webhook, a tool result) hides instructions that hijack the model into unintended actions.Treat tool/document outputs as untrusted input, not commands; keep a human in the loop for consequential actions.
Data leakageSensitive customer data is sent to a third-party model provider without approval, or logged where it shouldn’t be.Confirm what may leave the network; self-host the model if it can’t; treat the provider as a subprocessor.
PII in prompts / logsPersonal data ends up in prompts, traces, and logs that weren’t designed to hold it.Redact PII before it reaches a model or a log — a practiced reflex.

These deserve their own study — the AI security handbook goes deep — but the FDE-level instinct is simple: assume any content the model reads could be adversarial, and assume anything you send to a model could leave. Design around both, and you’ll answer the AI security questions before the customer knows to ask them.

Deep dive

Prompt injection is an architecture problem, not a filtering problem

Their framework predates all of this, so you will be asked to explain the question as well as answer it. The answer that survives a technical review assumes the injection succeeds.

Two properties combine badly in every AI deployment. A model treats retrieved content as information, and content retrieved from a customer’s systems is written by people — including, sometimes, people outside the company. A claim document, a support ticket, a supplier email and a PDF filename are all untrusted text that will end up in a context window next to your instructions.

The instinct is to filter for suspicious phrases. It is a reasonable defence-in-depth layer and a weak primary control, because paraphrase defeats it and because leading with it tells a reviewer that the architectural boundary is not there. The framing that holds is: assume the injection succeeds, and make the consequence small.

the four boundary questions, answered in the system
👤

Identity

Whose permissions does a tool call run with? It must be the end user’s. A service account holding the union of everyone’s access turns a read tool into an exfiltration path.

💥

Blast radius

Which tools mutate state, and which of those are reversible? Write tools separated, confirmation required, destructive operations have no tool at all.

📑

Content

Is retrieved text ever treated as instruction? It must not be — delimited and labelled as data at the boundary, every time.

The fourth is evidence: can you show an auditor who did what, through the agent, last Tuesday?
# the assertions a security architect is actually asking about

assert tool_call.identity == request.user, \
    "tools run as the asking user — never a shared service account"

assert retrieval.scope == permissions_of(request.user), \
    "enforced at RETRIEVAL time, not filtered after generation"
    # filtering citations does not unsee the text the model already read

assert all(t.confirmed for t in tool_calls if t.mutates), \
    "writes require explicit confirmation and are reversible"

assert audit.has(user, inputs, retrieved_source_ids, output, model_version), \
    "reconstructable six months later, to their retention policy"

# and the demo you will be asked for:
# put hostile text in a record the agent will read. show what happens.
# run it against yourself first — a recorded answer turns a hard
# meeting into a short one.

The second assertion is the one most often got wrong in a way that looks fine. Filtering retrieved chunks against the user’s permissions after retrieval leaves the model having read documents that user cannot see, and the answer it generates is derived from them. The boundary has to be at retrieval or it is not a boundary.

→ The answer pattern for the questionnaire

A specific no with a compensating control, an owner and a date outscores a vague yes every time — and outscores a false yes by a margin nothing else recovers. Volunteering a gap raises your score, because finding what you did not mention is the reviewer’s entire job. Practise the full review in the security review gauntlet.

Frequently asked

Quick answers

What compliance frameworks should an FDE understand?

At a working level: SOC 2 (a report on trust controls like access, encryption, and monitoring), HIPAA (US health data — needs a BAA and strict access controls), GDPR (EU personal data — lawful basis, data-subject rights, residency), and PCI-DSS (card data — best avoided by never touching it). You don’t need to be an auditor; you need to know what each cares about so you can answer a security team’s questions credibly.

How do you pass a customer’s security review?

Come prepared with the answers they’ll ask for: a data-flow diagram, where data lives and whether it leaves the network, how it’s encrypted, your access model, and any third-party subprocessors. Request the minimum access you need — a small, well-scoped ask gets a fast yes while a broad one triggers a long review. And involve security early in the engagement, not at the end, so a veto doesn’t land after weeks of work.

How should you handle secrets in a customer deployment?

Never in code or logs. Store them in the customer’s vault or KMS and inject them via environment at runtime, prefer short-lived credentials over long-lived keys, and scope every credential to exactly what the job needs. Rotating regularly and keeping an audit trail of access are table stakes — security reviewers will ask about all of it.

What are the AI-specific security risks in a deployment?

Three matter most. Prompt injection — untrusted content (a document, a webhook) carries instructions that hijack the model into unintended actions. Data leakage — sending the customer’s sensitive data to a third-party model provider without approval. And PII in prompts and logs — personal data landing in places it shouldn’t. FDEs manage these by treating tool outputs as untrusted, keeping a human in the loop for consequential actions, and redacting PII before it reaches a model or a log.

Security & Compliance for FDEs · part of the FDE track · Vibe Engines · 2026
Finished this one? 0 / 208 Handbooks done

Explore the topic

See this alongside everything else on the same subject — handbooks, system designs, challenges and tools, in one place.

More Handbooks