Key Takeaways :
- Structure the interview in four stages – a short technical screen, a deeper technical interview, a paid practical exercise, and a team-fit conversation.
- Bulkification and governor limits deserve the highest weight, because poor understanding of Salesforce’s transaction constraints can turn directly into production failures.
- Strong candidates explain trade-offs rather than reciting definitions, so the most useful follow-up is often, “when would that be the wrong choice?”
- Use a consistent scoring rubric across candidates, weighting technical areas according to the role rather than relying on certifications or interview impressions alone.
Quick Answer: Structure it as screen → technical → paid practical exercise → team fit. Pick 10–12 questions from the bank below, weighted to the role. The single most useful follow-up in any Salesforce interview is “when would that be the wrong choice?” – rehearsed answers stop dead there. Weight bulkification and governor limits highest, because that’s the gap that causes production incidents.
Most Salesforce interview question lists are written for candidates; this one is written for the person on the other side of the table.
Every question below comes with what you’re listening for, the follow-up that separates memorised from understood and where relevant, the red flag. The problem with using the most-published questions is that candidates have already revised the answers.
How to Structure the Interview

Four-Stage Salesforce Developer Interview Structure: 20-minute screen, 45-minute technical, paid practical exercise and team fit conversation
- Put The Technical Screen First: Twenty minutes and five questions filter out most unsuitable candidates before anyone senior spends time.
- The Paid Practical Exercise Is The Stage Most Often Skipped: Usually to move faster – and it’s the one that predicts on-the-job performance best. Give a small, realistic task from your actual backlog, pay for their time, and assess four things: Did they bulkify without being told, do the tests assert anything meaningful, did they ask clarifying questions, and can someone else read the code?
When the internal team doesn’t have enough Salesforce engineering depth to design or assess that exercise, Salesforce Development Services can provide the technical expertise needed to evaluate the work against real production standards.
Need Help Evaluating Salesforce Talent?
Get experienced Salesforce engineers involved in technical screening, practical exercises, and backlog reviews before you make the hire.
Related: How to hire a Salesforce developer
What You’re Actually Listening For

Comparison of memorised answers versus genuinely understood answers across six patterns
The follow-up matters more than the question. For almost anything technical, ask: “When would that be the wrong choice?”
A candidate who has memorised an answer stops at the definition. One who has lived with the consequences immediately names a scenario where the standard advice fails.
Question bank map showing 55 questions distributed across eleven areas from platform fundamentals to Agentforce

