Salesforce Developer Interview Questions & Answers
The Salesforce market is showing no signs of slowing down in 2018 and beyond. In fact, Salesforce just released their quarterly earnings for Q1 2019 and have crushed analysts expectations. One of the most in-demand professions out of the market is the Salesforce Developer. Even with recent developments with the Salesforce platform that gives admins more declarative power than ever, the Salesforce Developer will still continue to be in demand. As Salesforce becomes ingrained in more businesses and industries, Salesforce Developers will continue to drive innovation with integrations, advanced automation and AI.
After the success of our Salesforce Admins Interview Questions post, we thought it logical to compile a similar but improved post (With answers!), for all you developers out there. Enjoy!
1. What is the difference between a role and a profile?
Profiles are both features that can be added to a user record in Salesforce. Roles are optionally added while Profiles are a basic requirement of setting up a user.
Profiles help to control object privileges such as CRED (Create, Read, Edit, Delete). They also contain system permissions that a user can carry out such as exporting data.
Roles on the other hand help with sharing records across an organisation. They work in a hierarchical fashion, giving users access to records that are owned by people lower down in the hierarchy.
2. Can you name three types of object relationships available in Salesforce?
There are three main relationship types in Salesforce…
A lookup relationship can be used to link two objects together. It is the most basic type of relationship that creates a child-parent relationship between two objects.
A master-detail relationship can also be used to link two objects together. A master-detail relationship creates a tight relationship between the parent and the child. The child record inherits security of the parent, and if the parent is deleted, all associated child records will also be deleted. Master-detail relationships created some extra functionality such as roll-up summary fields that allow you to calculate data on the parent from the children.
A many-to-many relationship (Also referred to as a junction object), allows you to create a relationship between two objects that need to model a many-to-many relationship. These are created with an object that has two master-detail relationships to two parent objects.
3. What is SOQL used for?
SOQL stands for Salesforce Object Query Language. It is very similar to the widely used language SQL (Structured Query Language), to query databases. SOQL is specifically designed for Salesforce data and is used to query the Salesforce platform to retrieve data. SOQL is used within Apex & Visualforce to return sets of data.
4. What’s the difference between Salesforce.com & Force.com?
Salesforce.com is SaaS(Software-as-a-Service) product while Force.com is a PaaS product (Platform-as-a-Service). Salesforce.com has a selection of prepackaged solutions such as the Sales & Service Cloud that are designed for a specific purpose. While Force.com allows you to build your own applications. Salesforce.com is built on the Force.com platform.
5. What options are available to you for deploying from a Sandbox to Production?
There are various ways to deploy from Sandbox to Production. The main way is to use a Salesforce feature called Change Sets. These allow you to package up components and then deploying them to another Salesforce Org. There are various other methods including ANT MIgration Tool, Force.com IDE and Unmanaged packages.
6. How are bucket fields used in Salesforce?
Bucket fields can be used in Salesforce reports to group together field values. These fields are not created on the Salesforce platform and only exist in in the report itself.
7. What is Apex?
Apex is a strongly typed, object-oriented programming language that allows developers to extend the Salesforce platform by writing their own business logic into the platform. Apex looks similar to Java and can be launched through a variety of user-initiated events such as record updates, button clicks, triggers on objects, or external web service requests.
8.Can you customise Apex & Visualforce directly in a production org?
Apex cannot be customised in a production Org, it must be changed and deployed through a sandbox and meet test coverage. Visualforce, on the other hand, may be customised directly in production (Although this is not best practice)
9. What are the two options for when Apex Triggers can run?
Apex Triggers can either run before a record has been saved of after. A before operation is usually used to verify information that is going to be inserted, and after trigger is used to access data that has previously been entered by a user or system.
10. When should Apex be used over Workflow rules or Process Builder?
There are various reasons why you should use Apex over declarative automation options:
Workflow rules and Process Builder operations sometimes have feature limitations that can be overcome with Apex. For example, pulling information from an external system.
When dealing with certain or large sets of data, Apex can be more efficient than declarative options due to less limitations.
11. What are Governor Limits? Can you name 3 examples?
Salesforce runs on a multitenant environment which means resources (Storage, CPU, Memory) are shared with other companies on the Salesforce platform. This means limits must be in place to ensure that all companies using the Salesforce architecture abide by certain rules and don’t let their code or processes monopolize shared resources. A few examples of Governor Limits are:
Total number of records retrieved by a SOQL query – 50,000
Total number of SOQL queries issued – 100 (Synchronous) 200 (Asynchronous)
Total number of DML statements issued – 150
Total number of callouts (HTTP requests or Web services calls) in a transaction – 100
Maximum CPU time on the Salesforce servers – 10,000ms (Synchronous) 60,000ms (Asynchronous)
12. What is Apex test coverage? What’s the minimum test coverage required to deploy?
To ensure that your code meets certain standards, Apex Code coverage shows you how many executable lines of code in your classes and triggers have been exercised by test methods. Code coverage percentage is a calculation of the number of covered lines divided by the sum of the number of covered lines and uncovered lines. The minimum test coverage required to deploy to production is 75%
13. What are some Apex best practices?
Bulkify your code
Avoid SOQL Queries or DML statements inside FOR Loops
Avoid Hardcoding IDs
Use of the Limits Apex Methods to Avoid Hitting Governor Limits
Querying Large Data Sets
See full list…
14. What is an Apex Email Service?
You can use email services to process the contents, headers, and attachments of inbound emails. For example, you can create an email service that automatically creates contact records based on contact information in messages. Read more…
15. What are the different type of Collections you can have in Apex?
There are three main types of collections…
Lists – A list is an ordered collection of elements that are distinguished by their indices. List elements can be of any data type—primitive types, collections, sObjects, user-defined types, and built-in Apex types.
Sets – A set is an unordered collection of elements that do not contain any duplicates. Set elements can be of any data type—primitive types, collections, sObjects, user-defined types, and built-in Apex types.
Maps – A map is a collection of key-value pairs where each unique key maps to a single value. Keys and values can be any data type—primitive types, collections, sObjects, user-defined types, and built-in Apex types.
16. What is Visualforce?
Visualforce is the component-based user interface framework for the Force.com platform. The framework includes a tag-based markup language, similar to HTML. Each Visualforce tag corresponds to a coarse or fine-grained user interface component, such as a section of a page, or a field. Visualforce boasts about 100 built-in components and a mechanism whereby developers can create their own components.
17. What is a Static Resource?
18. What is the difference between a standard and custom controller?
Standard Controllers are generated automatically for all standard pages. They provide you with all the functionality that a standard page contains, such as editing or saving a record.
Custom Controllers can be written by a developer to override the standard functionality that a standard controller provides on a Visualforce page.
19. What is a Lightning Component?
20. Explain the differences between Workflow and Process Builder?
Workflows and the Process Builder are declarative automation tools that can be used to extend the Salesforce platforms functionality. Both have point and click functionality and have a variety of functionality and features to automate business processes.
Workflow rules – An automation tool that can evaluate an argument, and kick off an automation function. These functions can include a field update, sending an email message, creating a task, or sending an outbound message. A workflow can only evaluate a single criteria before it either triggers the automation or does not.
Process Builder – The process builder is a newer automation tool that has a wider variety of functions. These include creating a record, updating child records, posting to chatter, launching a flow and more (See full list here). The process builder can evaluate multiple criteria and trigger different automation depending on the one met.
21. How are sharing rules used in Salesforce?
Sharing rules can be set up in order extend sharing, and to grant users access to a set of records depending on a defined criteria. A sharing rule can beset upp to extend sharing to a profile, role or public group depending on either the owner of a record, or a field value. You can either assign Read-Only access to these users, or Read/Write access.
22. Can you explain the use of custom settings?
Custom settings are similar to custom objects and enable application developers to create custom sets of data, as well as create and associate custom data for an organization, profile, or specific user. You can use custom settings to store a variety of information that can be accessed easily by other Salesforce tools.
23. Explain the use of a roll-up summary field and where it can be used
Roll-up summary fields can be used to calculate information based off of a parent records child records. While a formula field can calculate information within a single record, roll-up summary fields can calculate data from a set of child records. For example, a roll-up summary field could be used to calculate the total value of all closed won opportunities on an account. Roll-up summary fields can only be used on a master-detail relationship.
24. What’s the difference between Record Types & Page Layouts
Whilst a page layout is used to define which fields, sections and related lists are displayed to a user, a record type can extend this by defining different business processes. See a full description of the differences here.
25. Explain the use of an Outbound Message?
An outbound message is one automation function that can fire from a workflow rule. They can send a message to external web services which can contain field values, this can subsequently kick off additional processes in external systems.
26. What is OAuth?
OAuth is an open standard for access delegation, commonly used as a way to grant websites or applications access to their information on other websites, but without giving them the passwords.
27. What is a Connected App?
A connected app integrates an application with Salesforce using APIs. Connected apps use standard SAML and OAuth protocols to authenticate, provide single sign-on, and provide tokens for use with Salesforce APIs. In addition to standard OAuth capabilities, connected apps allow Salesforce admins to set various security policies and have explicit control over who can use the corresponding apps.
28. Can you give an example of a Salesforce API and it’s usage?
Salesforce has a variety of API’s that let you interact with the system in different ways..
REST – The REST API lets you integrate with Force.com applications using simple HTTP methods in either XML or JSON formats, making this an idea API for developing mobile applications or external clients.
Bulk – The Bulk API provides a programmatic access that lets you quickly load data into your Salesforce organisation.
Streaming – The Streaming API can be used to receive notifications for changes to Salesforce data that match a SOQL query you define. Streaming API is useful when you want notifications to be pushed from the server to the client based on criteria that you define.
29. What are External ID fields used for?
Certain fields can be defined as an external ID on an object. These can be used in order to match up data from external systems with a unique reference ID. For example, if you need to match up data from an external accounting system to the Accounts in Salesforce, you can use an external ID field to reference the Accounting systems unique ID instead of the Salesforce ID.
30. What is a use case for Salesforce Connect?
Salesforce Connect is a product that utilises external objects. External objects allow you to integrate information into Salesforce in real-time, but without actually utilising Salesforce storage limits. An examples of using Salesforce connect could be to integrate a large database that houses transaction history against an account. This history would be viewable and reportable in Salesforce, but without utilising the large amount of storage it would take to the house.