Salesforce Interview Prep

Module 10 — ANSWER SHEET (SEALED)

Companion to 10_Topic10_Interview_Process.md — open ONLY after you have written your own attempt.

Protocol (file 00, M1→M4): write ≥2 hypotheses + 2 solution attempts before reading — here, that means write your own first-draft answer/script before reading the reveal. Then compare your attempt against this sheet like an investigator compares a suspect's story to the evidence. The contrast IS the learning. Then REDO from memory, then do the drill.


INCIDENT 1 — THE CANDIDATE WHO DIDN'T KNOW WHAT ROUND IT WAS

The problem restated

Same candidate, same knowledge, passed a consulting loop and failed a product-company OA and an EY-style rapid-fire round. Name the two loop structures, why one-size prep failed, and the differentiated fix.

Model answer (2-min interview version)

  • Two loop structures. Consulting/IT-services (Accenture, Deloitte, EY, Wipro, Cognizant, Capgemini, TCS, Infosys, PwC): (opt.) written MCQ → R1 Technical screening (45–60m) → R2 Advanced technical incl. live coding (60m) → R3 Managerial/HR (30m, behavioral + salary). Product companies (Salesforce, Veeva, nCino, Vlocity, Amazon): OA HackerRank (60–75m, 2–3 LeetCode-medium) → 1–2 live coding rounds (DSA + Salesforce) → system design (60m) → behavioral/values (45m) → hiring manager (45m) + Hiring Committee (7–14 day delay).
  • Real reports to cite cold: Cognizant (5 YOE) R1→R2→R3; Wipro (3+ YOE) written MCQ + 2 live-coding technical rounds; Deloitte (4 YOE) Technical Assessment → Project & Scenario; EY (3+ YOE) single 45-min round, 18 rapid questions; PwC (4.8 YOE) code+trigger+theory then a "techno-managerial" round that was actually technical; Capgemini (4–6 YOE) 38 questions, 100% scenario-based.
  • Why it failed: the DSA gate has zero Salesforce content — no depth of Apex substitutes for missing pattern reps; the EY rapid-fire format punishes discursive R2-style answers because they eat the budget for later questions.
  • The fix: ask the recruiter "how many rounds, what does each cover?" before prepping; drill 40–50 LeetCode-mediums if any product company is in the pipeline; for rapid-fire rounds, pace at duration÷question-count and answer short-first.

Self-grade checklist

  • Named both loop-structure tables with round names/durations/content
  • Cited at least 3 of the 6 real company reports correctly
  • Explained why Apex depth doesn't cover the DSA gate
  • Explained the EY pacing failure mechanism
  • Gave the "ask the recruiter" + DSA-drill + pacing fix

THE REDO — model answer

Loop A (consulting): (MCQ) -> R1 tech (45-60m) -> R2 advanced+live coding (60m) -> R3 HR (30m)
Loop B (product): OA DSA (60-75m) -> live coding x1-2 -> system design -> behavioral -> HM+committee
Reports: Cognizant/Wipro/Deloitte/EY(18q/45m)/PwC/Capgemini(38q,scenario)
Fix: confirm loop type up front; DSA drill for product cos; pace = duration/question-count

RETRIEVAL DRILL — model answers

  1. Consulting loop rounds? → (Optional MCQ) → R1 Technical screening (45–60m) → R2 Advanced technical incl. live coding (60m) → R3 Managerial/HR (30m).
  2. Product-company loop rounds? → OA (60–75m) → 1–2 live coding (45–60m each) → system design (60m) → behavioral/values (45m) → hiring manager (45m) + Hiring Committee (7–14 days).
  3. EY report? → Single deep technical round, 18 questions, ~45 minutes, covering security model + triggers + SOQL + LWC.
  4. Capgemini report? → 38 questions, 100% scenario-based, 4–6 YOE band.
  5. Pacing fix for 18q/45m? → Budget = 45/18 ≈ 2.5 min/question; answer short-first, offer depth second.

INCIDENT 2 — THE EY MARATHON

The problem restated

18 questions in 45 minutes; uniform long answers burned the clock and rushed the last third. Compute the budget, name the mistake, fix the answer technique.

Model answer (2-min interview version)

  • Budget: 45 min ÷ 18 questions ≈ 2.5 min/question — compute this before question 1 of any rapid-fire round.
  • Mistake: treating every question as deserving equal, high depth — a rapid-fire round tests coverage, not depth; a 4-minute answer to question 1 doesn't add credit, it removes the interviewer's ability to reach questions 15–18, which then reads as gaps rather than time pressure.
  • Fix — the two-layer answer: state the fact in one sentence, then offer to go deeper ("...happy to give an example if useful"). Total ~15–30 seconds. Interviewer either moves on (coverage satisfied) or pulls you deeper on their initiative (now depth reads as responsiveness, not rambling).
  • Example: "With sharing enforces the running user's record access; without sharing runs in system mode and bypasses it — want a scenario where that mattered?"

