All articles
Forward Deployed

What a Forward Deployed Engineer Actually Does in a Week: Trust, Code, and Customer Obsession

FDE Coach EditorialJuly 25, 202610 min read

The Forward Deployed Engineer (FDE) role resists clean definition because it lives in the gap between what a customer bought and what they actually need. You aren't post-sales support. You aren't a pure consultant with a deck. You are a software engineer who embeds inside a high-stakes enterprise environment, writing production code against their data, their APIs, and their constraints, while your product team is 3,000 miles away.

This isn't a hypothetical. I've lived this week a hundred times across defense, finance, and healthcare. Here's exactly what a real week looks like—the technical decisions, the trust mechanics, and the artifacts that justify the $200k-$350k total comp these roles command.

The FDE Operating Model: Embedded, Not Outsourced

Before the Monday standup, understand the physics. You are a temporary organ inside a foreign body. The customer's engineering team has been burned by vendors before. They expect you to read docs, ask for a VPN token, and disappear for two weeks to "scope." Your first job is to violate that expectation.

An effective FDE workflow runs on a weekly cadence with three immutable pillars:

  1. The Trust Ledger: Every interaction either deposits or withdraws trust. Shipping a 30-line bugfix on Day 1 deposits more than a 30-page architecture doc on Day 5.
  2. The Artifact Trail: Code, runbooks, migration scripts. If it isn't committed to their repo (or a shared mirror) by Friday, it didn't happen.
  3. The Escalation Path: You need a direct line to your product/engineering back home. If you are waiting for a Jira ticket to clear triage, you've already lost.

Let's walk the week.

Monday Morning: The Silent Data Corruption Ghost

You arrive at the customer's SCIF or open-plan office (badge finally works). The Slack channel from the weekend has a cryptic message from their lead platform engineer: "API returning 200s but some records have nulled-out fields. No errors in our logs. Not urgent but weird."

"Not urgent but weird" is the FDE bat-signal. This is how enterprise customers silently escalate you from "vendor rep" to "trusted engineer." You grab a coffee and pull the logs.

The Scene:

  • Stack: The customer runs a legacy monolith (Java 11) behind a Kong API gateway, with a sidecar Envoy proxy they are testing for a service mesh migration.
  • Symptom: 0.5% of records in a specific PostgreSQL table have NULL values in a metadata::jsonb column that should always have defaults.
  • Your Product: A data pipeline that reads from a CDC stream (Debezium) and enriches records before writing to a data warehouse.

The Diagnosis (First 90 Minutes): You don't have access to their production DB (and you shouldn't). You ask for a sanitized dump of the affected rows and the Debezium offset logs. You replay the CDC stream locally against a test instance of your pipeline. The enrichment logic is fine. The nulls are entering before your pipeline sees them.

You trace it back to the Envoy sidecar. Their platform team recently enabled HTTP/2 connection pooling between the monolith and the proxy. A race condition in the connection draining logic was cutting off the tail end of streaming responses, zeroing out the JSONB field on the monolith side before the transaction committed.

The Deposit: You don't just send a Slack message saying "it's Envoy." You write a minimal reproduction script in Python, capture a tcpdump showing the RST_STREAM frame, and link directly to the Envoy GitHub issue (#12345) that matches the behavior. You attach the script to their internal ticket.

Toolbox: pg_stat_statements, tcpdump, Python asyncio for stream replay, and a deep bookmark folder of open-source GitHub issues. This is the FDE interview loop prep in action: not LeetCode, but diagnostic rigor under ambiguity.

Tuesday: Architecting in the Customer’s Living Room

Monday's bugfix bought you a seat at the architecture review today. The customer wants to use your platform's new LLM-based entity extraction feature, but they have a hard constraint: PII can never leave their VPC.

Your product's cloud offering sends text to a third-party model endpoint. That's a non-starter. You have three options:

  1. Wait for your product team to ship a self-hosted model container (ETA: 6 weeks).
  2. Hack a proxy that strips PII before egress (fragile, compliance team will hate it).
  3. Deploy an open-weight model on their existing GPU nodes and adapt your SDK to point to a custom endpoint.

You choose Option 3. You've done this before with deploying an LLM feature at an enterprise customer in 10 days. You pull up a quick cost model on a whiteboard:

VariableCloud API (Your Product)Self-Hosted (Customer VPC)
Latency p99800ms350ms (local GPU)
Cost/1M tokens$15.00$4.20 (amortized HW)
PII RiskHigh (egress)Zero
Engineering Effort0 days (SaaS)3 days (you)

The CTO sees the latency and cost lines. You commit to a working prototype by Thursday. You spend the rest of Tuesday writing a thin adapter layer in Go that translates your SDK's internal gRPC calls to the OpenAI-compatible API served by their vLLM instance. You don't fork the SDK; you write a sidecar that intercepts on localhost.

Wednesday: The Integration That Should Have Been Simple

Today is supposed to be about finishing the LLM adapter, but the customer's data engineering lead grabs you. "The Kafka sink you set up last month is dropping messages on schema evolution."

You dig in. They added a nullable field to an upstream Avro schema. Your sink connector is configured with avro.remove.java.properties=true but the schema registry compatibility mode is set to BACKWARD not FULL_TRANSITIVE. The new schema includes a "default": null, but your connector is compiled against an older generated POJO that doesn't know about the field.

