Salesforce interview prep · updated Oct 2026

Salesforce Backend Developer Interview Questions

Backend Developer 8 questions

Backend work at a company that sells cloud software for managing customers means serving many businesses from shared systems, while each business adds its own fields, rules and code. Prepare to talk about limits that keep one customer from slowing the rest, rules for who can see which record, loading large files of records, and bugs that appear only in one customer's unusual setup. What to show here: shared systems that stay fair and safe for every customer. Each question below has what the interviewer is checking, an answer frame and a sample spoken answer to adapt.

Behavioral

1. Tell me about a time you put a limit on what callers of your service could do, in order to protect a shared system, and some callers pushed back.

What they are checking
Checks whether you can defend a limit with data, explain it to the people it affects, and help them work within it.
Answer frame
  1. Describe the shared system and the risk.
  2. Explain the limit and how you chose the value.
  3. Show how you handled the pushback.
  4. Share the result for the system and for the callers.
Sample spoken answer

“In my last role, one internal team called our search service in a tight loop during their nightly job, and search slowed down for everyone. I proposed a limit on requests per client per minute. That team objected, because their job would take longer. I showed them the latency charts and offered a batch endpoint that could answer many lookups in one call. I set the limit from the usage of normal clients, with room above it, and returned a clear error that said when to retry. Their job ended up faster with the batch call. The result was your result.”

Red flag to avoid

Weak answers impose a limit with no explanation and no other path, or drop it as soon as someone complains.

Behavioral

2. Describe a bug that appeared for only one customer because of the unusual way they had set up the product. How did you track it down?

What they are checking
Checks whether you can debug in a product where each customer's configuration is different, without blaming the customer.
Answer frame
  1. Describe the report and why it could not be reproduced at first.
  2. Explain how you compared their setup with a working one.
  3. Show the cause.
  4. Share the fix and the test you added.
Sample spoken answer

“A customer reported that saving an order sometimes took very long, and nobody else had the problem. I could not reproduce it on a standard setup. With their permission, I copied their configuration to a test environment and compared it with a default one. They had added a large number of optional fields, and one of our queries loaded every field for each line of the order. With a normal setup this was cheap, but with theirs it was slow. I changed the query to load only what the save needed, and added a test with a heavy configuration. The result was your result.”

Red flag to avoid

Weak answers close the ticket as not reproducible, or tell the customer their setup is wrong.

System Design

3. A sales deal should be visible to its owner, to the owner's managers up the chain, and to anyone it has been shared with. How would you design the check so that list pages stay fast?

What they are checking
Checks whether you can design record-level access where rules are rich and lists hold many rows.
Answer frame
  1. List the ways access is granted: owner, manager chain, explicit share.
  2. Show why checking each row at read time is slow.
  3. Propose a share table that holds who can see what, computed ahead.
  4. Cover how it is updated when a manager or an owner changes.
Sample spoken answer

“Checking each deal against the manager chain while reading would be slow for a list with many rows. I would compute access ahead of time in a share table, where each row says that this user or group can see this record, and why. Managers are handled through groups: each manager has a group that contains everyone below them, so a deal shared with the owner is visible to the groups above. A list query then joins deals to the share table for the current user's groups. The cost is on change. When someone moves to a new manager, a background job updates group membership.”

Red flag to avoid

Weak answers filter in application code after loading all the rows, or forget what happens when the reporting chain changes.

Technical

4. Customers can write their own code that runs on your servers every time one of their records is saved. How do you stop one customer's bad loop from slowing down everyone else?

What they are checking
Checks whether you can run customer code inside a shared service with hard limits that are predictable.
Answer frame
  1. Give each run a budget: processor time, memory, number of queries and rows.
  2. Count usage inside the runtime and stop the run when a limit is hit.
  3. Roll back the transaction and return a clear error.
  4. Encourage code that handles many records in one go.
Sample spoken answer

“I would give every run a budget. The runtime counts processor time, memory, the number of database queries and the rows touched. When the code goes over any of them, the run is stopped, the whole transaction is rolled back, and the customer gets an error that names the limit they hit. The limits are published, so developers can design for them. The most common mistake is a query inside a loop over records, so I would hand the code all the records of a save in one list and document how to query once for the whole list.”

Red flag to avoid

Weak answers trust customers to write good code, or stop the code without a clear error and a rollback.

