Salesforce developer interviews in 2026 test whether you can ship production-safe platform code—bulkified Apex, selective SOQL, secure LWC data access, and sound async choices—not whether you can recite every declarative tool from Trailhead. Interviewers often show a trigger or loop and ask what breaks at 200 records on Monday morning in production.
Below are 45 questions for SFDC developer and senior Salesforce developer loops: platform fundamentals, Apex, triggers, async, SOQL, Lightning Web Components, integrations, security, testing, and scenario judgment. Open each answer after you try the question yourself. For data pipeline / Data Cloud / warehouse roles, use the Salesforce Data Engineer interview guide instead—different role, different prep.
Interview context and how to prepare
What does a Salesforce (SFDC) developer own in 2026?
A Salesforce developer builds and maintains custom behavior on the platform—Apex, triggers, LWC, integrations, and the declarative/programmatic boundary—not only clicking through setup.
Typical ownership:
| Area | Examples |
|---|---|
| Server-side | Apex classes, triggers, batch/queueable, invocable actions |
| UI | Lightning Web Components, Flexipages, quick actions |
| Data access | SOQL/SOSL, DML, security-aware queries |
| Automation | Record-triggered Flow vs Apex decisions |
| Integration | REST callouts, platform APIs, Named Credentials |
| Quality | Unit tests, deployments, governor-limit-safe design |
Not the same as Data Engineer: Pipeline/SQL/Data Cloud depth lives in the data engineer interview guide.
What is a typical Salesforce developer interview loop?
| Round | Duration | Focus |
|---|---|---|
| Recruiter / HM screen | 30 min | Background, certs, project types |
| Platform fundamentals | 45–60 min | Objects, relationships, governor limits, declarative vs code |
| Apex / triggers | 45–60 min | Bulkification, order of execution, async |
| LWC / UI | 30–45 min | Components, @wire, LDS, performance |
| Integration / security | 30–45 min | Callouts, Named Credentials, sharing, FLS |
| Live exercise | 45–90 min | Fix bulk bug, write trigger handler, small LWC |
| Behavioral | 30 min | Ownership, incidents, stakeholder conflict |
Indian SI vs product company: Services firms may weight declarative/admin knowledge more; product teams often go 70%+ code (Apex, LWC, integration).
What is a realistic 4–6 week SFDC developer prep plan?
| Week | Focus | Output |
|---|---|---|
| 1 | Data model, relationships, SOQL, governor limits | Explain selective queries + limits from memory |
| 2 | Apex bulkification, triggers, handler pattern | Refactor a SOQL-in-loop example |
| 3 | Async (queueable, batch, schedulable) + tests | Write bulk test with Test.startTest |
| 4 | LWC: @wire, imperative Apex, events | Build one list + detail component |
| 5 | Integrations, security, Flow vs Apex scenarios | Diagram callout + Named Credential flow |
| 6 | Mocks + deployment + behavioral STAR | Two timed verbal walkthroughs |
Hands-on: use a Developer Edition or scratch org; complete relevant Trailhead trails, but prioritize writing code over badge count.
Cross-skill: Java interview basics help with Apex OOP; Git for Salesforce DX workflows.
When do you choose declarative tools vs programmatic development?
| Choose declarative (Flow, layouts, custom objects) | Choose Apex / LWC |
|---|---|
| Straightforward record automation | Complex branching, recursion guards |
| Admins should maintain after you leave | Heavy iteration / aggregation at volume |
| Fast iteration, upgrade-friendly patterns | Synchronous callouts mid-transaction |
| Standard UX is enough | Custom UI performance or behavior |
2026 default: Record-triggered Flow for maintainable automation; Apex when CPU, bulk, callouts, or test complexity demand code.
What extra bar do senior SFDC developer interviews add?
Seniors are judged on production judgment, not syntax alone:
- Bulk-safe design before the first deploy
- Trigger framework and recursion control
- Security:
with sharing, FLS,WITH USER_MODE/stripInaccessible - Async selection with operational ownership
- LWC performance (wire vs imperative, list virtualization)
- Integration contracts and credential hygiene
- Agentforce / invocable Apex awareness in 2026
- Mentoring, code review, release discipline
Platform fundamentals
What are governor limits? Give examples that matter in production.
Governor limits cap per-transaction resource use on the multitenant platform so one org cannot starve others.
| Limit (sync context) | Typical cap | Interview pain point |
|---|---|---|
| SOQL queries | 100 | SOQL inside loops |
| DML statements | 150 | DML per record in trigger |
| CPU time | 10,000 ms | Heavy loops, regex, bad aggregation |
| Heap | 6 MB | Large in-memory collections |
| Callouts | (varies) | Callout + DML order violations |
Key concept: Limits reset per transaction. One user action may span trigger → queueable → batch—each gets fresh limits.
A strong answer is:
Governor limits enforce fair multitenant usage. I design bulk collections, one query per object per transaction, and async when sync limits are insufficient.
Explain lookup, master-detail, and self-relationship.
| Type | Behavior | Interview note |
|---|---|---|
| Lookup | Optional parent; child keeps own sharing | Rollups need Apex/Flow |
| Master-detail | Required parent; child sharing follows master | Roll-up summary fields allowed |
| Self | Same object parent/child | Hierarchy, manager chains |
SOQL impact: Child-to-parent uses dot notation (Contact.Account.Name). Parent-to-child uses subquery (SELECT Id, (SELECT Id FROM Contacts) FROM Account)—subquery rows count toward query limits.
A strong answer is:
Lookup is optional with independent sharing; master-detail is tightly coupled with rollup support. I pick based on lifecycle, sharing, and whether native rollups are required.
What is the Salesforce release model?
Salesforce ships three major releases per year (Spring, Summer, Winter). Sandboxes preview releases weeks before production.
Developer implications:
- Regression-test triggers, Flows, and LWC in preview sandboxes
- Watch release notes for governor limit, API, and security changes
- Deprecations (Workflow Rules, Process Builder → Flow) affect migration planning
A strong answer is:
Three seasonal releases; I validate custom code in preview sandboxes and read release notes for breaking changes before production cutover.
What is the order of execution for a record save?
High-level save path (simplified):
- Before-save record-triggered Flows (fast field updates)
- Before triggers
- System validation rules
- Record save to database
- After-save Flows
- After triggers
- Assignment rules, rollups, workflows (legacy), etc.
Why seniors care: Duplicate automation (Flow + trigger) causes recursion, double updates, and CPU timeouts.
Pattern: One trigger per object → handler class; consolidate Flow vs Apex ownership per object/event.
A strong answer is:
Before-save Flows and before triggers run first; after-save Flows and after triggers follow persistence. I avoid duplicate automation paths that recurse or fight over the same fields.
What is the difference between org-wide defaults, roles, and sharing rules?
| Mechanism | Purpose |
|---|---|
| OWD | Baseline max access (private / public read / public read-write) |
| Role hierarchy | Managers access subordinates' records (when private) |
| Sharing rules | Grant extra read/write beyond OWD |
| Manual sharing | Record-level exceptions |
Apex: with sharing respects sharing; without sharing ignores it (use sparingly for system processes).
A strong answer is:
OWD sets the floor; roles and sharing rules grant additional access. In Apex I use with sharing unless a narrow system process requires otherwise—and document why.
Apex, bulkification, and triggers
What is bulkification? Show non-bulkified vs bulkified thinking.
Bulkification means writing triggers and Apex to handle up to 200 records per transaction without per-record SOQL/DML.
// WRONG: SOQL in loop — fails at scale
for (Opportunity o : Trigger.new) {
Account a = [SELECT Industry FROM Account WHERE Id = :o.AccountId];
if (a.Industry == 'Technology') o.Description = 'Tech deal';
}
// RIGHT: query once, map, loop
Set<Id> accountIds = new Set<Id>();
for (Opportunity o : Trigger.new) accountIds.add(o.AccountId);
Map<Id, Account> accountsById = new Map<Id, Account>(
[SELECT Id, Industry FROM Account WHERE Id IN :accountIds]
);
for (Opportunity o : Trigger.new) {
Account a = accountsById.get(o.AccountId);
if (a != null && a.Industry == 'Technology') o.Description = 'Tech deal';
}The bulk pattern mirrors standard collection processing—you query once, build a map, then iterate.
A strong answer is:
Bulkification collects ids, runs one query and one DML batch per object where possible, and never puts SOQL or DML inside a loop over trigger records.
Before vs after triggers—when do you use each?
| Trigger timing | Use for |
|---|---|
| Before insert/update | Validate, default fields, same-record calculation |
| After insert/update/delete | Related record updates, async enqueue, logging |
Undelete: after undelete for recovery workflows.
Handler pattern:
trigger OpportunityTrigger on Opportunity (before insert, before update, after update) {
OpportunityTriggerHandler.handle(Trigger.operationType, Trigger.new, Trigger.oldMap);
}A strong answer is:
Before triggers for same-record validation and defaults; after triggers for related updates and async work. I keep one trigger per object delegating to a handler class.
How do you prevent trigger recursion?
Common techniques:
| Technique | When |
|---|---|
| Static Boolean flag | Re-entry guard in same transaction |
| Trigger framework | Central dispatcher with bypass API |
| Custom setting / metadata bypass | Data loads, migrations |
| Consolidate automation | Remove duplicate Flow + trigger paths |
Interview trap: A Flow updates a field that re-fires the trigger—fix ownership, not only a flag.
A strong answer is:
I use a handler framework with re-entry guards, metadata bypass for loads, and eliminate duplicate Flow/trigger paths that cause recursion.
What is an Apex interface and why use one?
Interfaces declare methods without implementation—classes promise to implement them.
Common examples:
Database.Batchable<SObject>for batch jobsQueueablefor async jobsSchedulablefor cron-style runs- Custom interfaces for strategy pattern / test doubles
A strong answer is:
Interfaces define contracts—platform interfaces like Batchable or custom seams for swappable implementations and cleaner tests.
What is required to deploy Apex to production?
Production deployment gates:
- All Apex compiles
- ≥ 75% org-wide test coverage
- All tests pass
- Each trigger has ≥ 1% coverage
Senior point: Coverage is not quality—write bulk tests with edge cases, not empty Test.startTest stubs.
A strong answer is:
Production needs 75% coverage, passing tests, and compiled code. I write meaningful bulk tests—not coverage-padding no-ops.
Scenario: record-triggered automation for complex Opportunity rules—Flow or Apex?
Clarify requirements:
- How many objects touched per save?
- Need synchronous callout?
- Expected volume (bulk)?
- Who maintains after launch?
| Signal | Lean |
|---|---|
| Simple field updates, admin ownership | Flow |
| Multi-object aggregation, recursion risk | Apex handler |
| Callout on save | Apex (or async Flow pattern) |
| Heavy CPU at 200 rows | Apex bulk handler |
A strong answer is:
I start with Flow when rules are simple and admin-maintainable. I move to a bulkified Apex handler when CPU, recursion, callouts, or complex tests demand code.
Asynchronous Apex
Queueable vs Batch vs Schedulable—when do you use each?
| Type | Best for | Limits / traits |
|---|---|---|
| Queueable | Small async jobs, callouts, chaining | Simpler than batch; one chain depth |
| Batch Apex | Millions of records, chunked processing | 1–2000 records per execute chunk |
| Schedulable | Cron-style timing | Often launches batch/queueable |
// Queueable: async callout after DML
public class SyncJob implements Queueable, Database.AllowsCallouts {
public void execute(QueueableContext ctx) { /* callout */ }
}Rule: DML then callout in same sync transaction fails—use @future, Queueable, or callout from batch with AllowsCallouts.
A strong answer is:
Queueable for smaller async work and callout chains; Batch for large data volumes; Schedulable to kick off jobs on a schedule.
@future vs Queueable—why prefer Queueable in modern Apex?
| @future | Queueable | |
|---|---|---|
| Monitoring | Limited | Job ID, chaining |
| Complex payloads | Primitive args only | Pass sObject lists |
| Callouts | Separate methods | Database.AllowsCallouts on class |
A strong answer is:
Queueable supports chaining, better monitoring, and richer payloads—@future is legacy except for very simple fire-and-forget tasks.
Scenario: update 2 million Contact records nightly—design approach.
- Batch Apex implementing
Database.Batchable<Contact> - Selective query on indexed fields (
LastModifiedDate, status flag) - Stateful only if aggregating across chunks (watch heap)
- Schedulable wrapper for nightly cron
- Governor-safe execute: process 200 rows per chunk; no SOQL in loop
- Error handling: partial success logging, email on failure
- Bypass triggers during migration if needed (metadata flag)
A strong answer is:
Nightly Batch with selective SOQL, bulk execute logic, schedulable entry point, error logging, and optional trigger bypass for controlled data fixes.
Why can you not do a callout after DML in the same transaction?
Platform rule: callout after DML in the same sync transaction throws CalloutException unless using proper async separation.
Fix patterns:
- Queueable with
Database.AllowsCalloutsenqueued after DML @future(callout=true)(legacy)- Batch with callouts in
execute(mind limits)
A strong answer is:
Salesforce forbids callouts after uncommitted DML in the same transaction. I enqueue Queueable or use async batch to separate DML from HTTP work.
SOQL, SOSL, and data access
SOQL vs SOSL—when do you use each?
| SOQL | SOSL | |
|---|---|---|
| Purpose | Query known object(s) with filters | Text search across objects |
| Example | Open Opportunities this quarter | Global search "Acme" across Account/Contact/Case |
| Limits | 100 queries/sync txn | 20 SOSL/sync txn; 2,000 results |
A strong answer is:
SOQL for structured filters on known objects; SOSL for cross-object search using the search index—not leading-wildcard SOQL hacks.
What makes a SOQL query selective?
On large objects, non-selective queries fail or time out.
Selective filters:
- Indexed fields:
Id,Name, external IDs, audit fields, custom indexed fields - Return small fraction of rows (platform thresholds ~10% / 5% rules on large tables)
Avoid: leading % wildcards, !=, NOT, non-deterministic formula filters at scale.
Tool: Query Plan in Developer Console.
A strong answer is:
Filter on indexed fields returning a small row fraction. I check the Query Plan when a query works in sandbox but fails in production volume.
How do you prevent SOQL injection?
// UNSAFE
String q = 'SELECT Id FROM Account WHERE Name = \'' + userInput + '\'';
// SAFE: bind variable
String name = userInput;
List<Account> rows = Database.query(
'SELECT Id FROM Account WHERE Name = :name'
);For dynamic field names: whitelist via Schema.describe—never trust raw user strings.
A strong answer is:
Bind variables first; escape only when binding is impossible; whitelist dynamic field/object names from Schema describe.
What is WITH USER_MODE in SOQL (2026 security)?
WITH USER_MODE enforces CRUD and FLS for the running user at query time—preferred in modern secure Apex.
Related tools:
WITH SECURITY_ENFORCED— throws if user lacks field accessSecurity.stripInaccessible()— removes inaccessible fields from query results
A strong answer is:
USER_MODE and stripInaccessible enforce field- and object-level security in code—I do not assume SysAdmin access in user-facing Apex.
Lightning Web Components (LWC)
LWC vs Aura—what do you say in 2026 interviews?
| LWC | Aura | |
|---|---|---|
| Status | Default for new UI | Legacy maintenance |
| Model | Web standards, lightweight | Heavier proprietary framework |
| Performance | Generally better | Often slower bundles |
Answer: Build new with LWC; use Aura only for unsupported interop or legacy wrap.
A strong answer is:
LWC is the default for new development. I maintain Aura where needed but migrate or wrap with LWC when possible.
@wire vs imperative Apex in LWC?
| @wire | Imperative | |
|---|---|---|
| Caching | Lightning Data Service cache benefits | Manual refresh |
| Use | Read-heavy, reactive params | DML, callouts, non-cacheable actions |
| Pattern | $property reactive param changes reload |
Called from events / connectedCallback |
import { wire } from 'lwc';
import getOpps from '@salesforce/apex/OpportunityController.getOpen';
@wire(getOpps, { accountId: '$recordId' })
wiredOpps;A strong answer is:
@wire for reactive reads with caching; imperative when I need writes, explicit refresh, or non-cacheable server methods.
What is Lightning Data Service (LDS)?
LDS provides UI API wire adapters (getRecord, updateRecord, etc.) for CRUD on records without custom Apex when needs are simple.
Benefits: automatic cache sharing across components, built-in FLS/CRUD respect.
Use Apex when: multi-object joins, complex logic, callouts, or bulk server processing.
A strong answer is:
LDS handles simple record CRUD with caching and security. I add Apex when queries or business logic exceed what LDS adapters support.
How do you expose Apex to LWC securely?
- Annotate with
@AuraEnabled(cacheable=true for read-only wires) - Enforce sharing in Apex (
with sharing) - Use USER_MODE /
stripInaccessibleon queries - Validate inputs—never trust client-side checks alone
- Avoid exposing sensitive fields unnecessarily
A strong answer is:
AuraEnabled methods with sharing, USER_MODE or stripInaccessible, and server-side validation—client controls are UX only, not security.
Scenario: LWC list feels slow with thousands of rows.
Tactics:
- Paginate or virtualize—do not render 5,000 DOM rows
- Use @wire with narrow field lists
- Server-side filters; selective SOQL
- Avoid
@trackon deep objects unnecessarily (modern reactivity is finer-grained) - Lazy load details on row expand
- Check for N+1 imperative calls per row
A strong answer is:
Paginate or virtualize large lists, minimize fields, filter server-side, and eliminate per-row Apex calls—same spirit as bulkification on the server.
Integrations and platform APIs
How do you call external REST APIs from Salesforce?
Pattern:
- Named Credential stores endpoint + auth (preferred)
HttpRequest/Httpclass in Apex- Parse JSON with
JSON.deserialize - Run async if DML is involved in same business transaction
HttpRequest req = new HttpRequest();
req.setEndpoint('callout:My_Named_Credential/resources');
req.setMethod('GET');
HttpResponse res = new Http().send(req);Never hard-code secrets in source—use Named Credentials or protected custom metadata.
A strong answer is:
Named Credentials for auth, Http classes for callouts, async when DML and callouts mix, and no hard-coded secrets in Apex.
How do external systems integrate into Salesforce?
| Method | Use |
|---|---|
| REST / Bulk / Composite APIs | CRUD, integrations, ETL |
| Platform Events / CDC | Event-driven outbound |
| Connected Apps + OAuth | Secure API access |
Data engineers often consume the same CRM objects via API or CDC—see data engineer guide for pipeline angle.
A strong answer is:
External systems use REST/Bulk APIs with OAuth, or subscribe to platform events/CDC for push models—I design idempotent upserts and respect API limits.
Why use Named Credentials?
Named Credentials centralize endpoint URL and authentication—Salesforce manages OAuth/password flows and keeps secrets out of code/repos.
Alternatives: protected Custom Metadata when Named Credentials do not fit.
A strong answer is:
Named Credentials hide secrets and simplify callout code—I avoid credentials in Apex source or Git history.
Security and configurable development
How do you enforce Field-Level Security in Apex?
Options:
WITH SECURITY_ENFORCEDon SOQLWITH USER_MODE(2026 preferred pattern in many codebases)Security.stripInaccessible(AccessType.READABLE, records)
A strong answer is:
I enforce FLS in queries and DML via USER_MODE or stripInaccessible—not only UI hiding fields.
When is it acceptable to use without sharing?
Only for narrow system processes—batch cleanup, integration user jobs, controlled admin utilities—with:
- Separate service classes (not entire app)
- Audit logging
- Input validation
- Documented business approval
User-facing controllers should use with sharing.
A strong answer is:
without sharing only for isolated system jobs with audits and tight scope—never as the default for user-driven features.
What are Custom Metadata Types?
Developer-defined metadata records deployed with the app—config without hard-coding.
Uses: integration endpoints mapping, feature flags, field mapping tables, environment-specific settings.
Unlike Custom Settings, metadata is deployable and version-friendly in DX pipelines.
A strong answer is:
Custom Metadata stores configurable app behavior in version-controlled metadata—ideal for mappings and feature toggles across environments.
Roll-up summary on lookup—options?
Native roll-up summary fields require master-detail. For lookup relationships:
- Flow rollups (record-triggered)
- Apex trigger aggregation
- Third-party rollup tools
Trade-off: trigger/Flow must stay bulk-safe.
A strong answer is:
Native rollups need master-detail; for lookup I use bulkified Apex or Flow—and watch governor limits on high-volume parents.
Testing, deployment, and Agentforce
How do you write meaningful Apex tests?
| Practice | Why |
|---|---|
Test.startTest / Test.stopTest |
Exercise async governor context |
Bulk data (200 rows) |
Prove trigger bulkification |
Test.loadData / factories |
Repeatable fixtures |
| Mock callouts | HttpCalloutMock |
| Assert outcomes | Not just coverage % |
@IsTest
static void bulkUpdate_setsDescriptionForTechAccounts() {
// insert 200 opps + accounts
Test.startTest();
update opps;
Test.stopTest();
System.assertEquals(200, [SELECT COUNT() FROM Opportunity WHERE Description = 'Tech deal']);
}A strong answer is:
I test bulk behavior, async boundaries, and assertions—not empty tests that only chase 75% coverage.
How do you test LWC?
Use Jest (sfdx-lwc-jest) for unit tests:
- Mock
@salesforce/apeximports - Test user interactions and conditional rendering
- Complement with Selenium/Playwright for critical E2E flows
A strong answer is:
Jest unit tests with mocked Apex for component logic; selective E2E for critical user journeys.
How do developers support Agentforce in 2026?
Developers expose trusted actions Agentforce can invoke:
| Piece | Developer role |
|---|---|
| Invocable Apex | Safe, bulk-aware actions with validation |
| Flows | Orchestrated automation surfaces |
| Data quality | Accurate fields agents read (ties to data engineering) |
| Security | Least privilege for integration users |
| Testing | Action unit tests + negative cases |
A strong answer is:
I build invocable, bulk-safe, well-tested actions with clear inputs/outputs and secure data access—agents are only as good as the platform code behind them.
Behavioral and final checklist
Tell me about a governor-limit or production bug you fixed.
STAR example angles:
- SOQL-in-loop trigger taking down Monday imports
- CPU timeout from recursive Flow + trigger
- Callout-after-DML failure in integration
Structure: impact → root cause → bulk/async fix → regression test → monitoring.
A strong answer is:
I describe the limit error, traced it to per-record SOQL, refactored to maps and bulk queries, added a 200-row test, and watched limit dashboards after deploy.
Admin wants Flow; you want Apex—how do you decide?
- Clarify maintenance owner and change frequency
- Estimate volume and limit risk
- Prototype both if cheap
- Document decision in ADR or team wiki
- Offer phased approach (Flow now, Apex if limits hit)
A strong answer is:
I decide on maintainability, volume, and limit risk—not preference—I make trade-offs visible and pick Flow when admins can safely own it.
Why Salesforce development as a career?
Connect to:
- Platform scale and continuous releases
- Mix of declarative + code problem solving
- Customer impact on sales/service workflows
- Ecosystem demand for LWC + integration skills
Tie to Trust (security, data handling) if interviewing at Salesforce.
A strong answer is:
I enjoy shipping business-critical features on a managed platform where good design—bulk Apex, secure LWC, solid tests—directly protects customer data and uptime.
Do certifications matter in developer interviews?
Certs (Platform Developer, JS Developer, Architect paths) signal baseline knowledge but do not replace hands-on org experience.
Interviewers still ask you to read code, design triggers, and explain limits.
A strong answer is:
Certs help show foundation; I pair them with real projects where I deployed bulk-safe code and integrations—not badge collecting alone.
How do you debug Apex in practice?
| Tool | Use |
|---|---|
| Debug logs | Trace execution, System.debug |
| Apex Replay Debugger | Step-through in VS Code |
| Checkpoints | Breakpoints on lines |
| Limit monitoring | CPU/heap/SOQL in log summary |
A strong answer is:
Debug logs for production-like issues; Replay Debugger and checkpoints locally—I always check the limit usage section of the log.
Final-week checklist for SFDC developer interviews?
Technical:
- Explain governor limits and bulkification with a before/after example
- Draw order of execution and where your trigger fits
- Compare queueable vs batch with one scenario each
- SOQL vs SOSL, selective queries, bind variables
- @wire vs imperative, LDS vs Apex in LWC
- Named Credentials, callout-after-DML rule
- with sharing, USER_MODE / stripInaccessible
- 75% tests + bulk test example
Cross-links:
- Salesforce Data Engineer if role blends data
- Java fundamentals for OOP/concurrency language
- Design patterns for handler/strategy vocabulary
- Git for DX workflows
- Interview Questions category
Behavioral: Two STAR stories—production limit fire, Flow vs Apex decision.
A strong answer is:
Final week I rehearse bulk trigger refactoring, LWC data flow, one integration diagram, and two production stories—not Trailhead trivia lists.
Pattern cheat sheet (quick reference)
| Topic | Remember |
|---|---|
| Governor limits | No SOQL/DML in loops |
| Triggers | One trigger → handler class |
| Async | Queueable for small; Batch for millions |
| Callouts | Async after DML |
| SOQL security | Bind variables; USER_MODE |
| LWC reads | @wire + cacheable Apex |
| LWC writes | Imperative Apex |
| Deploy | 75% coverage, all tests green |
| Flow vs Apex | Maintenance + volume + limits |
References
Official Salesforce
On-site prep
- Salesforce Data Engineer interviews
- Java interview questions — part 1
- Java interview questions — part 2
- Design patterns in Java
- SQL technical interviews (analytics crossover)
- Git interview questions
- Interview Questions category
Summary
SFDC developer interview prep in 2026 centers on bulk-safe Apex, trigger discipline, modern LWC, secure SOQL, and sound async and integration choices—not memorizing admin setup menus. Use this guide to self-test scenario answers; pair it with the data engineer guide only if the role explicitly blends pipeline work. For JVM-minded review before Apex deep dives, skim Java interview part 1 on OOP and concurrency basics.