The fix is a one-line config change (schema.compatibility=FULL_TRANSITIVE) and a re-deploy. But you spend two hours writing a Confluent Schema Registry migration plan so they can change the compatibility mode without a full cluster restart. This is the work that doesn't ship features but prevents 3 AM pages. It's also the work that gets you renewed.

The Architecture of the Moment:

Thursday: The Pre-Prod Fire Drill

The LLM sidecar is working on a dev GPU node. You can call it from a Jupyter notebook and get perfect entity extraction, no PII egress. The customer's lead infra engineer wants to see it in their staging environment before Friday's demo to the CTO.

Staging has a different network policy. The GPU nodes are in a separate subnet with no ingress from the application tier. You have 45 minutes before the infra engineer's next meeting.

You don't ask for a firewall change (2-week process). Instead, you use a reverse SSH tunnel from the GPU node to the app node, multiplexed over their existing WireGuard mesh. It's a hack, but it's a documented hack. You write a five-line systemd unit file that creates the tunnel on boot and add it to their Ansible playbook with a big # TODO: Replace with proper VPC peering comment.

The demo works. The CTO sees 350ms latency. You've turned a 6-week product dependency into a 3-day working solution. This is the core of the Palantir-style FDE model: embed, build trust, ship artifacts.

Friday: Shipping, Retros, and the Artifact Handoff

Friday is not for new code. It's for hardening and handoff.

  1. Code Review: You push the Go sidecar to the customer's repo. Clean commits, unit tests, a README that explains the architecture decision record (ADR) for why you chose a sidecar over a fork.
  2. Runbook: A one-page Markdown doc in their wiki: "LLM Sidecar Troubleshooting." It lists the three most likely failure modes (tunnel down, GPU OOM, schema registry lag) and the exact commands to diagnose each.
  3. Retro with Home Team: You join your product team's Friday retro. You don't just report status. You bring a concrete feature request: "Three enterprise customers need a custom LLM endpoint config. Let's add a base_url override to the SDK config by Q3." You attach the customer's cost model as justification.

You close the week by sending a summary email to the customer's executive sponsor. Not a list of activities, but a list of outcomes:

  • Resolved a 0.5% data corruption bug (Envoy race condition).
  • Unblocked PII-safe LLM extraction (3-day integration vs. 6-week wait).
  • Hardened Kafka schema evolution handling.

You copy your sales lead. This email is the renewal argument.

The Trust Ledger: Why FDEs Are Comped the Way They Are

FDE compensation reflects a brutal market reality: the skill stack is rare. You need the diagnostic ability of an SRE, the diplomatic instincts of a CTO, and the coding speed of a startup engineer. You are evaluated on revenue retention and expansion, not just code commits.

A typical FDE comp breakdown (US, Tier-1 cities):

ComponentRange
Base Salary$160k - $210k
Performance Bonus10% - 20% of base
Equity (RSU/Options)$50k - $150k/year (vested)
Total Comp$200k - $350k+

At the staff+ level, FDEs with a track record of saving $10M+ accounts can push total comp above $400k. The role is a profit center, not a cost center.

FAQ: The Forward Deployed Engineer Hiring Reality

What do FDE hiring managers actually look for?

They look for evidence of shipping under constraint. A GitHub profile with a tool you built to solve a specific, messy problem is worth more than a perfect LeetCode score. Can you debug a network issue you didn't cause? Can you write a design doc that a customer's infra team will actually approve? Our interview prep guide breaks down the exact signal rubrics.

Is an FDE just a solutions engineer?

No. Solutions engineers typically own the pre-sales technical win and hand off to implementation. FDEs write and ship production code inside the customer's environment post-sale, often extending the core product to fit. The line blurs at smaller companies, but the expectation of coding depth is the differentiator.

How much travel is involved?

Pre-2020: 50-80%. Today: highly variable. Some roles are "forward deployed" remotely with quarterly on-sites. Defense/intelligence roles are on-site daily in a SCIF. Always ask about the "embed model" in the first recruiter call.

Do I need a security clearance?

For defense-sector FDE roles (Palantir, Anduril, etc.), yes, and you'll need to obtain and maintain a Top Secret/SCI clearance. For commercial sectors (fintech, health tech), no clearance is required, but deep compliance knowledge (HIPAA, SOC2, PCI) is expected.

What's the career path?

Most FDEs do the role for 2-4 years. Exit paths are potent: you can move into product management (you know the customer better than anyone), back into core engineering as a Staff engineer (you know where the product breaks), or into a CTO role at a smaller company. The network you build inside Fortune 500 engineering orgs is a career accelerant.

How do I break in without prior FDE experience?

Demonstrate the skillset in your current role. Volunteer for the painful cross-team integration. Write the runbook nobody else wrote. In your application, present a portfolio of artifacts (design docs, bug reproductions, small CLI tools) rather than just a resume. The 10-day LLM deployment case study is a good template for the kind of work that signals FDE readiness.

#fde#weekly-routine#customer-success#prototyping

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

More forward deployed

August 15 · 0d left
Enroll Now