Self-grade checklist

  • Computed the 2.5 min/question budget
  • Identified "equal depth for every question" as the structural mistake
  • Explained why long early answers cost you LATER questions specifically
  • Gave the two-layer (fact + offer) technique
  • Produced a live example under 30 seconds

THE REDO — model answer

Budget: 45/18 = 2.5 min/q
Mistake: uniform depth regardless of question count/duration
Fix: fact (1 sentence) -> offer to go deeper (1 clause) -> let interviewer pull depth
Example: "with sharing enforces record access; without sharing bypasses it in system mode -
          want an example where that bit someone?"

RETRIEVAL DRILL — model answers

  1. Budget for 45min/18q? → ≈2.5 min per question.
  2. Coverage or depth? → Coverage — breadth across topics, not depth on any one.
  3. Two-layer answer, one sentence? → State the fact briefly, then offer to elaborate — let the interviewer choose depth.
  4. Why does a long first answer hurt even if correct? → It consumes the shared time budget, starving later questions, which then read as unknown rather than unasked.
  5. When go deep unprompted? → Only when explicitly asked "tell me more / walk me through / give an example."

INCIDENT 3 — THE STORY WITH NO ENDING

The problem restated

A behavioral answer over-explained Situation, never stated Task, gave a vague collective Action, and had no Result. Diagnose all four failures and rewrite in proper STAR.

Model answer (2-min interview version)

  • Failures: (1) Situation over-scoped (org chart/reporting lines — irrelevant); (2) Task never stated (what was he personally accountable for?); (3) Action vague and collective ("we had meetings," "we figured out a way" — no attributable decision); (4) Result missing ("it worked out" is not an outcome).
  • Rewrite (≈2 min, "I" throughout): "Situation: a regional director kept changing requirements mid-sprint on a territory-assignment Flow, risking our delivery date. Task: as the developer, I owned translating his shifting rules into logic without blowing the timeline. Action: I proposed locking requirements for the current sprint and logging new asks to a backlog for sprint two, and I built the Flow config-driven with custom metadata thresholds so future changes wouldn't need a redeploy — then demoed that flexibility to address his real worry about rigidity. Result: we shipped on the original date, his change requests dropped by roughly half afterward, and he asked for me specifically on the next project."
  • Two governing rules: "I" not "we"; quantify the Result. STAR is a guideline (2–3 min, roughly 20/10/50/20% S/T/A/R), not a rigid script.

Self-grade checklist

  • Named all four STAR-component failures explicitly
  • Identified the "we" vs "I" problem by name
  • Identified the missing/vague Result by name
  • Delivered a full rewritten STAR answer under ~2.5 minutes
  • Stated the two governing rules verbatim

THE REDO — model answer

S: stakeholder kept changing requirements, risking the deadline (1-2 sentences)
T: I owned translating requirements into logic without blowing the timeline
A: I proposed a sprint-lock + backlog; built config-driven Flow (custom metadata);
   demoed the flexibility to address his real worry
R: shipped on time; his change requests dropped ~50%; he requested me on next project
Rules: "I" not "we"; quantify the Result; STAR = guideline not script

RETRIEVAL DRILL — model answers

  1. STAR stands for? → Situation–Task–Action–Result.
  2. Three named pitfalls? → Over-explaining Situation, using "we" instead of "I," not quantifying the Result.
  3. Rough S/T/A/R time split? → ~20% / 10% / 50% / 20% of a 2–3 minute answer.
  4. Why is "we figured it out" disqualifying? → It's not a Result — no outcome, no number, no attribution to the candidate.
  5. Script or guideline? → Guideline — it should sound like a natural story, not a checklist recited aloud.

INCIDENT 4 — THE PROJECT EXPLAINED BACKWARDS

The problem restated

A chronological project answer had no reserve depth for the "toughest part" follow-up. Contrast chronology vs. the 7-step structure and explain the 3-level rehearsal trick.

