What a Forward Deployed Engineer Actually Does in a Week: A Concrete Workflow
Most engineering jobs optimize for depth. You live in a single codebase, you master its abstractions, and you ship features over months. The Forward Deployed Engineer (FDE) role optimizes for breadth and velocity. You move between codebases, you ship in days, and your success metric isn’t just clean code—it’s whether a skeptical enterprise customer goes from “maybe” to “let’s sign.”
This is a concrete, week-in-the-life breakdown of an FDE at a Series B infrastructure company, deployed against a $1.2M ACV (Annual Contract Value) opportunity. No theory. Just the workflow.
Monday: On-Site Triage and the Art of the Scoping Call
You land at the customer’s HQ at 9 AM. The account executive briefs you in the lobby: the customer’s data platform team is drowning in manual PII redaction. They need to redact 50M records/month before loading into Snowflake. Your company sells an API for exactly this, but the CTO is skeptical about latency and accuracy on their specific schema.
You’re not here to run a canned demo. You’re here to find the actual problem. The meeting starts with 15 people on Zoom and 5 in the room. You ignore the slide deck. Instead, you open a blank Mermaid diagram in your IDE and start live-coding the flow.
The real workflow:
- Ask for the schema. Not the sample data—the DDL. You need to see the column types, the nesting depth, and the weird VARCHAR(MAX) fields that probably hold free-text notes.
- Ask for the failure case. “When does your current regex-based approach break?” They show you a JSON blob inside a VARCHAR field where the PII is 4 levels deep. Regex can’t see it.
- Define the success criteria. You write them on the whiteboard: 1) <100ms P95 latency, 2) 99.5% recall on PII detection, 3) zero egress of raw data to external services.
By noon, you’ve scoped the POC: a sidecar service that intercepts the Kafka topic, redacts in-stream, and writes to a dead-letter queue for manual review. You send a one-page technical summary to the customer’s VP of Engineering. The meeting ends early. The real work starts now.
Tuesday: Reproducing the Customer’s Environment (Without Their Data)
You’re back at your Airbnb (or the customer’s co-working space). You cannot take their data off-prem. This is the first major FDE skill: synthetically generating a representative dataset that triggers the same edge cases.
You write a Python script that generates 10K records matching their DDL. You include:
- 20% with deeply nested JSON blobs containing fake SSNs.
- 15% with multi-byte Unicode characters in free-text fields (names like “José” and “Müller”).
- 5% with intentionally malformed JSON (missing closing braces) to test error handling.
# Synthetic data generation snippet
import json, random, string
from faker import Faker
fake = Faker()
def generate_malformed_json():
if random.random() < 0.05:
return '{"name": "' + fake.name() + '", "ssn": "' + fake.ssn()'
return json.dumps({"name": fake.name(), "ssn": fake.ssn()})
You spin up a local Kafka cluster using docker-compose and pipe your synthetic data through it. You then point your company’s API at this stream. The goal isn’t to test the happy path—it’s to find exactly where your API breaks on their schema. You find three issues: a 500 error on the malformed JSON, a 4x latency spike on deeply nested fields, and a false positive on a UUID that looks like a UK National Insurance number.
You don’t file a bug report yet. You fix the malformed JSON parsing by adding a try/except in the pre-processing layer and deploy the patched version to your dev environment. The latency spike requires a deeper change to the recursive traversal logic—you open a draft PR against the core repo with a failing test case, but you don’t block on it. You’ll work around it for the POC.
Wednesday: The Integration Slog — Auth, APIs, and Edge Cases
This is the least glamorous part and the most critical. Enterprise integrations die in the authentication layer. The customer uses mutual TLS (mTLS) for internal service-to-service communication. Your company’s API expects an API key in a header.
You have two choices:
- Ask the customer to change their security posture (non-starter).
- Build an adapter.
You spend the morning building a sidecar proxy in Go that terminates mTLS, extracts the SPIFFE ID from the X.509 certificate, maps it to your API key via a Vault instance you convince their platform team to let you spin up temporarily, and forwards the request. It’s 150 lines of code. You test it with curl --cert client.crt --key client.key and it works.
The FDE mindset here: You are not building a production-grade auth service. You are building a working demonstration that proves the integration is possible. You document the gaps explicitly in a “Production Hardening” section of your running technical spec. This buys trust. You’re not hiding the shortcuts; you’re flagging them for the core team to address if the deal closes.
By evening, you have the full pipeline running end-to-end: synthetic data → Kafka → your mTLS proxy → your company’s API → redacted data → Snowflake staging table. You run 100K records through it and capture latency histograms.
Thursday: Building the POC and Writing the Technical Spec
Thursday is a build sprint. The POC works, but it’s a command-line mess of Python scripts and Docker commands. You need to package it into something the customer’s engineers can evaluate.
You build a thin Streamlit dashboard that shows:
- Real-time throughput (records/second).
- A sample of 10 redacted records side-by-side with originals (PII highlighted in red).
- A latency distribution histogram updated every 5 seconds.
# Streamlit snippet for the POC dashboard
import streamlit as st
import pandas as pd
st.metric("Throughput", f"{throughput:.0f} rec/s")
col1, col2 = st.columns(2)
with col1:
st.subheader("Original")
st.json(original_record)
with col2:
st.subheader("Redacted")
st.json(redacted_record)
You spend the afternoon writing the technical spec. This is not a design doc. It’s a 6-page document structured for a VP to forward to their CTO:
- Executive Summary: What we proved this week.
- Architecture Diagram: The exact flow, including the mTLS proxy.
- Performance Data: P50/P95/P99 latency, throughput, accuracy metrics on synthetic data.
- Gap Analysis: The 3 things that must be hardened for production (malformed JSON handling, recursive traversal optimization, the proxy itself).
- Proposed SOW: Recommended scope for a 6-week paid pilot.
You don’t use Confluence. You write it in Markdown, render it to PDF with Pandoc, and commit it to a private repo shared with the customer. Version control on the spec itself signals engineering maturity.
Friday: Demo Day and the Handoff to Core Engineering
10 AM: You present the live dashboard to the same 15-person group from Monday. You don’t show slides. You show the running system. You intentionally inject a record with a fake SSN in a nested JSON field and let them watch it get redacted in real-time. You show the latency histogram staying under 80ms. You show the dead-letter queue catching the malformed JSON you couldn’t parse.
The CTO asks: “What happens when we hit 10x this volume?” You don’t guess. You pull up the horizontal scaling section of your spec, which shows the linear throughput increase when you add API nodes. You’ve already tested it by spinning up 3 instances and running 300K records.
The meeting ends at 11:30. The customer asks for the pilot SOW by EOD. You already have it drafted.
The Handoff: This is where FDEs differ from solutions architects. You don’t throw the code over the wall. You spend Friday afternoon:
- Opening 3 detailed GitHub issues on the core repo, each with a reproducible test case from the week.
- Recording a 15-minute Loom walking through the mTLS proxy code and why it exists.
- Updating the internal FDE playbook with a new entry: “Retail Customer PII Redaction Pattern.”
You are the feedback loop. The core team will productize the mTLS support you hacked together. Your week of pain becomes a feature in the next release.
The Tool Stack That Makes This Possible
| Category | Tool | Why |
|---|---|---|
| Local Env | Docker Compose, Kind (K8s) | Reproduce customer infra without their access. |
| Data Gen | Python Faker, custom scripts | Build representative synthetic data. |
| Proxy/Glue | Go, Envoy | Lightweight, high-performance adapters for auth and protocol translation. |
| Dashboard | Streamlit, Next.js | Rapid, ugly-but-functional UIs for demos. |
| Docs | Markdown, Pandoc, Mermaid | Specs that are version-controlled and renderable. |
| Comm | Slack Connect, Loom | Async, high-bandwidth handoffs to core teams. |
Career Context: Why This Role Pays What It Does
This workflow explains the comp. FDE roles at growth-stage companies (Series B-D) typically range from $180K–$280K base, with equity bringing total comp to $250K–$400K+. The top end is reserved for engineers who can both debug a Kafka consumer in Go and hold a room with a skeptical CTO. It’s not just engineering—it’s engineering under pressure, in someone else’s environment, with a revenue number attached to your success.
If you’re building the skills for this role, the projects that matter are exactly these: synthetic data generation, auth proxy construction, and rapid dashboarding. You can practice these patterns with the projects on this site—for example, building a Discord FAQ Bot backed by your docs teaches the same retrieval-augmented generation patterns you’d use for a customer support POC, and the GitHub Issue Triager with Groq and Cloudflare Workers mirrors the lightweight integration work that fills an FDE’s week.
FAQ
Is being a Forward Deployed Engineer worth it? If you optimize for learning speed, variety, and business impact, yes. You’ll touch more systems in 6 months than most engineers touch in 3 years. The trade-off is depth: you rarely spend months refactoring a single service. Burnout risk is real if you can’t context-switch quickly.
How much do FDEs get paid? As of 2026, US-based FDE roles at venture-backed companies range from $180K–$280K base, with total comp (including equity) often landing between $250K and $400K+. The premium over a similarly leveled SWE is typically 15-25%, reflecting the travel and customer-facing demands. For a full breakdown, see the FDE compensation guide.
What do forward deployment engineers do? They are embedded with customers to solve technical integration and adoption problems that block revenue. This spans debugging customer environments, building custom integrations and adapters, prototyping features, and feeding product requirements back to core engineering. It’s distinct from pure sales engineering because FDEs write production-quality code and often ship features into the core product.
Are forward-deployed engineers real engineers? Yes. The code is real, the systems are real, and the constraints are often harder than internal development (no direct DB access, strict security boundaries, unfamiliar tech stacks). The output is a mix of code, technical specifications, and customer influence. It’s not a support role—it’s an engineering role with a different surface area. The distinction between an FDE and an AI Engineer is nuanced but real; see the role comparison here.
Want to build like a Forward Deployed Engineer?
FDE Coach is a cohort-based program in frontend, backend, AWS, and AI. Build real products and get referred to 200+ hiring partners.
Explore the program