Hiring for this role?

Start free with this plan

Free for your first open role.

Why Hirezen?
  • Every interviewer runs the same script and marks the same signals.
  • AI drafts the write-ups, and the debrief puts every read side by side.
  • No ATS to set up first, and no bot in the call.

Forward Deployed Engineer interview questionsCoding — the customer's export round

A 60 min interview plan with a time-boxed script, what each question is for, and the signals to score against. Key skills: Whether the candidate writes code that survives a customer's systems rather than their own: ingesting a legacy export that arrives half-written, twice and in the wrong encoding, keeping restricted details in free text inside the customer's boundary, making deletions in the source reach the index, and leaving a run that someone at the customer can read the next morning.

Opening

Who is interviewing, how the round will run, and a question to settle the candidate in. The standard opening

Setup and the First File

16 min
What this part is for

Purpose

Runs in an editor against prepared files, not on a whiteboard. Before the round, build a small repository in the language the candidate is strongest in: a function that reads one CSV export from a local folder standing in for the customer's SFTP drop, turns each work order into a document, and upserts it into a local index - SQLite, or an in-memory store with upsert, delete and search, is enough - plus one passing test against a twenty-row sample, and a runner that calls the function on the folder every thirty seconds, so that a slow copy can be caught mid-write. Add a drop script you run from your own terminal: drop slow, drop resend, drop monday and drop voided. Put the vendor's one-page export specification in the repository. It says the export is UTF-8, one record per line, and a full export every night, and all three claims are untrue. THE TRUTH, which only you know: a full export runs on Sunday nights - every work order from the last five years, about 400,000 rows - and Monday to Saturday the file holds only what changed, usually 150 to 400 rows, more on a Monday. The files, in order: Sunday's full export, copied in slowly; the same file again under a new name; Monday's changes, in Windows-1252, in which a technician's note contains a quoted line break and an accented name; and, for the last section, a changes file in which one work order has been voided. IF THEY ASK -> YOU SAY, so every candidate gets the same answers. // What the vendor guarantees -> Nothing beyond the specification. Their support desk answers in about a week. // Whether the vendor can write a marker when a file is complete -> Yes, through a change request, which the customer's IT says takes three to four weeks. // Full export or changes -> The truth above, but only when asked; the specification says full every night. // What time zone the timestamps are in -> The server's local time, US Eastern, with no offset in the file. // What encoding -> Nobody at the customer knows; the specification says UTF-8. // Who can change the export -> Their IT team can raise a request with the vendor, and would rather not. // Who reads a failure -> The operations manager reads email at seven; IT is three people, in from nine. Send the repository a day ahead with instructions to get the test passing and nothing else. Lookups and AI assistants are allowed, and you should say so: the round scores the decisions the candidate makes and the code they write to carry them out, and neither is in a library. Run the sections in order and stop where the hour stops - three sections done properly read more than four rushed.

•

I am [YOUR_NAME] and I lead the forward deployed engineers at [COMPANY_NAME]. Our product is an assistant that answers field technicians' questions from their own company's service history. Today's customer maintains elevators and escalators and has about three hundred technicians. Their work-order system runs on their premises, its vendor supports it, and every morning at about five it writes a CSV export to an SFTP folder. Our ingest runs on a small virtual machine their IT gave us inside their network: it reads that folder and writes to the index the assistant searches, which runs in our cloud. Your code is the ingest.

What this line is for

Purpose

Sets out the estate in one breath - their system, their vendor, their schedule, a machine of theirs we run on, our index - so that everything the candidate does not control has been named, where each part runs is clear, and nothing has been described as reliable.

•

Talk while you work, run whatever you like, and look anything up, including asking an assistant. I will be putting files into the folder as we go, and I will tell you when I do.

What this line is for

Purpose

Makes tools explicitly allowed, so the round reads judgment rather than recall, and warns that the folder will change underneath them so they do not spend minutes doubting their own code.

•

This works against the sample. Make it safe to run unattended at five tomorrow morning against a file you have not seen. Start with the biggest hole, and tell me why that one.

What this question is for, and what to listen for

Purpose

Deliberately open, and the first move is the read. Once they have started, run drop slow so their runner picks up Sunday's export mid-write; once they have handled that, run drop resend. Those two events test the two properties the rest of the hour depends on: the job never reads a file that is still arriving, and a file processed twice leaves the index exactly as it was.

Signals to score

  • Treats the arriving file as untrusted input and checks it before anything reaches the index
  • Notices the job can start while the file is still being written, and waits for evidence it is complete - a marker file, a rename, a size that has stopped changing - rather than sleeping
  • Makes the run idempotent, so the same records processed twice leave the index unchanged
  • Records which files have been processed by their content rather than their name
  • Makes a failed run safe to repeat - a staging table and a swap, a transaction, or upserts whose replay is harmless - rather than leaving the index half-written
  • Decides what a bad row does - skip it, quarantine it, stop the run - and says why for each case
  • Asks what the vendor actually guarantees about the export before relying on the specification
  • Writes or extends a test for each failure as it appears
  • Adds nothing the customer would have to install, operate or pay for to keep it running