Model answer (2-min interview version)

  • 7-step structure: (1) company overview & role, (2) problem statement, (3) why these technology choices were made (the skipped step), (4) approach/solution design, (5) results with numbers, (6) conclusion/learning, (7) toughest challenge (the war story).
  • Why chronology fails: it answers "what happened when," not "why" or "what was hard" — both are judgment questions with no natural home in a sequence of events; once the chronology is told, there's nothing rehearsed left for a depth follow-up.
  • The Verve AI 3-level rehearsal trick: prep every project at three depths in advance — Junior (proves you did the work: "I built the triggers and the LWC"); Mid-level (names the trade-off: "we chose trigger+handler over Flow because the roll-up needed multi-object aggregation and recursion control Flow couldn't express safely at our volume"); Senior (connects to risk/impact: "if we'd used Flow there we'd have hit the per-record Get bulk wall on the first mass update — I'd seen that failure before, so we bulkified from day one and it survived a 5,000-record migration cleanly").
  • Model war-story template (verbatim from source): "We had CPU timeout issues during bulk Opportunity updates from integration. I redesigned the logic using Queueable Apex and moved heavy processing asynchronously, which reduced transaction failures significantly."

Self-grade checklist

  • Listed all 7 steps in order
  • Named step 3 as the one candidates skip
  • Explained why chronology has no reserve depth
  • Gave Junior/Mid/Senior versions of one real project
  • Reproduced the model war-story shape (problem → decision → quantified-ish result)

THE REDO — model answer

7 steps: role -> problem -> why-this-tech -> design -> results(numbers) -> learning -> war story
Chronology fails: answers WHEN not WHY/HARDEST -> no reserve for follow-up
3 levels: Junior(did it) / Mid(named the trade-off) / Senior(risk+impact)
Template: problem -> technical decision -> quantified result

RETRIEVAL DRILL — model answers

  1. 7 steps in order? → Company/role, problem statement, why-this-tech, approach/design, results (numbers), conclusion/learning, toughest challenge.
  2. Most-skipped step? → Step 3 — why these technology choices were made; it's the most differentiating step because it proves judgment, not just execution.
  3. Three rehearsal depths? → Junior (did the work), Mid-level (names the trade-off), Senior (connects to team risk/production impact).
  4. Why no reserve after chronology? → All prepared material was spent on sequencing; nothing was rehearsed for "why" or "what was hard."
  5. Model toughest-challenge shape? → CPU timeout on bulk Opportunity updates → redesigned with Queueable Apex, moved processing async → reduced transaction failures significantly.

INCIDENT 5 — THE TRICK QUESTION THAT GREW A "WHY"

The problem restated

Correct memorized answers ("no" / "no") collapsed under a "why?" follow-up. Give the real mechanisms and the general prep rule.

Model answer (2-min interview version)

  • Future + sObjects: future method arguments are serialized when queued and deserialized at later, asynchronous execution time; an sObject would be a stale snapshot by then (something else could have changed/deleted it) — the platform restricts to primitives/collections of primitives (pass an Id or JSON) forcing a fresh re-query inside the method. (Bonus: also can't be non-static or return a value — there's no synchronous caller left waiting.)
  • Callout in a trigger: the trigger runs inside the same transaction as its uncommitted DML; a synchronous callout mid-transaction would hold that uncommitted work open while waiting on an external system — blocked with "Callout not allowed after uncommitted work performed." Fix: push the callout to @future(callout=true) or a Queueable with Database.AllowsCallouts, where the original transaction has already committed by execution time.
  • General rule: every trick-question bank entry is a two-part flashcard — fact + mechanism. Drill the mechanism specifically; a fact alone is worth nothing against a "why" follow-up, which is the entire point of asking rapid-fire questions in the first place.

Self-grade checklist

  • Explained the serialization/staleness reason for the sObject restriction
  • Named the non-static/no-return-value bonus facts and their reason
  • Explained the uncommitted-work reason for the trigger-callout block
  • Named both async escape hatches (@future(callout=true), Queueable+AllowsCallouts)
  • Stated the fact+mechanism two-part flashcard rule

THE REDO — model answer

Future+sObject: args serialized/queued for later async run -> sObject would be stale ->
                primitives/JSON only, re-query fresh inside method
Callout in trigger: same transaction as uncommitted DML -> sync callout would hold it open ->
                    blocked ("uncommitted work") -> push to @future(callout=true)/Queueable+AllowsCallouts
Rule: every bank entry = fact + mechanism, drill both

RETRIEVAL DRILL — model answers

  1. Why no sObject in future methods? → Serialized/queued args could be stale by async execution time; primitives/collections + re-query avoids acting on stale state.
  2. Why no non-static/return value? → No synchronous caller remains to receive it; the call is disconnected from the original execution.
  3. Why no callout in a trigger? → It runs inside the same transaction as uncommitted DML; a sync callout would hold that open — blocked by the platform.
  4. Exact error message? → "Callout not allowed after uncommitted work performed."
  5. Two escape hatches?@future(callout=true) or a Queueable with Database.AllowsCallouts.

