PwC India Salesforce Developer Interview Question for Financial Services Cloud. Candidate was having 5 years of experience and total 1 year in FSC. Till date 27/05/2026 result is pending. More Details: Candidate was not available on scheduled date so he asked to rescheduled the interview they scheduled next day.Candidate was not well prepared for FSC.Duration 30 mins.
What's Covered
Topics covered in this interview.
All Interview Questions
Every question asked in this interview, listed one by one.
- Candidate was not available on scheduled date so he asked to rescheduled the interview they scheduled next day.
- Candidate was not well prepared for FSC.
- Duration 30 mins.
Preparing for a Salesforce developer interview?
Browse more real company interview experiences and hands-on Apex trigger patterns.
Quick answers to key questions
Short answers to the main questions from this interview.
- Bypass a validation rule for a specific user. Add a condition to the rule that checks a custom permission, for example
AND(NOT($Permission.Bypass_Validation), your condition), and assign that permission only to the users who should skip it. A hierarchy custom setting also works. - Find person accounts and query the last 4 days. Person accounts have
IsPersonAccount = true. For exampleSELECT Id, Name FROM Account WHERE IsPersonAccount = true AND CreatedDate = LAST_N_DAYS:4. - What is a person account and why use it? A person account stores an individual customer as a single record that combines Account and Contact fields. It suits business-to-consumer models such as banking, wealth management and insurance, which is why it is common in Financial Services Cloud. Once person accounts are enabled, they cannot be turned off, and they affect reports, page layouts, integrations and code, so plan before you enable them.
- Asynchronous Apex. The four types are future methods, queueable Apex, batch Apex and scheduled Apex.
- Batch Apex methods. A batch class implements
Database.Batchablewith three methods.startreturns the records to process,executeprocesses each chunk of records, andfinishruns once at the end for follow-up work such as sending an email. - Skip a batch run or specific records. Keep a flag in a custom setting or custom metadata. At the start of the job, check the flag and end early if it says to skip. To skip records, add a filter to the query in
startor check a field inexecute. - Why do CPU time limits happen? Because the code does too much work in one transaction, for example nested loops over large collections, repeated processing, heavy logic in several triggers and flows, or recursion. The limit is 10 seconds for synchronous code and 60 seconds for asynchronous code. Fix it by using maps instead of nested loops, bulkifying the code, avoiding repeated work and moving heavy work to async Apex.
Scenario: set Status to Inactive when the expiry date has passed
Run a scheduled batch job every day. It selects the active records whose expiry date is before today and sets them to inactive. The field names below are assumptions, so change them to match your object.
global class ExpireRecordsBatch implements Database.Batchable<SObject>, Schedulable {
global Database.QueryLocator start(Database.BatchableContext bc) {
return Database.getQueryLocator(
[SELECT Id, Status__c FROM My_Object__c WHERE Status__c = 'Active' AND Expire_Date__c < TODAY]
);
}
global void execute(Database.BatchableContext bc, List<My_Object__c> scope) {
for (My_Object__c rec : scope) {
rec.Status__c = 'Inactive';
}
update scope;
}
global void finish(Database.BatchableContext bc) {}
global void execute(SchedulableContext sc) {
Database.executeBatch(new ExpireRecordsBatch(), 200);
}
}Schedule it once, for example with System.schedule('Expire records', '0 0 1 * * ?', new ExpireRecordsBatch());, to run every day at 1 AM. A scheduled-triggered flow is a no-code alternative when the logic is this simple.