Technical

5. A customer wants to load a file with a million contact records through your API. How would you design the load so that a few bad rows do not fail the whole file?

What they are checking
Checks whether you can design a long-running load with batches, partial success and a clear report.
Answer frame
  1. Accept the file, return a job id and process it in the background.
  2. Split it into batches and commit each batch separately.
  3. Record each failed row with a reason.
  4. Make a retry safe with a key that identifies each row.
Sample spoken answer

“I would not process the file inside one request. The API accepts the file and returns a job id, and the customer asks for the status later. In the background I split the file into batches and process each in its own transaction. Inside a batch, a row that fails validation is written to an error file with its row number and the reason, and the good rows are still saved. At the end the customer can download the successes and the failures. To make a retry safe, each row can carry an outside id, and I update the record if that id already exists.”

Red flag to avoid

Weak answers use one huge transaction, or report only that the load failed without saying which rows.

System Design

6. Each customer can define their own types of record and their own fields. How would you store this in a shared database without creating new tables for every customer?

What they are checking
Checks whether you can reason about storage driven by metadata, and its effect on queries and indexes.
Answer frame
  1. Keep the definitions of record types and fields as metadata per customer.
  2. Store the data in generic rows, with general columns or a document column.
  3. Translate each query through the metadata.
  4. Solve indexing for fields that customers filter on.
Sample spoken answer

“I would keep two layers. The metadata layer says, for each customer, which record types exist, which fields each has, and their data types. The data layer is a shared table where each row has the customer id, the record type and a set of general value columns or one document column. The metadata maps a field name to its place. Every query is translated through that map. The hard part is speed, because a general column cannot have one index per customer field. So for fields that a customer filters on, I would copy the values into a separate index table with typed columns.”

Red flag to avoid

Weak answers create tables for each customer without thinking about schema changes across a great many customers.

Scenario

7. A customer reports that their nightly sync from an accounting system has been creating duplicate accounts for a week. What do you do?

What they are checking
Checks how you handle a data problem that has been building for days, including the cleanup and the customer's trust.
Answer frame
  1. Stop more duplicates by pausing or fixing the sync.
  2. Find the cause, such as a changed key or a retry after a timeout.
  3. Measure the damage and plan a merge that keeps linked records.
  4. Add a safeguard and explain to the customer.
Sample spoken answer

“First I would stop the damage by asking the customer to pause the sync, or by blocking the creating call for a short time. Then I would look at the request logs from the night the duplicates started. A common cause is that the sync timed out, retried, and our side created the record twice because nothing identified the repeat. I would count the duplicates and check which copy has deals or cases attached, because a merge must keep those links. After the cleanup, I would make the create call accept an outside id or a request key. I would write the customer a clear summary.”

Red flag to avoid

Weak answers delete the newer copies without checking linked records, or fix the data and leave the cause in place.

Why this company

8. Why do you want to build backend systems for software that many businesses share and each one customises?

What they are checking
Checks whether the particular engineering challenge of a shared and customisable platform truly interests you.
Answer frame
  1. Name what is hard about such a platform.
  2. Link it to a problem you have enjoyed solving.
  3. Show that you understand who the customers are.
  4. Say what you want to learn.
Sample spoken answer

“What interests me is that the backend here is not one application. It is a platform where each business adds its own fields, rules and code, and all of them run on shared systems. That means I cannot assume what the data looks like, and I have to design limits that are fair to everyone. I enjoyed a smaller version of this in my current job, where I built configurable rules for our customers. I also like that the users are sales and service teams doing real daily work. I want to learn how to keep such a flexible system fast.”

Red flag to avoid

Weak answers give reasons that fit any large software company and do not mention shared systems or customisation.

Salary questions come last

No figures on this page: pay depends on the level, the city and the offer in front of you. When the offer comes, the free salary negotiation script helps with that part.

For the call itself

The questions above are the prep. On the real call, ClapAssist helps with the ones you did not practice.

ClapAssist is an AI interview assistant for Mac and Windows. It listens to the interview on your computer and shows you what to say, in short lines you can read while you talk. Your live interview audio and screen are never stored. Your resume and notes are saved to your account so the app fills them in on any computer. It is hidden from screen share on every plan, including Free; only you can see it.

Download with 10 free minutes
Mac and Windows · Stays out of screen share · No card