Hire the Top 3% of Freelance Salesforce Developers
Toptal is a marketplace for top Salesforce developers, engineers, programmers, coders, architects, and consultants. Top companies and startups can hire dedicated (full-time), hourly, or part-time Salesforce freelancers for their mission-critical software projects.
David is a senior Salesforce solution and technical architect able to understand and articulate business and its needs to design and implement solutions built on the platform. Highly aware of business processes, he thrives in adding value by designing and building solutions. Always learning new and complementary technologies and approaches to deliver positive outcomes to the business. His industries include fintech, financial services, pharma, FMCG, property development, and technology.
Jenn is a Salesforce aficionado driven by challenges and good at what she does because she cares. As a 16-year veteran of the Salesforce sphere, she specializes in the intersection of tech, people, and process. Together, she'll build your dreams, overcome your problems, and accelerate your business. Jenn is an architect who builds for scalability, an author who configures for legibility, and an educator who empowers for adoption.
United StatesToptal Member Since February 26, 2020
Gregory is a driven senior Salesforce consultant and developer with 10+ years of experience seeking remote opportunities. He's adept at formulating technical solutions and executing project plans from conception to completion. He focuses on collaborating closely with clients to identify project objectives, specifications, and solutions.
United StatesToptal Member Since February 21, 2022
George is a seven-time certified Salesforce developer with experience in both programming and declarative Salesforce features. His expertise ranges from data model design to API integration, with significant investment in custom component development. George has successfully completed administrator and developer tasks in previous projects and is eager to contribute to new ones.
Roman is a highly skilled SFDC professional with nine years of experience. His extensive expertise and 21 certifications encompass the following Salesforce products: Sales, Service, Community, Marketing Cloud, and Pardot. Throughout his career, Roman has successfully delivered numerous projects across diverse industries. With a unique blend of development, architecting, integrations, and consulting skills, Roman is the ideal candidate to drive success for your project.
United StatesToptal Member Since September 25, 2021
Randy is a 12x Salesforce certified heavy-duty developer and hands-on architect proficient in declarative data modeling, flows, processes, Marketing Cloud, Experience Cloud, and CPQ. He's an accomplished full-stack Salesforce programmer with expertise in LWC and Aura development, as well as server-side Apex, SOQL/SOSL programming, and SFDX CLI. Randy specializes in Salesforce ETL, data integration, and UI/UX design with LDS. He's a people person with superb communication skills.
Jason is a US-based technical and business professional specializing in Salesforce. He is a Salesforce Developer World Championship Finalist and holds 13 certifications and an MBA from UCLA. He has 13 years of SFDC experience and has designed integrations between SFDC and web apps using native integrations and custom SOAP/REST APIs. Unlike pure developers without an MBA, he's able to advise businesses on process design and business strategy on top of technical implementation.
Lukasz is an experienced Salesforce developer and architect. He's worked on global implementations as a Salesforce specialist across industries like retail, insurance, and manufacturing for companies like eBay, Roche, Ricoh, and Sophos. He has developed solutions for all parts of the project lifecycle, in multinational environments, in various time zones, and with huge user bases. Lukasz believes that good communication and user satisfaction play a key role in modern business solutions.
An experienced Salesforce.com Certified Advanced Developer, Eugene has over eight years of expertise in Salesforce, including Salesforce CRM customization and Force.com product development. His knowledge encompasses Apex, Lightning, Lightning Web Components, Salesforce 1, customer and partner communities, integrations with external systems, and more. Eugene is an exceptional communicator and has shown excellent attention to detail.
Sunny has more than 11 years of experience as an IT professional. He's committed to maintaining cutting-edge technical skills and up-to-date industry knowledge. He is a developer/administrator certified in Salesforce who also has expertise in Salesforce out-of-the-box functionalities (workflows, approval process, standard objects, standard applications). He has hands-on experience writing Apex classes/triggers, LWC components, integrations, etc.
Curt is a Salesforce consultant and solution architect with experience in tech, healthcare, education, insurance, financial services, banking, retail, and travel. He holds multiple Salesforce certifications: System Administrator, Platform App Builder, Sales Cloud Consultant, Service Cloud Consultant. Curt's also worked on a wide range of business processes, including sales, service, customer and partner communities, knowledge, reports, dashboards, data migrations, organization maintenance, etc.
Salesforce is a cloud computing company, best known for its flagship Customer Relationship Management (CRM) system. In addition to its many out-of-the-box features, the Salesforce CRM solution offers a full-blown development environment that allows companies to customize and develop their solutions leveraging the Salesforce technologies in the cloud. This guide offers a sampling of insightful questions to help you identify the best Salesforce developers who are experts in their field.
... allows corporations to quickly assemble teams that have the right skills for specific projects.
Despite accelerating demand for coders, Toptal prides itself on almost Ivy League-level vetting.
Our clients
Creating an app for the game
Leading a digital transformation
Building a cross-platform app to be used worldwide
Drilling into real-time data creates an industry game changer
Testimonials
Tripcents wouldn't exist without Toptal. Toptal Projects enabled us to rapidly develop our foundation with a product manager, lead developer, and senior designer. In just over 60 days we went from concept to Alpha. The speed, knowledge, expertise, and flexibility is second to none. The Toptal team were as part of tripcents as any in-house team member of tripcents. They contributed and took ownership of the development just like everyone else. We will continue to use Toptal. As a startup, they are our secret weapon.
Brantley Pace, CEO & Co-Founder
Tripcents
I am more than pleased with our experience with Toptal. The professional I got to work with was on the phone with me within a couple of hours. I knew after discussing my project with him that he was the candidate I wanted. I hired him immediately and he wasted no time in getting to my project, even going the extra mile by adding some great design elements that enhanced our overall look.
Paul Fenley, Director
K Dunn & Associates
The developers I was paired with were incredible -- smart, driven, and responsive. It used to be hard to find quality engineers and consultants. Now it isn't.
Ryan Rockefeller, CEO
Radeeus
Toptal understood our project needs immediately. We were matched with an exceptional freelancer from Argentina who, from Day 1, immersed himself in our industry, blended seamlessly with our team, understood our vision, and produced top-notch results. Toptal makes connecting with superior developers and programmers very easy.
Jason Kulik, Co-Founder
ProHatch
As a small company with limited resources we can't afford to make expensive mistakes. Toptal provided us with an experienced programmer who was able to hit the ground running and begin contributing immediately. It has been a great experience and one we'd repeat again in a heartbeat.
Stuart Pocknee , Principal
Site Specific Software Solutions
We used Toptal to hire a developer with extensive Amazon Web Services experience. We interviewed four candidates, one of which turned out to be a great fit for our requirements. The process was quick and effective.
Abner Guzmán Rivera, CTO and Chief Scientist
Photo Kharma
Sergio was an awesome developer to work with. Top notch, responsive, and got the work done efficiently.
Dennis Baldwin, Chief Technologist and Co-Founder
PriceBlink
Working with Marcin is a joy. He is competent, professional, flexible, and extremely quick to understand what is required and how to implement it.
André Fischer, CTO
POSTIFY
We needed a expert engineer who could start on our project immediately. Simanas exceeded our expectations with his work. Not having to interview and chase down an expert developer was an excellent time-saver and made everyone feel more comfortable with our choice to switch platforms to utilize a more robust language. Toptal made the process easy and convenient. Toptal is now the first place we look for expert-level help.
Derek Minor, Senior VP of Web Development
Networld Media Group
Toptal's developers and architects have been both very professional and easy to work with. The solution they produced was fairly priced and top quality, reducing our time to launch. Thanks again, Toptal.
Jeremy Wessels, CEO
Kognosi
We had a great experience with Toptal. They paired us with the perfect developer for our application and made the process very easy. It was also easy to extend beyond the initial time frame, and we were able to keep the same contractor throughout our project. We definitely recommend Toptal for finding high quality talent quickly and seamlessly.
Ryan Morrissey, CTO
Applied Business Technologies, LLC
I'm incredibly impressed with Toptal. Our developer communicates with me every day, and is a very powerful coder. He's a true professional and his work is just excellent. 5 stars for Toptal.
Pietro Casoar, CEO
Ronin Play Pty Ltd
Working with Toptal has been a great experience. Prior to using them, I had spent quite some time interviewing other freelancers and wasn't finding what I needed. After engaging with Toptal, they matched me up with the perfect developer in a matter of days. The developer I'm working with not only delivers quality code, but he also makes suggestions on things that I hadn't thought of. It's clear to me that Amaury knows what he is doing. Highly recommended!
George Cheng, CEO
Bulavard, Inc.
As a Toptal qualified front-end developer, I also run my own consulting practice. When clients come to me for help filling key roles on their team, Toptal is the only place I feel comfortable recommending. Toptal's entire candidate pool is the best of the best. Toptal is the best value for money I've found in nearly half a decade of professional online work.
Ethan Brooks, CTO
Langlotz Patent & Trademark Works, Inc.
In Higgle's early days, we needed the best-in-class developers, at affordable rates, in a timely fashion. Toptal delivered!
Lara Aldag, CEO
Higgle
Toptal makes finding a candidate extremely easy and gives you peace-of-mind that they have the skills to deliver. I would definitely recommend their services to anyone looking for highly-skilled developers.
Michael Gluckman, Data Manager
Mxit
Toptal’s ability to rapidly match our project with the best developers was just superb. The developers have become part of our team, and I’m amazed at the level of professional commitment each of them has demonstrated. For those looking to work remotely with the best engineers, look no further than Toptal.
Laurent Alis, Founder
Livepress
Toptal makes finding qualified engineers a breeze. We needed an experienced ASP.NET MVC architect to guide the development of our start-up app, and Toptal had three great candidates for us in less than a week. After making our selection, the engineer was online immediately and hit the ground running. It was so much faster and easier than having to discover and vet candidates ourselves.
Jeff Kelly, Co-Founder
Concerted Solutions
We needed some short-term work in Scala, and Toptal found us a great developer within 24 hours. This simply would not have been possible via any other platform.
Franco Arda, Co-Founder
WhatAdsWork.com
Toptal offers a no-compromise solution to businesses undergoing rapid development and scale. Every engineer we've contracted through Toptal has quickly integrated into our team and held their work to the highest standard of quality while maintaining blazing development speed.
Greg Kimball, Co-Founder
nifti.com
How to Hire Salesforce Developers through Toptal
1
Talk to One of Our Industry Experts
A Toptal director of engineering will work with you to understand your goals, technical needs, and team dynamics.
2
Work With Hand-Selected Talent
Within days, we'll introduce you to the right Salesforce developer for your project. Average time to match is under 24 hours.
3
The Right Fit, Guaranteed
Work with your new Salesforce developer for a trial period (pay only if satisfied), ensuring they're the right fit before starting the engagement.
Find Experts With Related Skills
Access a vast pool of skilled developers in our talent network and hire the top 3% within just 48 hours.
At Toptal, we thoroughly screen our Salesforce developers to ensure we only match you with talent of the highest caliber. Of the more than 200,000 people who apply to join the Toptal network each year, fewer than 3% make the cut. You’ll work with engineering experts (never generalized recruiters or HR reps) to understand your goals, technical needs, and team dynamics. The end result: expert vetted talent from our network, custom matched to fit your business needs.
Can I hire Salesforce developers in less than 48 hours through Toptal?
Depending on availability and how fast you can progress, you could start working with a Salesforce developer within 48 hours of signing up.
What is the no-risk trial period for Toptal Salesforce developers?
We make sure that each engagement between you and your Salesforce developer begins with a trial period of up to two weeks. This means that you have time to confirm the engagement will be successful. If you’re completely satisfied with the results, we’ll bill you for the time and continue the engagement for as long as you’d like. If you’re not completely satisfied, you won’t be billed. From there, we can either part ways, or we can provide you with another expert who may be a better fit and with whom we will begin a second, no-risk trial.
Share
How to Hire a Great Salesforce Developer
In general, writing code is an essential part of extending any software, product, or platform. But when it comes to Salesforce projects, coding is not necessarily required.
This is possible because Salesforce provides a comprehensive toolbox, including drag-and-drop tools to build your database, standard user interfaces (UIs) to edit with point-and-click tools, and workflow engines with advanced automation capabilities.
By sticking to only these tools, it’s possible to create an advanced and customized business solution inside the Salesforce ecosystem without writing a single line of code.
This out-of-the-box toolkit will work for some, and for others, a Salesforce application expert might be needed to get you to the finish line.
This is when coding comes into play and when you’ll have to hire a developer to help you.
With Salesforce, this out-of-the-box toolkit will work for some, and for others an expert might be needed to get you to the finish line.
If you do need an expert-level Salesforce developer, you should seek someone who is not only fluent with SQL and Salesforce’s drag-and-drop tools, but a certified developer who also knows Apex and SOQL, Salesforce’s custom query and programming language. You might also seek someone with experience in Salesforce Lightning.
Most people won’t know the right questions to ask, which is why we put together this guide. In it, you’ll find our top Salesforce developer interview questions and answers.
Questions and Answers
Q: Name the available collection types in Apex. Discuss their limits and characteristics.
In Salesforce, Apex supports three different collection types: Lists, Maps, and Sets.
Lists are ordered collections of elements that are distinguished by their indices. Lists should be used when you want to identify an element by its index. It’s also important to note that lists can contain duplicates.
Maps are collections of key-value pairs, where each unique key maps to a single value. A key can be any primitive data type, and value can be a primitive, sObject, collection type, or an Apex object.
Sets are unordered collections of elements that do not contain any duplicates (in contrast to Lists, as noted above).
Which type should you use? That depends on what you’re trying to accomplish and the characteristic of each collection type described above.
It’s also worth mentioning that removing items from a set is more straightforward than removing an item from a list. When you remove an item from a list, the index will shift left.
There is no inherent limit on the number of items a collection can hold, although there is an implicit limit based on the heap size.
Due to the multi-tenant nature of the environment, Salesforce maintains a table with all the limits. Salesforce occasionally revises these limits and adjusts the execution capabilities.
Q: Discuss the transaction control limitations in Apex.
Salesforce is a multi-tenant environment, which essentially means that all resources are shared among its users. To maintain system performance and availability, the platform enforces process limits.
All Salesforce developers must know these limits well because they affect how a solution should be engineered and coded.
Here’s the most relevant limitations regarding transaction control.
Static variables are not reverted during a RollBack.
The ID on an sObject inserted after setting a SavePoint is not cleared after a RollBack.
Each RollBack or SavePoint you set, counts against the governor limit for the DML statements.
References to SavePoints cannot cross trigger invocations because each trigger invocation is a new trigger context.
If you set more than one SavePoint, then roll back to a SavePoint that is not the last SavePoint you generated, the later SavePoint variables become invalid.
Q: What is the time limit for synchronous Apex requests? Discuss the strategies that can be used to avoid hitting the limit.
A synchronous Apex request that is running for more than five seconds is considered to be long-running. To avoid reaching this limit, it’s recommended to use any of the following strategies.
Tune SOQL and DML operations, making sure queries are selective.
Check if Batch Apex is a possible alternative to convert synchronous processes into asynchronous processes.
Try to limit calls to synchronous web services.
These are standard solutions Salesforce developers know to look out for when reaching limits.
Limits are at the very core of Salesforce development, and every developer should understand them.
When you get errors mentioning limits, you should tweak your code to optimize, or break your solution into chunks that will stay within the Salesforce enforced limits.
Q: What is the main difference between a global and a public class in Apex? Explain with examples.
Global classes are visible in any application or namespace, while public classes are only visible within a specific application or namespace.
All classes using the public access modifier will be accessible only within your own application or namespace.
public class MyClass {
// Methods accessible only within your application
}
Classes using the global access modifier are accessible by Apex everywhere. An example would be a class that allows an external application to invoke an Apex Web service to perform an action in Salesforce.
global class MyWebService {
// Methods accessible by Apex everywhere, e.g.: the SOAP API
}
Q: Explain how to write an Apex class that will take into consideration the sharing rules for the current user. Explain with examples.
By default, Apex code runs in the system context, with access to all objects and fields object permissions.
If you need to write a class that will take the current user sharing rules into consideration, you need to declare it with the with sharing keywords.
This class will be executed with access in the system context, with access to all objects and fields.
public without sharing class MyNoSharingRuleClass {
// Code here will NOT enforce the current user sharing rules
}
This class will enforce the sharing rules of the current user.
public with sharing class MySharingRuleClass {
// Code here WILL enforce the current user sharing rules
}
When a class is declared without these access modifiers, the current sharing rules are used.
By default, the class will not enforce sharing rules except if the sharing rules are acquired from a calling class.
Q: Explain what Apex Unit Tests are. Discuss the deploy requirements for Apex code. Provide an example.
The Salesforce CRM platform uses Apex Unit Tests, which are class methods that check if a piece of code is working properly. Note that the unit test methods take no arguments, commit no data to the database, and send no emails.
Test methods must be defined in test classes that are annotated with @IsTest.
To deploy your Apex code, Salesforce requires that all of the following criteria is satisfied.
At least 75% of your Apex code must be covered by unit tests, and all of these tests must be completed successfully.
Every trigger must have some test coverage.
All classes and triggers must compile successfully.
Here is an example of a basic structure of a test class.
@isTest
private class MyCustomObjectTestClass {
static testMethod void runPositiveTestCases() {
// Run your positive tests here
System.debug('Positive validation test...');
}
static testMethod void runNegativeTestCases() {
// Run your negative tests here
System.debug('Negative validation test...');
}
}
Q: Explain how to access archived and deleted records by using the SOQL statement?
In Salesforce, a deleted record is not actually deleted. Instead, it is moved to a recycle bin.
Every Salesforce user has access to the recycle bin, which is conceptually similar to the recycle bin in Windows or macOS. The same goes for archiving.
Therefore, if a developer building a query wants to include the deleted and archived records in its result set, [s]he can use the ALL ROWS keywords in the SOQL statement.
Here’s an example.
SELECT COUNT() FROM Contact WHERE AccountId = a.Id ALL ROWS
Q: Explain how to assure a process can update records, without the risk of other processes or users simultaneously updating the same records.
SOQL supports the FOR UPDATE keywords.
When included in the SOQL statement, they guarantee that no other process or user will be able to update the records concurrently. After the transaction handling the records is completed, the lock is released.
Q: Consider the following snippet of code:
List opportunityList = [SELECT Id, Name, StageName FROM Opportunity WHERE StageName = 'Qualification'];
Explain what, if anything, is wrong with it?
The preceding code fetches all the opportunities in the Qualification stage. While the code snippet is correct, we are using the string literal directly, without a constant or a configuration.
This coding practice could become a source of problems because there may be other classes using the same approach.
For example, if we assume that we want to change the stage name from Qualification to Pending Review, this would take a certain amount of work to perform an impact analysis and incorporate the changes in the code.
This situation could have been avoided with a constant or a configuration approach, and our query will look something like this, assuming we have created a constant.
public static final String STAGE_NAME = 'Qualification';
The final query will be:
List opportunityList = [SELECT Id, Name, StageName FROM Opportunity WHERE StageName = STAGE_NAME];
Q: Consider the following snippet of code:
global class FutureRecordProcessing
{
@future
public static void processRecords(List myObjectList)
{
// Process records
}
}
Why does this code generate a compilation error?
In Apex, @future annotated methods cannot get sObjects as arguments, because the sObject might change between the time you call the method and the time it actually executes. In this particular scenario, a list of sObjects IDs should be used instead to perform a query for the most up-to-date records.
Here is an example of a future method properly querying the objects from a list of IDs:
global class FutureRecordProcessing
{
@future
public static void processRecords(List recordIds)
{
// Query records
List myObjects = [SELECT Name FROM MyObject__c WHERE Id IN :recordIds];
// Process records
}
}
Take the time to find a top Salesforce developer.
The questions we covered in this article should be a piece of cake for any sufficiently experienced Salesforce developer; and therefore, should help you distinguish a wannabe Salesforce expert, who mostly uses only drag-and-drop tools, from a top-level developer, who is fluent in both SOQL and Apex.
Taking the time to find the best full-time or part-time candidates is well worth the effort, as they undoubtedly will have a significant impact on your team’s productivity and bottom line.