INCIDENT 6 — THE NUMBER SAID TOO SOON

The problem restated

Candidate named a below-market point number before the company shared a range. Name the three mistakes, the benchmark data, and the corrected script.

Model answer (2-min interview version)

  • Three mistakes: (1) named a number first, unprompted by any company range — surrendering the anchor; (2) gave a single point figure instead of a range — inviting only a downward counter; (3) didn't know the market benchmark, so the "safe" number was arbitrary and below the actual floor.
  • Benchmark data (memorize): US 3–5 yr mid-level: $100,000–$130,000, with a $130K floor for 3+ years plus an advanced cert (Kore1), Salesforce Ben median $120K (intermediate) / $140K (senior). India: ₹10–15 LPA, 3 yrs ≈ ₹10–12 LPA, top cities ₹15–25 LPA+, senior ₹27 LPA. Premium: +$15–25K / +₹3–5 LPA for Data Cloud/Agentforce production experience and 4–6 certs.
  • Corrected script: deflect first ("I'd love to hear the range you've budgeted — that'll help me understand where we're starting"); if pressed, give a researched range with named justifications ("based on my experience, certs, and current market data, I'm targeting $115,000–$130,000"); if lowballed, counter with a specific differentiator ("given my Data Cloud production experience, is there room to move closer to $X?").

Self-grade checklist

  • Named all three compounding mistakes
  • Stated the exact US band + $130K floor condition
  • Stated the exact India band
  • Named the two premium-adders
  • Delivered deflect / range-counter / lowball-counter scripts

THE REDO — model answer

Mistakes: named number first; single point not range; no benchmark data
US: $100-130K (3+ yrs + adv cert -> $130K floor); median $120K/$140K senior
India: Rs10-15 LPA (3yr ~10-12; top cities 15-25+; senior 27)
Premium: +$15-25K / +Rs3-5 LPA for Data Cloud/Agentforce + 4-6 certs
Script: deflect -> researched range w/ justification -> counter a lowball with a differentiator

RETRIEVAL DRILL — model answers

  1. Why does naming first cost leverage? → It sets the anchor the rest of the negotiation orbits around, almost always downward from there.
  2. Why is a range better than a point number? → Invites a conversation and research-backed room, rather than a binary accept/reject.
  3. US band + floor condition? → $100,000–$130,000; $130K floor for 3+ years plus an advanced certification.
  4. India band? → ₹10–15 LPA (3 yrs ≈ ₹10–12 LPA; top cities ₹15–25 LPA+; senior ₹27 LPA).
  5. Two things that raise the number? → Data Cloud/Agentforce production experience; 4–6 certifications.

INCIDENT 7 — THE EMPTY SILENCE AT THE END

The problem restated

"No questions" at the close of an interview reads as disinterest and can decide a close call. Explain why, and script 2–3 ready questions.

Model answer (2-min interview version)

  • Why it reads negative: interviewers use the closing question as a genuine engagement signal; a candidate engaged for 90 minutes almost always has some real curiosity, so "no questions" more often reflects end-of-round fatigue than actual disinterest — but the interviewer can only score the observed behavior, and documented Reddit/Blind wisdom states plainly: "Interviewers notice when you have no questions at the end — reads as disinterest."
  • Three ready questions (pre-written, not improvised): "What does your ideal candidate look like?" (calibration-seeking); "What's the team's deployment process?" (DevOps/CI-CD awareness); "How do you balance Flow vs Apex here?" (signals decision-matrix thinking from Module 4 without announcing it).
  • Discipline: write these BEFORE the interview, because end-of-round fatigue is exactly when spontaneous generation fails; salary/benefits questions belong at the HR/offer stage, not this closing moment.

Self-grade checklist

  • Explained why "no questions" reads as disinterest, not neutral
  • Cited the Reddit/Blind line
  • Gave all 3 source-recommended questions
  • Explained why the Flow-vs-Apex question doubles as a technical signal
  • Stated where salary questions belong instead

THE REDO — model answer

Why negative: engaged candidates usually have real curiosity; "no questions" reads as
              fatigue-driven disengagement, and interviewers can only score what they observe
3 questions: ideal-candidate profile / deployment process / Flow-vs-Apex balance
Discipline: pre-write before fatigue sets in; salary Qs -> HR/offer stage only

