Interview

KPMG – Technical Interview Questions & Answers

By Apex Sikho · September 11, 2026

L1 Round – Technical Interview Q & A


1. What all integrations have you done in your project?

I have worked on multiple Salesforce integrations including REST and SOAP integrations. I have implemented outbound callouts using Apex, consumed external REST APIs, handled JSON request/response parsing, and used Named Credentials with OAuth 2.0 for secure authentication. I have also worked on platform event–based integrationsBulk API integrations for large data volumes, and payment gateway integrations with webhook handling.


2. Have you done any POC?

Yes, I have done POCs such as:

  • Payment gateway integration POC
  • Platform Events for asynchronous integration
  • LWC + Apex performance POC
  • REST API integration using Named Credentials These POCs helped validate feasibility, performance, and design before full implementation.

3. How is deployment done in your current project? Deployment tools worked on?

Deployment is done using CI/CD practices. I have worked with CopadoSalesforce DevOps CenterSFDX with Git, and Change Sets. The usual flow is: Development → Code Review → UAT → Regression Testing → Production Deployment.


4. Difference between QueryLocator and Iterable?

QueryLocator is used in batch Apex to process up to 50 million records and is ideal for large data volumes. Iterable is used when we need custom logic to fetch records, but it is limited by SOQL limits (50k records). QueryLocator is preferred for scalability.


5. In UAT test class coverage is 85%, but while deploying to PROD it is showing 0%. Why?

This usually happens because:

  • Test classes were not included in deployment
  • Tests depend on SeeAllData=true
  • PROD does not have required test data
  • Profile or permission differences The fix is to create self-contained test data using @testSetup and avoid environment dependency.

6. Batch runs fine in UAT but fails in PROD with “Too many query rows: 50001”. Why and how to fix?

PROD usually has much higher data volume. The batch might be using SOQL inside loops or missing filters. To resolve:

  • Use Database.getQueryLocator
  • Move SOQL outside loops
  • Add proper filters
  • Reduce batch size

7. Best practices for Test Classes

  • Avoid SeeAllData=true
  • Use @testSetup for common data
  • Test bulk scenarios
  • Cover positive and negative cases
  • Use assertions
  • Mock callouts using HttpCalloutMock

8. Parent to Child and Child to Parent communication (LWC)

Parent to Child: Using @api properties or calling child methods via this.template.querySelector().

Child to Parent: Using CustomEvent with bubbles: true and composed: true.


9. Explain @track and @wire. Use cases of both.

@track is used for local reactive properties where UI should update when data changes. @wire is used to fetch data from Salesforce (Apex or LDS) and supports caching and auto-refresh. Use @wire for read-only data and @track for UI state management.


10. Best practices for LWC

  • Use @wire for read operations
  • Use imperative Apex for actions
  • Keep components small and reusable
  • Avoid heavy logic in JavaScript
  • Use getters for computed values
  • Follow SLDS guidelines

11. Error handling in LWC

  • Handle errors in .catch()
  • Show user-friendly messages using toast
  • In Apex, throw AuraHandledException
  • Log errors for debugging
  • Use fallback UI where required

12. Best practices for Triggers

  • One trigger per object
  • Use trigger handler pattern
  • Bulkify code
  • Avoid SOQL/DML inside loops
  • Prevent recursion
  • Keep triggers logic-free

13. Before doing any integration, what will be your approach?

First, understand the business requirement and data flow. Then decide:

  • Authentication mechanism
  • Sync vs async integration
  • Error handling strategy
  • Retry and timeout handling
  • Security and governor limits
  • Logging and monitoring Design the integration to be scalable, secure, and fault-tolerant.

14. What are record-triggered flows?

Record-triggered flows are flows that automatically run when a record is created, updated, or deleted. They can be before-save (fast field updates) or after-save (record creation, callouts, async actions).


15. What is Mixed DML error? How can it be fixed?

Mixed DML error occurs when setup objects (User, Group) and non-setup objects (Account, Case) are modified in the same transaction. It can be fixed by running one operation asynchronously using Future, Queueable, or Scheduled Apex.


16. How to prevent Mixed DML error in record-triggered flows?

  • Use Asynchronous Path
  • Use Scheduled Path
  • Call Apex Queueable or Future method This separates the transactions and avoids Mixed DML issues.

L2 Round – Techno-Managerial Interview Q&A


1. SOQL query to get the 3rd highest opportunity amount

SELECT Id, Amount FROM Opportunity ORDER BY Amount DESC LIMIT 1 OFFSET 2


2. Explain all integrations that you have worked on

I have worked on REST and SOAP integrations, payment gateways, platform events, bulk data integrations, and third-party systems. I handled authentication using OAuth, managed large data volumes, implemented error handling, logging, retries, and followed Salesforce governor limits.


3. @wire methods get called multiple times. How to control it?

This happens due to reactive parameter changes or component re-rendering. To control it:

  • Use imperative Apex instead of @wire
  • Avoid unnecessary reactive parameters
  • Cache data manually
  • Use refreshApex() only when required

4. Batch job gives “Too many query rows: 50001”. Why and how to prevent?

It occurs due to large data volume or unfiltered queries. Prevention:

  • Use QueryLocator
  • Filter records
  • Reduce batch size
  • Avoid nested SOQL queries.

5. Child component updates a list. How does parent get updated?

The child component fires a CustomEvent with updated data. The parent listens to the event, updates its tracked list, and the UI re-renders automatically.


6. Approach for integrating a Payment Service (Design + Best Practices)

Design Approach:

  • LWC → Apex → Payment Gateway
  • Use Named Credentials
  • Handle callbacks via webhooks
  • Use async processing

Best Practices:

  • Secure credentials
  • Idempotent requests
  • Retry mechanism
  • Proper error handling
  • Bulk-safe Apex
  • Logging and monitoring
  • Follow trigger and Apex best practices