Follow-up questions

  • The upload was still in progress when your job started. What did your code read?
  • The same file has arrived under a new name. What happens to the index?
  • The run dies on row two hundred thousand of four hundred thousand. What does a technician see at eight?
  • What does "processed" mean in your code?
  • What does their IT team have to run for this to work?

The File the Spec Did Not Describe

14 min
What this part is for

Purpose

Run drop monday now, and leave the specification where it is. The point is not encoding trivia. It is whether the candidate believes the bytes or the document, and whether they leave a trail that lets last week's mistakes be repaired. Ask about the night the clocks went back as a spoken follow-up rather than with a file. A candidate who notices that Monday's file is a few hundred rows against Sunday's four hundred thousand has found the third untrue claim early: give them the schedule, and credit it in section four.

•

The vendor's specification says UTF-8, one record per line. Here is this morning's file.

What this line is for

Purpose

Contradicts the specification with the data and says nothing about how, so the candidate has to find it.

•

Get this file in correctly. Then tell me what you would say to the customer's IT contact about the specification.

What this question is for, and what to listen for

Purpose

Reads two things at once: whether the code copes with real data from a system nobody on the call can change, and whether the candidate turns a vendor's mistake into a useful conversation with the customer rather than a complaint about them.

Signals to score

  • Looks at the bytes before trusting the specification, and identifies the encoding from the data
  • Uses a parser that handles quoted line breaks rather than splitting the file on newlines
  • Decides what happens to a row that cannot be decoded, and does not drop it silently
  • Notices the timestamps carry no time zone, and asks which zone the source system writes in
  • Asked about the night the clocks went back, says how two records inside the repeated hour are ordered
  • Keeps each file exactly as received, so a later fix can be replayed against it
  • Turns each claim in the specification into a check that fails loudly when the data contradicts it
  • Takes the mismatch to the customer as information, and asks which they want to be true - the document or the file
  • Runs each change against the dropped file before moving on, and leaves a test behind it
  • Keeps reading, checking and writing separate enough that each can be tested on its own

Follow-up questions

  • How did you find out it was not UTF-8?
  • What happens to the note with a line break in it if you read the file line by line?
  • Two work orders say 1:30 on the morning the clocks went back. Which came first?
  • If the encoding was wrong last week too, how do you repair the index?
  • Who at the customer can change the export, and would you ask them to?

What the Security Review Found

14 min
What this part is for

Purpose

Their security lead approved the fields the candidate listed in the design, and then read twenty technician notes. Give the constraint exactly as written below and do not soften it: it is the customer's obligation to its own customers, and in this round it is not negotiable. If the candidate asks what the contracts say, the answer is that residents' phone numbers and the access codes to buildings must not leave the customer's environment, and that nothing else in the notes is restricted.

•

Their security lead has read twenty of the technicians' notes. Some contain residents' phone numbers, and some contain the codes for building doors and elevator machine rooms. Their contracts with the buildings say those stay inside their environment. Your index and the model calls run in our cloud.

What this line is for

Purpose

Moves the problem from fields, which the candidate already controls, to free text, which nobody fully controls. Dropping a column is not available as an answer.

•

What changes in your code, and what do you tell their security lead?

What this question is for, and what to listen for

Purpose

The read is whether the candidate treats a data obligation as an engineering problem with a measurable miss rate - and says so to the customer - or as a box to tick. Every honest answer admits that some text will get through; what is scored is what they do about that and what they promise.

Signals to score

  • Asks exactly what the obligation covers before deciding what to remove
  • Removes the restricted details before the data leaves the customer's environment, not after it reaches ours
  • Sends an allowlist of fields rather than removing a list of known-bad ones
  • Accepts that numbers and codes inside free text are not caught by dropping fields, and proposes how they will be
  • Measures the redaction against real notes and reports a miss rate rather than claiming none
  • Accounts for every place the text goes: the index, the logs, error reports, the model provider
  • Gives the customer a way to verify what left their environment without having to trust us
  • Keeps the redaction in code the customer can read and run themselves
  • Says plainly what would make the deployment impossible, if the answer turns out to be that no notes may leave at all

Follow-up questions

  • Where does the redaction run - in their environment or in ours?
  • A note says the gate code is 4471 and to call the resident on 555-0142 before arriving. What leaves the building?
  • What is in your logs right now?
  • How would their security lead check you without having to trust you?
  • What if the answer is that nothing in the notes may leave?

The Record That Should Not Be There

16 min
What this part is for

Purpose

Two questions about what happens once the code is running: a correctness failure the candidate's design almost certainly allows, and the morning after, seen from the customer's side. Before the first question, run drop voided. Unless they found the schedule in section two, this is where the specification's "full export every night" turns out to be its third untrue claim. If their design swaps each file in as a full snapshot, ask what the index holds after this morning's file before you give the symptom: the answer is a few hundred work orders, which is a worse failure than the one below, and they should find it themselves.