RETRIEVAL DRILL — model answers

  1. Why disinterest not neutral? → Because engaged candidates usually generate curiosity; absence reads as the negative case by default.
  2. Three questions? → Ideal-candidate profile, deployment process, Flow-vs-Apex balance.
  3. Why does Flow-vs-Apex double as a signal? → It demonstrates you already reason in the Module 4 decision-matrix terms without stating it directly.
  4. Where do salary questions belong? → HR/recruiter/offer stage, not the technical or managerial round's close.
  5. Why pre-write rather than improvise? → End-of-interview fatigue reliably kills spontaneous generation; this is one spot where scripting beats live adaptation.

INCIDENT 8 — THE LIVE CODING FREEZE

The problem restated

Correct final fix, but 40+ seconds of unnarrated silence tanked the rating. Explain what's actually scored and script the narration technique.

Model answer (2-min interview version)

  • What's scored: in a shared-screen live-coding round, the interviewer can only observe what you type and say — a silently-correct candidate and a silently-stuck candidate look identical. The rating is built from observable process: hypothesis formation, verification, bulk/edge-case awareness, communication under pressure — not solely the final diff.
  • Narration technique (never more than ~20–30 sec unannounced silence): state the hypothesis before confirming it ("my first suspect is the SOQL call inside the loop"); narrate verification ("this runs once per Account in Trigger.new, so on a bulk update it's exactly the 101-query pattern"); narrate the fix as you type ("collecting Account Ids into a Set, one query with an IN clause, Map keyed by AccountId, roll-up from the map inside the loop"); if genuinely stuck, say so explicitly ("give me about 20 seconds to trace through this") rather than going silent.
  • The governing rule (Reddit/Blind, verbatim): "A 30-second pause to organize your thoughts is better than 3 minutes of confusion" — the pause isn't the problem, unannounced open-ended silence is.

Self-grade checklist

  • Identified "observable process, not just the final diff" as what's scored
  • Explained why silent-correct and silent-stuck look identical to the interviewer
  • Gave the hypothesis→verify→narrated-fix technique
  • Gave the "announce a bounded pause" fallback for genuine stuck moments
  • Cited the 30-second-pause-vs-3-minutes-confusion rule

THE REDO — model answer

Scored: observable reasoning process (hypothesis/verify/bulk-awareness/communication), not just the diff
Technique: state hypothesis -> narrate verification -> narrate fix while typing -> if stuck, announce a
           bounded pause ("give me 20 seconds") instead of going silent
Rule: a 30-sec organized pause beats 3 min of unnarrated confusion
Fix (this bug): Set of Account Ids -> one query w/ IN -> Map -> roll-up from map inside the loop

RETRIEVAL DRILL — model answers

  1. What can a live-coding interviewer observe/score? → Only what you type and say — your reasoning process, not your internal thinking.
  2. Why is a narrated wrong hypothesis better than silent correct reasoning? → It gives the interviewer positive signal about debugging process; silence gives nothing regardless of correctness.
  3. Silence rule? → Never go more than ~20–30 seconds without saying something.
  4. What to say if genuinely stuck? → Announce a bounded pause explicitly ("give me about 20 seconds to trace through this") rather than staying silent.
  5. Fix pattern for SOQL-in-loop, narrated? → "Collect Account Ids into a Set, run one SOQL with an IN clause, build a Map keyed by AccountId, then do the roll-up from the map inside the loop instead of re-querying."

🏆 CAPSTONE — THE FULL LOOP (model script)

Compare your own five-part draft against this model. Do not copy it verbatim into a real interview — adapt every fact to your actual experience. The structure is what you're borrowing; the content must be true.

Part 1 — The 60–90 second pitch (model)

"I'm a Salesforce developer with about four years of experience, mostly in Apex, LWC, and declarative automation — I've spent the last two years owning backend integrations and trigger frameworks for a mid-size sales org. The win I'm proudest of: our Opportunity-to-ERP sync was failing under bulk load with CPU timeouts, and I redesigned it around Queueable Apex with proper bulkification, which cut transaction failures to near zero and let the business run 5,000-record migrations without anyone paging me at 2 AM. I'm looking at this role specifically because [company]'s move into Data Cloud/Agentforce matches where I want to grow next, and from what I've read about your engineering team's declarative-first posture, it sounds like a place where the Flow-vs-Apex judgment calls I care about actually get taken seriously." (≈75 seconds spoken at a normal pace — time yourself.)

Part 2 — Three STAR stories at three depths (model)

Story A — "a time you handled a difficult stakeholder" (full STAR, ~2 min):