Platform Fundamentals
- Walk me through what happens when a record is saved.
Listening For: The order of execution in outline – before-save Flows, before-triggers, validation rules, save, after-triggers, after-save Flows, workflow rules, roll-up summaries.
The Detail That Separates People: Validation rules run after before-triggers. A before-trigger can set a value that a validation rule then rejects. Anyone who’s debugged that mentions it unprompted.
Follow-up: “Where do roll-up summaries recalculate and why does that matter?”
- What’s the difference between a before and after trigger?
Listening For: Before-triggers modify the triggering record without DML; after-triggers handle related records and have the record ID available on insert.
Follow-Up: “So when would you deliberately use an after-trigger for a same-record update?” The honest answer is rarely.
- Configuration or code – how do you decide?
Listening For: A maintainability answer, not a capability one. The strongest version is “who maintains this in two years?”
Red Flag: Reaching for Apex by default. A strong developer should be able to explain when declarative automation is sufficient and when Flow vs Apex becomes a genuine architectural decision.
- Explain multi-tenancy and why it matters to you as a developer.
Listening For: Shared infrastructure, governor limits as the consequence and that limits are architectural constraints rather than performance guidance.
Follow-Up: “What happens when you exceed one?” The transaction rolls back entirely; it cannot be caught and handled.
- What’s the difference between a lookup and a master-detail relationship?
Listening For: Cascading delete, roll-up summaries, inherited sharing and a required parent on master-detail.
Follow-Up: “You’ve built master-detail and now need the records independent. Options?” Converting is possible with constraints, and it’s a data migration either way. Good candidates flag the migration cost.
- What do the three annual releases mean for your work?
Listening For: Regression testing, preview sandboxes, API version implications, and that you don’t control the schedule.
Red Flag: Never having thought about it – it suggests only greenfield or short engagements.
Apex and Triggers
- You have a trigger that queries inside a loop. What happens with 200 records, and how do you fix it?
Listening For: 200 queries, failure at 100, and the fix – collect IDs into a Set, one query outside the loop into a Map, loop again to apply.
This is the single most important question on this page. A candidate who can’t answer it will write code that fails in production.
Follow-Up: “What if you also need to update related records inside that loop?”
- How do you stop a trigger firing twice?
Listening For: A static Boolean guard in the handler class and ideally why it works – static variables reset at the end of each transaction.
Follow-Up: “What causes the re-fire in the first place?” Workflow field updates and a Flow updating the same record are the usual culprits.
- How many triggers should an object have and why?
Listening For: One, delegating to a handler. The reason matters more than the number – with multiple triggers, Salesforce decides execution order and doesn’t tell you.
- Describe your trigger framework.
Listening For: Trigger routes only, handler decides what runs on which event, service class holds business logic, selector class holds SOQL. No framework opinion usually means they’ve only maintained other people’s code.
Follow-Up: “Why put SOQL in a selector rather than the service class?”
- What’s the difference between Trigger.new and Trigger.old and when is each null?
Listening For: Trigger.old is null on insert; Trigger.new is null on delete. Both available on update.
Follow-Up: “Which are read-only in an after-trigger?” Both – which is why after-trigger same-record updates need explicit DML.
- How do you compare a field’s old and new value?
Listening For: Trigger.oldMap.get(record.Id).Field__c against record.Field__c. A candidate reaching for a nested loop has just failed the bulkification question implicitly.
- What’s a wrapper class and when have you used one?
Listening For: Combining data from multiple objects for a UI or attaching a boolean for selection. Concrete usage matters more than the definition.
- How do you handle exceptions in Apex?
Listening For: Catching specific types rather than bare Exception, custom exception classes, logging with context, never swallowing silently.
Follow-Up: “What does Database.update(records, false) give you?” Partial save with per-record results – useful in bulk where one bad record shouldn’t fail 199 good ones.
- What’s the difference between with sharing, without sharing, and inherited sharing?
Listening for: record-level access enforcement and that with sharing should be the default, with exceptions documented.
Red Flag: Treating without sharing as a convenience.
- How would you refactor a 2,000-line Apex class you inherited?
Listening for: characterisation tests first, then extract methods, then split by responsibility. Starting to rewrite without tests tells you something.
Candidates who can explain how they’d safely refactor the class should also be able to discuss the principles covered in the Apex programming guide.
Asynchronous Apex
- When would you use Queueable over Batch Apex?
Listening For: Queueable for moderate chainable work with sObject parameters and a monitorable job ID; Batch when volume needs limits resetting per 200-record chunk.
Follow-Up: “And when would @future be right?” An honest “rarely now” is a positive signal.
- You need a callout from a trigger. What happens?
Listening For: You can’t, directly. It must be asynchronous – Queueable with Database.AllowsCallouts.
Follow-Up: “What if you’ve already done DML in that transaction?” The “uncommitted work pending” exception, which catches out people who haven’t hit it.
- How do you process a million records?
Listening For: Batch Apex with a QueryLocator and that limits reset per chunk.
Follow-Up: “What batch size and why?” Smaller for heavy per-record work, larger for light work – limits per chunk against total execution count.
- What are the limits on chaining Queueable jobs?
Listening For: One job enqueued from a running Queueable in most contexts, versus 50 from a synchronous transaction.
- How do you monitor a long-running async job?
Listening For: AsyncApexJob, the Apex Jobs page, the job ID returned by enqueueJob, and custom logging for anything business-critical.
SOQL and Data
- What makes a query selective and why care?
Listening For: Indexed fields, a small enough proportion of the object, and that non-selective queries fail outright on large objects rather than just running slowly.
Follow-Up: “How would you check?” The Query Plan tool, cost below 1.0 meaning an index is used. Few candidates know this, and it’s a strong signal.
- How do you prevent SOQL injection?
Listening For: Bind variables and, for dynamic queries, Database.queryWithBinds with a bind map.
Currency Marker: Citing String.escapeSingleQuotes() as the primary defence is older material – and escaping doesn’t protect field or object name positions anyway.
- Explain a parent-to-child versus child-to-parent query.
Listening For: Dot notation upward to five levels, subquery downward one level, and that the subquery uses the child relationship name – plural and often not the object name.
Follow-Up: “Where do you find that relationship name?” Object Manager, on the lookup field. Guessing it is a common time-waster.
- What’s a semi-join and when have you used one?
Listening For: WHERE Id IN (SELECT …) and the anti-join variant for finding records without children – genuinely useful for data quality work.
- How do you enforce field-level security in a SOQL query?
Listening For: WITH USER_MODE, which enforces object permissions, FLS, and sharing in one clause.
Currency Marker: WITH SECURITY_ENFORCED is the older answer – CRUD and FLS but not sharing.
- When would you use SOSL instead of SOQL?
Listening For: Text search across multiple objects when you don’t know which holds the data. Also, SOSL returns a maximum of 2,000 records and reads a search index that lags slightly.
For candidates working heavily with data access, the SOQL and SOSL guide provides a deeper look at query selection, relationship queries, and search patterns.
Lightning Web Components
- When do you use @wire versus an imperative Apex call?
Listening For: @wire for displaying data that should stay fresh; imperative when you control timing or need DML.
Follow-Up: “What’s the constraint on a wired Apex method?” It must be cacheable=true, which means it cannot perform DML.
- How do two sibling components communicate?
Listening For: Lightning Message Service. If they say pubsub, ask when they last built one – it was never a supported API.
Follow-Up: “And parent to child?” A public @api property. Reaching for LMS everywhere is over-engineering.
- Why does renderedCallback sometimes cause an infinite loop?
Listening For: It fires after every render, so changing a reactive property inside it triggers another render. Fix with a boolean guard.
- Do you still need @track?
Listening For: Rarely, since Spring ’20 – only when mutating an object’s internals rather than reassigning.
Currency Marker: “always required” means pre-2020 knowledge.
- Walk me through the LWC lifecycle hooks in order.
Listening For: Constructor, connectedCallback, render, renderedCallback, disconnectedCallback – and that data fetching belongs in connectedCallback, not the constructor.
- How do you test a Lightning Web Component?
Listening For: Jest, createElement, await Promise.resolve() before asserting because rendering is asynchronous, querying through shadowRoot, cleanup in afterEach.
Follow-Up: “Do Jest tests count toward your 75% coverage?” No – which is exactly why most orgs have none.
- What’s the difference between LWC and Aura, and is Aura deprecated?
Listening For: Web standards versus proprietary framework and that Aura is not deprecated – supported but receiving no new investment.
Red Flag: Claiming Aura is retired. It suggests repeating what they’ve read rather than checking.
A candidate should also be able to explain the modern relationship between LWC and Aura. The Lightning Web Components guide provides useful context when assessing candidates for LWC-heavy roles.
Flow and Automation
- Before-save or after-save Flow – how do you choose?
Listening For: Before-save for same-record field updates, no DML cost, roughly 10× faster. After-save for related records, emails, actions.
- Do Flows count toward Apex governor limits?
Listening For: Yes. Everything firing on a save shares one transaction budget – Apex, other triggers, Flows, validation rules, managed packages.
This catches out a lot of people, and it’s why code that passes in isolation fails in production.
- Where do Flows sit in the order of execution relative to triggers?
Listening For: Before-save Flows run before before-triggers; after-save Flows run after after-triggers.
Follow-Up: “So is ‘Flows run before triggers’ correct?” Only half – and plenty of published material gets this wrong.
- How do you handle errors in a Flow?
Listening For: Fault paths on every data element, logging to a custom object, {!$Flow.FaultMessage} for real error text, and that an empty fault path is worse than none.
- When would you refuse to build something in Flow?
Listening For: Complex collection processing, callouts needing retry logic, transaction control, volumes above scheduled Flow limits, or logic needing reuse from LWC and agent actions.
A candidate who can articulate those boundaries should also understand the broader capabilities covered in the Salesforce Flow guide.
Integration and APIs
- Which Salesforce API for a nightly 500,000-record load and why?
Listening For: Bulk API 2.0 – asynchronous, designed for volume, different limit profile from REST.
Follow-Up: “And for a real-time single-record lookup?” REST.
- How do you handle a callout that fails halfway through a batch?
Listening For: Retry with backoff, idempotency so replays don’t duplicate, logging failures for reprocessing and not assuming success.
This is where integration experience shows. Candidates without it describe the happy path only.
- What are Platform Events and when would you use them?
Listening For: Event-driven decoupling, publish-subscribe, replay IDs, and that they run in a separate transaction – often the point.
- How do you store credentials for an external system?
Listening For: Named Credentials or protected Custom Metadata. Anything mentioning a custom field or hardcoded value is a hard fail.
- Walk me through authenticating an external system to Salesforce.
Listening For: Connected App, an OAuth flow chosen deliberately, and awareness that the client credentials flow suits server-to-server.
Deeper: Salesforce integration
Security
- How do you enforce field-level security in Apex?
Listening For: WITH USER_MODE, AccessLevel.USER_MODE on DML or Security.stripInaccessible().
This separates candidates who’ve been through a security review from those who haven’t.
- A user can see a record they shouldn’t. Where do you look?
Listening For: Org-wide defaults, role hierarchy, sharing rules, manual shares – and the one people forget: Apex or a record-triggered Flow running in system mode.
- What’s the difference between a profile and a permission set?
Listening For: One profile per user versus multiple permission sets and that Salesforce is moving toward a permission-set-led model.
- How would you give a user access to one record without changing the sharing model?
Listening for: manual sharing or Apex managed sharing for programmatic cases.
- What would you check before an AppExchange security review?
Listening For: CRUD and FLS enforcement, SOQL injection, XSS in Visualforce or LWC, hardcoded IDs, insecure storage. Candidates who’ve been through one answer instantly.
Deeper: Salesforce compliance and security
Testing and DevOps
- Your test class hits 80% coverage. Is that good?
Listening For: “It depends entirely on whether the assertions prove anything.” Coverage records which lines executed not whether behaviour is correct.
A deliberately loaded question and it works.
- How do you test a class that makes a callout?
Listening For: HttpCalloutMock. If they haven’t done it, they haven’t shipped an integration.
- What does Test.startTest() actually do?
Listening for: resets governor limits for the enclosed block and forces async work to complete. “It starts the test” is reciting.
- Why should you avoid SeeAllData=true?
Listening For: It makes tests dependent on org data, so they pass in one environment and fail in another.
- How does your code get to production?
Listening For: Source control, a pipeline, validation-only deployments. Change sets aren’t disqualifying, but they tell you how much you’ll be teaching.
- How would you roll back a bad deployment?
Listening For: Salesforce has no native rollback – you deploy forward to a known-good state, which only works if it’s in version control.
This is the strongest single argument for source-driven development, and candidates who’ve lived it say so immediately.
Deeper: Salesforce DevOps
Scenario Questions
Harder to rehearse, which is why they’re worth the time.
An Opportunity update takes eight seconds, and users are complaining. Diagnose it.
Listening For: A method – check what fires on save first, then a debug log’s Limits section, then whether it’s CPU or query time. SOQL wait time doesn’t count toward CPU, so slow-but-under-limit points at query performance rather than code.
A nightly job has started failing with ‘Too many query rows: 50001’. What happened?
Listening For: Data volume grew past a threshold. Fix with selective filters or Batch Apex, not by micro-optimising the existing query.
Two automations update the same record, and you’re getting UNABLE_TO_LOCK_ROW. What now?
Listening For: Identify what’s contending, reorder or reduce batch size on data loads, move work asynchronously, add a fault path.
You’ve inherited an org with fifteen Flows and four triggers on Account. Where do you start?
Listening For: Map what fires before changing anything – Flow Trigger Explorer, debug logs, an inventory. Starting by deleting is a risk.
A stakeholder wants a custom object that duplicates something standard. What do you say?
Listening For: Pushback with a reason and asking what problem they’re solving. Also the licensing angle – duplicating standard functionality can breach your agreement.
Tell me about something you built that broke in production.
The most useful question on this page. Nobody can revise for it. Listen for a specific incident, what they changed, and whether they blame the platform, the requirements, or themselves. The third is rarest and most valuable.
Agentforce and AI
Increasingly asked, and most candidates have opinions rather than experience. That distinction is the point.
What have you actually deployed with Agentforce?
Listening for: specifics – topics, actions, grounding, guardrails. Vague enthusiasm means they’ve watched a demo.
How do you stop an agent giving wrong answers?
Listening for: grounding in Data 360, retrieval quality, tight topic scoping, instructions that constrain, testing with evaluation sets.
How would you expose existing Apex logic to an agent?
Listening for: @InvocableMethod. A strong candidate notes the same method also serves Flow and LWC – which is why the service-layer pattern matters.
When is an agent the wrong solution?
Listening for: deterministic processes, regulated advice, anything where a wrong answer is expensive or where a Flow does it more cheaply and predictably.
Deeper: what is Agentforce
Red Flags
- Can’t explain governor limits without prompting. Non-negotiable at any level.
- No source control experience. A genuine disqualifier in 2026.
- Describes every problem as needing custom code.
- Can’t name anything they’ve built that failed.
- Vague about personal contribution. Ask “what did you write?” until you get a straight answer.
- Hardcodes IDs or stores credentials in custom fields.
- Claims Aura or Visualforce is retired. Repeating what they’ve read rather than checking.
- Answers are word-perfect but collapse on the first follow-up. The clearest sign of a memorised list.
A Scoring Rubric