•

A technician asked the assistant about an elevator at an assisted-living facility this morning, and the answer cited a work order from last week. That work order was voided: it had been raised against the wrong building.

What this line is for

Purpose

Gives a symptom from the field rather than a bug report, so the candidate has to find the mechanism.

•

How did that happen, and what does your ingest do about it now?

What this question is for, and what to listen for

Purpose

Deletions are the failure every ingest pipeline has and almost nobody designs for: a record that disappears from the source never arrives to be removed. The read is whether the candidate finds the mechanism in the export's semantics, and treats a stale answer as a correctness failure with a cost.

Signals to score

  • Asks whether each file is a full snapshot or changes only, before diagnosing anything
  • Finds that a voided or deleted record either never appears in a changes-only file or appears once as a status, and handles both
  • Removes the record from the index rather than only marking it in a local copy
  • Proposes reconciling the index against a periodic full export, with counts on both sides
  • Asks what else in the index could be stale for the same reason
  • Says how they would find the answers the assistant has already given from voided records
  • Treats a stale answer as a correctness failure with a cost to the technician, not as cosmetic

Follow-up questions

  • Is this morning's file the whole system, or only what changed?
  • How would your code ever learn that a work order was voided?
  • How many other answers this week came from records that no longer exist?
  • How often would you check the index against the source, and how?
  • What does the technician need to know when an answer is withdrawn?
•

It is seven the next morning. The customer's operations manager is not an engineer, and she wants to know whether last night's run worked.

What this line is for

Purpose

Changes the audience. Everything so far has been read by engineers; the person who has to act on the run is not one.

•

What does your code leave behind that answers her?

What this question is for, and what to listen for

Purpose

The last read of the round, and the one that decides whether the system can run without the engineer who built it. The distinction that matters is between a run that failed and a run that succeeded on the wrong data - most monitoring catches the first and not the second.

Signals to score

  • Leaves a short run summary with counts: received, added, updated, removed, rejected
  • Compares those counts with what is normal, and treats an unusual run as a failure even when nothing errored
  • Sends a failure to a named person at the customer, through a channel they already read
  • Keeps rejected rows somewhere a person can see them, each with its reason
  • Makes a re-run after a fix one safe command that someone else can run
  • Writes the summary so that someone who is not an engineer can act on it
  • Separates "the run failed" from "the run succeeded on bad data"
  • Does not depend on the candidate being reachable

Follow-up questions

  • What does the message she gets at six say?
  • Sunday's run succeeded on forty thousand rows instead of four hundred thousand. Who finds out?
  • Where are the rejected rows, and who looks at them?
  • What does her team do when the summary says something is wrong?
  • Who does she call if you are at another customer by then?

Closing

That is the hour. Leave the repository as it is - I will read it the way the customer's engineer would after you had gone.

What this line is for

Purpose

Says that the code is read after the round, which it should be: the commit history, the tests and the run summary are evidence the conversation cannot give, and the reading is scored against the same signals above.

Their questions for you, and what happens next. The standard closing

Forward Deployed Engineer interviews — common questions

Who is this Forward Deployed Engineer interview plan for?
It is written for the interviewer, not the candidate: the hiring manager, engineer or panel member running the Coding — the customer's export round for a Forward Deployed Engineer role. It gives you a 60 min script to follow in the conversation — 5 questions with what each one is for and the signals to score against — so you are not writing the round from scratch the night before.
What does the Coding — the customer's export round assess?
This round is focused on: Whether the candidate writes code that survives a customer's systems rather than their own: ingesting a legacy export that arrives half-written, twice and in the wrong encoding, keeping restricted details in free text inside the customer's boundary, making deletions in the source reach the index, and leaving a run that someone at the customer can read the next morning. It works through Setup and the First File, The File the Spec Did Not Describe, What the Security Review Found and The Record That Should Not Be There, scoring against 43 observable signals, with follow-up prompts on all 5 questions for going deeper where an answer is thin.
How is the 60 min split up?
60 min on 5 questions. The questions take in Setup and the First File (16 min), The File the Spec Did Not Describe (14 min), What the Security Review Found (14 min) and The Record That Should Not Be There (16 min). The timings are there so the round stays on schedule and every candidate gets the same shape of interview — which is what makes two candidates comparable afterwards.
What other rounds should I run for a Forward Deployed Engineer?

A single round does not cover a whole role. The other rounds in this library for a Forward Deployed Engineer:

Hiring for this role?

Open this plan in Hirezen and make it a position in one click.

  • Every interviewer runs the same script and marks the same signals.
  • AI drafts the write-ups, and the debrief puts every read side by side.
  • No ATS to set up first, and no bot in the call.
Start free with this plan

Free for your first open role.