"Situation: on a territory-assignment Flow project, a regional director kept changing requirements mid-sprint, putting our delivery date at risk. Task: as the developer, I owned translating his shifting rules into working logic without blowing the timeline. Action: I proposed locking requirements for the current sprint and logging new asks to a backlog for sprint two, and I built the Flow to be config-driven off custom metadata thresholds so future changes wouldn't need a redeploy — then I demoed exactly that flexibility to him, which addressed his real worry that his team would be stuck with something rigid. Result: we shipped on the original date, his change requests dropped by roughly half after that conversation, and he specifically asked for me on the next project."

  • Junior depth: "I built a Flow for territory assignment and handled a stakeholder who kept changing requirements."
  • Mid depth: "I chose to make the thresholds config-driven via custom metadata instead of hardcoding them, specifically so future requirement changes wouldn't require a redeploy — that was the trade-off that defused the conflict."
  • Senior depth: "If I'd hardcoded those thresholds, every future change request would have meant a deployment cycle and more stakeholder friction down the line — the config-driven design wasn't just a nice-to-have, it removed an entire class of future escalations and gave the business self-service control over a rule that used to require engineering time."

Story B — "a tight deadline" (full STAR, ~2 min):

"Situation: two weeks before a major release, QA found that our bulk Case-closure automation was timing out and duplicating emails under a 500-record mass close. Task: I was the one who owned that automation and had to fix it before the release date without regressing anything else. Action: I traced it to a per-record SOQL Get inside a loop and a duplicate email-send step from an earlier patch; I rebuilt it with a single batched Get, an idempotency guard field, and fault paths logging to an error object. Result: we shipped on schedule, the mass-close operation went from a 45-minute failure-prone run to under 3 minutes with zero duplicate sends in the following two months of production use."

  • Junior: "I found and fixed a bulk email bug before a release deadline."
  • Mid: "The real fix wasn't just batching the query — it was adding an idempotency guard, because the previous 'fix' had actually caused the duplicates by adding a second send step instead of gating the first one."
  • Senior: "This is the same disease as an unbulkified Apex loop, just in Flow — and I made sure the fix included fault paths and an error log, because the original failure had been invisible for months precisely because nobody had instrumented it; the deadline fix and the observability fix had to ship together or the bug would just resurface quietly."

Story C — "a project that failed and what you learned" (full STAR, ~2 min):

"Situation: early in a project, I shipped a Record-Triggered Flow to sync Account and Contact ownership without checking for cross-object recursion. Task: I was solely responsible for that automation's design. Action: within a week it caused a runaway update loop between the two objects — I diagnosed it as a cross-object ping-pong that the platform's built-in recursion guard doesn't catch, deleted the redundant second flow, and rebuilt the sync as one-directional with a value-differs condition so re-runs became no-ops. Result: the org went from nightly automation-related performance incidents to zero, and I turned that incident into a design checklist — one owner per field, value-differs conditions, and a Custom Metadata bypass flag — that the team still uses today."

  • Junior: "I built a flow that caused a recursion loop and I fixed it."
  • Mid: "The trade-off I learned: the platform's recursion guard only protects same-flow, same-record loops — cross-object sync needs its own convergence design, which most admins don't know to check for."
  • Senior: "I turned that specific failure into a standing team checklist, because the failure mode wasn't really about my flow — it was about the team having no governance discipline for ownership of shared fields, and a checklist fixes that at the process level, not just the one flow level."

Part 3 — Full 7-step project walkthrough (model)

"1. I was the sole backend developer on a 6-month project for a mid-size distributor moving off spreadsheets onto Salesforce for order management. 2. The core problem: their Opportunity-to-ERP sync was manual, error-prone, and couldn't handle their end-of-quarter bulk order volume. 3. We chose Queueable Apex over a simple Flow for the sync specifically because it needed retryable external callouts and had to survive bulk volume — Flow's synchronous callout restriction and shared governor limits made it the wrong tool once we modeled the actual quarter-end load. 4. The design: a trigger detects the stage change, enqueues a Queueable with AllowsCallouts, which calls the ERP with an idempotency key and a retry/backoff on failure, logging failures to a custom error object. 5. Results: the sync went from a 20%-manual-error-rate spreadsheet process to under 0.1% failure rate, and quarter-end order processing time dropped from about 3 days to same-day. 6. What I learned: build the observability (error log, retry count, idempotency) into the very first version, not as a v2 — we almost shipped without it and would have had the exact 'silent failure' problem I've since seen bite other teams. 7. The toughest part: we had CPU timeout issues during the initial bulk Opportunity updates from the integration — I redesigned the logic using Queueable Apex and moved the heavy processing asynchronously, which reduced transaction failures significantly and became the pattern the rest of the team adopted for later integrations." (≈2.5 minutes spoken.)