Scoring rubric weighting: bulkification and governor limits at 25 percent, declarative versus code judgement at 20 percent, testing at 15 percent, security at 15 percent, integration at 10 percent, DevOps at 10 percent, and communication at 5 percent
Score each area 1–4, then weight. Adjust weights to the role – an integration-heavy position raises that band; a greenfield build raises architecture judgement.
Score immediately after each interview, not at the end of the process. Memory compresses in favour of whoever you spoke to last.
Use the same rubric for every candidate. Comparing notes written in different formats is how bias enters.
Building a 45-Minute Interview From This Bank
Don’t ask 55 questions. Pick 10–12:
| Role type | Weight toward |
|---|---|
| Generalist developer | Q7, Q8, Q9, Q17, Q22, Q28, Q35, Q45, Q50, plus two scenarios |
| Integration-heavy | Q40, Q41, Q42, Q43, Q44, Q18, Q7, Q55, plus two scenarios |
| Front-end / LWC | Q28–Q34, Q7, Q45, Q50, plus one scenario |
| Senior / lead | Q10, Q16, Q39, Q55, all six scenarios, Q47 |
| Junior | Q1, Q2, Q7, Q11, Q14, Q50, plus “tell me what you’ve built” |
Always include Q7 (query in a loop) and “tell me about something that broke.” Those two do more work than any other pair here.
Ready to Add Salesforce Engineering Capacity?
Bring experienced Salesforce developers into your team when you need production experience across Apex, LWC, integrations, automation, and DevOps.
For Candidates: How to Prepare
Briefly, since half of you are on the other side of the table.
Don’t memorise lists. Interviewers who’ve read this will ask “when would that be the wrong choice?” and a rehearsed answer stops dead.
Build something. A free Developer Edition org and one real project teaches more than a hundred questions.
Have three stories ready: something you built that worked, something that broke, and something you argued against building. The third impresses most.
Know bulkification cold. It’s in essentially every Salesforce developer interview, and it’s the concept most likely to be tested with a follow-up.
Check your currency. If you’d answer with WITH SECURITY_ENFORCED, String.escapeSingleQuotes(), @track being always required, or pub/sub for component communication, your knowledge is dated – and interviewers use exactly those to work out when you last learned something.
Where to Go Next
For the full hiring process around these questions, see how to hire a Salesforce developer.
For deciding which role you need first: admin vs developer vs architect vs consultant.
For the technical topics behind the questions: Apex, SOQL, governor limits, Lightning Web Components, Flow, Flow vs Apex, integration, DevOps, security, and Agentforce.
For weighing a hire against a partner, in-house vs outsourced Salesforce development.
The complete Salesforce development guide is the hub.
If You’d Rather Not Run the Process at All
Interviewing well takes a competent Salesforce developer’s time – awkward if the reason you’re hiring is that you don’t have one.
That’s the most common version of this problem we’re asked about. Sometimes the answer is that we help you screen. Sometimes it’s that the backlog doesn’t justify a permanent hire and a partner fits better for a while.
We’re a certified Salesforce Consulting Partner, and we’re happy to sit in on a technical screen or review a practical exercise submission – whether or not you end up working with us.
Want an Expert to Handle the Technical Screening?
Share the role, backlog, and technical requirements with our Salesforce team and let us help you evaluate the candidates or delivery model.



Leave a Comment
Your email address will not be published. Required fields are marked *