Part 4 — Full salary negotiation script (model, adapt the number to your actual market/experience)

Recruiter: "What are your salary expectations?" You (deflect): "I'd love to hear the range you have budgeted for this role first — that'll help me understand where we're starting from." Recruiter (if they push back and ask you to go first): "Understood — based on my experience (four years, PD1 certified, hands-on Queueable/integration work), and current market data for a mid-level Salesforce developer role, I'm targeting $115,000 to $130,000." (India equivalent: "₹12 to ₹16 LPA, given my experience and certifications.") Recruiter (offers below range, e.g. $105K): "I appreciate that, and I'm genuinely excited about the role. Given my production experience with async Apex and integrations — and that the market data I've seen for this band tops out closer to $130K — is there room to move closer to $120K?" Recruiter (holds firm): "That's helpful to know. Is there flexibility elsewhere — signing bonus, review timeline, or title — that could help bridge the gap?" (Never accept in the same breath the number is offered; a pause, or "let me think about it and get back to you tomorrow," is always acceptable.)

Part 5 — Closing questions (model, with justification)

  1. "What does your ideal candidate look like for this role, based on what we've talked about today?" — gets real-time calibration feedback and shows you're thinking past just getting hired.
  2. "What's the team's deployment process — are you on a CI/CD pipeline, or still doing manual promotions?" — signals DevOps awareness and is genuinely useful information before accepting an offer.
  3. "How do you all think about Flow versus Apex here — is there a house standard, or is it case by case?" — signals the Module 4 decision-matrix mindset without stating it outright, and gives you real signal about the engineering culture you'd be joining.

THE ONE-CARD KEY (carry this)

Walking into any round — technical, behavioral, HR, salary — recite these 5 lines cold:

  1. Know your loop. Consulting/IT-services = 3–4 round Salesforce-depth loop; product companies = DSA gate first. Ask the recruiter if unsure. Pace rapid-fire rounds at duration ÷ question-count.
  2. STAR, "I," quantified Result. Never "we." Never end without a number or a named outcome. STAR is a guideline (2–3 min), not a script.
  3. 7 steps for any project, 3 depths for any follow-up. Role → problem → why-this-tech (the skipped step) → design → results → learning → war story. Junior/Mid/Senior rehearsed in advance.
  4. Fact + mechanism, always. A memorized trick-question answer with no "why" behind it fails the first follow-up. Narrate your reasoning out loud in live coding — silence and confusion look identical to an interviewer.
  5. Never name a salary number first, and never as a single point. Know the benchmark ($100–130K US / ₹10–15 LPA India, 3–5 yr band) before the call. Always have 2–3 closing questions pre-written — "no questions" reads as disinterest.

Numbers to say cold: 45min/18q ≈ 2.5min/question (EY) · 38 questions, 100% scenario (Capgemini) · $100,000–$130,000 US (3–5 yr), $130K floor at 3+ yrs + advanced cert, median $120K/$140K senior · ₹10–15 LPA India, senior ₹27 LPA · premium +$15–25K/+₹3–5 LPA for Data Cloud/Agentforce · 20/30/50 rule (Trailhead/certs/real experience) · 60–90 sec pitch · 2–3 min STAR/project answers · "Technical knowledge gets you shortlisted, communication gets you hired."


RAPID-FIRE PRACTICE SET (pulling from the master report's §18 trick-question bank)

Same format as this curriculum's other modules' rapid-fire drills — answer out loud in under 15 seconds each, then check.

  1. Can a future method be called from a trigger? → Yes (after-trigger, safely); guard against recursive re-fire.
  2. Can a future method be called from a batch execute() or from another future? → No — AsyncException; route through Queueable.
  3. Can a future method take sObjects? → No — primitives/collections only; pass IDs or JSON, re-query fresh inside.
  4. Can a future method be non-static or return a value? → No and no.
  5. Can you call out directly in a trigger? → No — @future(callout=true) or Queueable with AllowsCallouts.
  6. Callout after DML in the same transaction? → No — "Callout not allowed after uncommitted work."
  7. What's Trigger.new in an after-delete? → Null — use Trigger.old.
  8. Does a before-insert trigger have a record Id? → No (assigned at save); before-update does.
  9. Multiple triggers on the same object — guaranteed order? → Not guaranteed.
  10. Max records per trigger invocation (per chunk)? → 200.
  11. Trigger recursion depth limit? → 16.
  12. Can you SELECT * or query without FROM? → No to both; use FIELDS(ALL/STANDARD/CUSTOM) with a LIMIT for STANDARD/CUSTOM.
  13. Aggregate query over 2,000 rows? → Runtime error — no queryMore on aggregates.
  14. COUNT() vs COUNT(field)? → All rows vs. non-null values only.
  15. WHERE vs HAVING? → Before vs. after aggregation.
  16. Can you update a parent and its child in one DML statement? → No — one sObject type per DML statement.
  17. Can you merge more than 3 records? → No — max 3, one master.
  18. Can you delete a User? → No — deactivate only.
  19. Does @TestSetup run per test method? → No — once per test class; data rolls back at class end.
  20. Can you catch a LimitException? → Effectively no — the transaction rolls back.
  21. Max concurrent batch jobs? → 5 (plus up to 100 held in the flex queue).
  22. How many Queueable children can one execution add? → 1 — "Too many queueable jobs added to the queue: 2."
  23. Minimum frequency for Scheduled Apex? → Once per hour.
  24. How many fields in a Salesforce cron expression? → 7 (seconds included).
  25. Does NEXT_N_DAYS:7 include today? → No.

Behavioral/process rapid-fire (this module's own bank):

  1. What does STAR stand for? → Situation–Task–Action–Result.
  2. What's the biggest STAR pitfall? → Using "we" instead of "I," or giving no quantified Result.
  3. What's the 7-step project structure's most-skipped step? → Why the technology choices were made.
  4. What's the 3-level rehearsal trick? → Junior (did it) / Mid (trade-off) / Senior (risk & impact).
  5. US salary band, 3–5 yr? → $100,000–$130,000.
  6. India salary band, 3–5 yr? → ₹10–15 LPA.
  7. Should you name a salary number first? → No — deflect to the company's range first.
  8. What's the Jason Atwood 20/30/50 rule? → 20% Trailhead, 30% certifications, 50% real experience.
  9. What does "no questions at the end" signal to an interviewer? → Disinterest/low engagement — always have 2–3 ready.
  10. What's the rule for silence in live coding? → A 30-second organized pause is fine; longer unnarrated silence reads as stuck.

End of Module 10 answer sheet — and the sealed end of the curriculum's answer-sheet sequence. Redo the capstone script out loud at least once a day this final week.

On this page

INCIDENT 1 — THE CANDIDATE WHO DIDN'T KNOW WHAT ROUND IT WASThe problem restatedModel answer (2-min interview version)Self-grade checklistTHE REDO — model answerRETRIEVAL DRILL — model answersINCIDENT 2 — THE EY MARATHONThe problem restatedModel answer (2-min interview version)Self-grade checklistTHE REDO — model answerRETRIEVAL DRILL — model answersINCIDENT 3 — THE STORY WITH NO ENDINGThe problem restatedModel answer (2-min interview version)Self-grade checklistTHE REDO — model answerRETRIEVAL DRILL — model answersINCIDENT 4 — THE PROJECT EXPLAINED BACKWARDSThe problem restatedModel answer (2-min interview version)Self-grade checklistTHE REDO — model answerRETRIEVAL DRILL — model answersINCIDENT 5 — THE TRICK QUESTION THAT GREW A "WHY"The problem restatedModel answer (2-min interview version)Self-grade checklistTHE REDO — model answerRETRIEVAL DRILL — model answersINCIDENT 6 — THE NUMBER SAID TOO SOONThe problem restatedModel answer (2-min interview version)Self-grade checklistTHE REDO — model answerRETRIEVAL DRILL — model answersINCIDENT 7 — THE EMPTY SILENCE AT THE ENDThe problem restatedModel answer (2-min interview version)Self-grade checklistTHE REDO — model answerRETRIEVAL DRILL — model answersINCIDENT 8 — THE LIVE CODING FREEZEThe problem restatedModel answer (2-min interview version)Self-grade checklistTHE REDO — model answerRETRIEVAL DRILL — model answers🏆 CAPSTONE — THE FULL LOOP (model script)Part 1 — The 60–90 second pitch (model)Part 2 — Three STAR stories at three depths (model)Part 3 — Full 7-step project walkthrough (model)Part 4 — Full salary negotiation script (model, adapt the number to your actual market/experience)Part 5 — Closing questions (model, with justification)THE ONE-CARD KEY (carry this)RAPID-FIRE PRACTICE SET (pulling from the master report's §18 trick-question bank)