• Trusted by:

Hire Salesforce developers and engineers

Matthew Michael Vagnoni, United States

Member since January 23, 2014
Matthew is a natural leader who loves to solve problems and take the initiative. He has excellent verbal and writing skills and two Master's degrees. He enjoys taking on tricky problems. Click to continue

Alex Wong, United States

Member since January 5, 2016
Alex is an independent software consultant with more than 15 years of experience. He has helped companies of all sizes, from nascent startups to Fortune 500 corporations, successfully deliver software projects by providing expertise in development, architecture, and management. He has built solutions in everything from large-scale distributed systems to rich internet front-ends for clients such as Sun Microsystems, Zendesk, and GE Capital. Click to continue

Sunny Gill, India

Member since July 3, 2016
Sunny has more than 5 years of experience as an IT professional. He is 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, SOQL, SOSL, and Apex test methods. Click to continue

Oleg Rikkers, United States

Member since July 19, 2015
Oleg has been working with the Salesforce platform since late 2007. During that time, he gained great expertise in building enterprise-grade applications on it. His knowledge of Force.com tools, frameworks, and features includes Apex, Visualforce, Lightning/Aura, customer/partner communities, ProcessBuilder, Salesforce1, and more. He is well versed in Scrum/Agile methodology and change management. Click to continue

Pablo Cassinerio, Argentina

Member since June 3, 2016
Pablo is a Salesforce Certified Platform Developer specializing in back-end programming. He's always looking forward to optimizing his implementations. Pablo takes advantage of all of Salesforce's resources and is always ready to investigate and apply new technologies. Click to continue

Bohdan Dovhan, Ukraine

Member since June 9, 2016
Bohdan is a certified Salesforce developer and administrator with over 7 years of experience developing and supporting Salesforce solutions. He currently holds the Salesforce Certified Force.com Developer and Salesforce Certified Force.com Advanced Developer certifications. Click to continue

Abhinav Gupta, India

Member since June 13, 2014
Abhinav is a Salesforce architect, six-time Salesforce MVP (Most Valuable Professional), blogger, open source enthusiast, speaker for Salesforce and Dreamforce, and author of a book for Force.com tips. He excels with Force.com integrations, advanced Apex, and creating rich Visualforce pages with jQuery, Kendo, and AngularJS. He has Salesforce Certified Platform Dev 1 and Domain Certifications for Mobile and Deployment. Click to continue

Sławomir Gołąbek, Poland

Member since June 17, 2016
Sławomir is an experienced Salesforce developer with several complex projects involving various Salesforce technologies in his constantly growing portfolio. His experience allows him to deliver the best solutions and his proven expertise is reflected by an ever-growing number of technical certificates. He is a voracious learner and a skilled developer. Click to continue

Maria Florencia, Argentina

Member since May 9, 2016
Maria is a certified Salesforce.com developer with 5 years of experience specializing in the design, development, implementation, and administration of efficient business solutions while providing a great user experience. Click to continue

Andrii Muzychuk, Belarus

Member since June 1, 2016
Andrii is a certified Force.com developer who has been building custom solutions using the above platform for the last 5 years. This involves coding classes (batches, scheduled classes, email handlers), triggers, and Visualforce pages; adding/customizing standard and custom objects. Mostly, he works on integration solutions, but he thinks that business needs should be sourced from end-users: those that will use or want a feature, or the client. Click to continue
A hiring guide
The Vital Guide to Salesforce Interviewing

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.

Salesforce Resources
Trustpilot
Toptal on TV
"Toptal is killing it, it kind of owns this market."
Andrew Ross Sorkin Reviews Toptal
Cnbc 02e66b
"Tech companies simply cannot find the quality employees they want to hire. The solution: Toptal."
Liz Claman´s Review of Toptal
Fox 7ef901
Toptal in the press
“Despite accelerating demand for coders, Toptal prides itself on almost Ivy League-level vetting.”
Selina Wang
“Toptal allows corporations to quickly assemble teams that have the right skills for specific projects.”
Steven Norton
Testimonials
“I struggled for weeks with a Youtube API-specific problem and couldn't find anyone to solve it. Toptal immediately identified the right consultant who took the time to investigate the issue and resolve it quickly. The process was seamless and I will continue to use Toptal with any other issues that arise.”
Rohit Gupta
CEO @ Bollyshake
“We've had multiple needs for various development talent and Toptal doesn't disappoint. They truly focus on matching the best developer to our specific engagements, and they continue to stay connected in an effort to exceed our expectations at all times”
Mindle Hastings
Sr. Product Manager @ Bodybuilding.com
“FundedByMe needed to quickly scale our development team to create the equity crowdfunding leg of our operation. Working with a small budget, we couldn't spend time on vetting candidates, so we turned to Toptal. They identified a stellar developer that truly set the bar when it came to delivering product.”
Arno Smit
CTO @ FundedByMe.com
“I'm incredibly impressed with the caliber of the Toptal developers I have worked with - they have proven themselves to be both dedicated and highly talented. We will most definitely continue to work with Toptal. ”
Savannah de Savary
Founder @ Industry Hub
“I’m a big believer in the saying, ‘hire smart, or manage tough’. For us non-hackers, Toptal takes the guesswork out of hiring. Their coders are vetted, and the work is guaranteed. Why look anywhere else?”
Greg Archbald
Founder & CEO @ Greasebook
“I needed help, and fast. I did not want to hire a random coder I met online- I was worried about security, and many other issues. Toptal was there when I needed them- and has been fantastic to work with. Outsourcing is full of terrible stories- Toptal is the story that is the giant exception. I give them my highest recommendation.”
Michael Feder
Founder & CEO @ PrayerSpark
“In our 2 years of operations this is by far the most enjoyable and productive working relationship we have had with a developer. I plan on continuing to recommend Toptal's services to other entrepreneurs I run into.”
David Sawyer
CEO @ TSOLife
“Toptal has helped my business tremendously by finding, vetting, and recruiting the talent I need, at the right time. I’d definitely recommend it to others.”
Xavier Xicay
CEO & Creative Director @ Tuatara Corp
“Toptal has been extremely helpful to us in finding top remote talent. The ratio from interview to hire with Toptal candidates is the highest I've ever experienced in my professional career.”
Philipp Berner
Co-founder and CTO @ KeepSafe
“We needed a programmer to help push a project over the finish line, and I figured -- best case -- Toptal would find someone who would come in and complete a few tickets. Instead, Sergio blended right in with the team and made significant progress after mere days of ramp-up. He even offered to take his laptop with him on vacation in case we had a customer issue with his code! He surpassed my expectations, and then some.”
Bryan Adams
CTO @ Healthsense
“Dario was recently assigned to our company in order to help with PHP and JW Video player refinements. He listens extremely well and offers common sense suggestions that save both time and money. He speeds up the process by asking great questions, and he just delivered our first project on time. His redesigned player offers a very pleasing appearance and delivers functions that are both elegant and intuitive.”
Dennis B. Jacobs
President @ College TV Ticket
“The Toptal process was very organized, personable, and professional. They get to know you and your project idea, and then quickly provide you with several of the world's best developers, who will work hard to achieve your vision. I found a great developer in only a few days and was able to turn my idea into a functional product.”
Ben Woratyla
CEO @ Book Swap
“Ignacio is one of the most diligent software developers that we have ever worked with—we feel like he's part of the family. He has always been flexible enough to work on our team's schedule and never misses deadlines. Toptal gets you the talent you need, on your timeline, keeping the process very low friction.”
Austin Evarts
CEO @ GoChime
Hire a top Salesforce developer now.
Toptal is a marketplace for top Salesforce developers, engineers, programmers, coders, architects, and consultants. Top companies and start-ups choose Toptal freelancers for their mission-critical software projects.
Full
profile
Matthew Michael VagnoniUnited States
Matthew is a natural leader who loves to solve problems and take the initiative. He has excellent verbal and writing skills and two Master's degrees. He enjoys taking on tricky problems.
[click to continue…]
SalesforceJavaSQLSalesforce.com Data LoaderAgile Software DevelopmentWindows 7
Hire
Full
profile
Alex WongUnited States
Alex is an independent software consultant with more than 15 years of experience. He has helped companies of all sizes, from nascent startups to Fortune 500 corporations, successfully deliver software projects by providing expertise in development, architecture, and management. He has built solutions in everything from large-scale distributed systems to rich internet front-ends for clients such as Sun Microsystems, Zendesk, and GE Capital.
[click to continue…]
SalesforceSalesforce.com Data LoaderAgile Software DevelopmentSalesforce App Exchange
Hire
Full
profile
Sunny GillIndia
Sunny has more than 5 years of experience as an IT professional. He is 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, SOQL, SOSL, and Apex test methods.
[click to continue…]
SalesforceJavaScriptGolangAngularJSjQueryVisualforce Pages
Hire
Full
profile
Oleg RikkersUnited States
Oleg has been working with the Salesforce platform since late 2007. During that time, he gained great expertise in building enterprise-grade applications on it. His knowledge of Force.com tools, frameworks, and features includes Apex, Visualforce, Lightning/Aura, customer/partner communities, ProcessBuilder, Salesforce1, and more. He is well versed in Scrum/Agile methodology and change management.
[click to continue…]
SalesforceJavaScriptBootstrapjQuery UIVisualforce PagesSalesforce.com Data LoaderAgile Software DevelopmentSalesforce 1Salesforce.com Service Cloud CertificationCertified Salesforce AdministratorSalesforce App ExchangeSalesforce.com Developer CertificationjQuery Validation
Hire
Full
profile
Pablo CassinerioArgentina
Pablo is a Salesforce Certified Platform Developer specializing in back-end programming. He's always looking forward to optimizing his implementations. Pablo takes advantage of all of Salesforce's resources and is always ready to investigate and apply new technologies.
[click to continue…]
SalesforceSalesforce.com Data Loader
Hire
Full
profile
Bohdan DovhanUkraine
Bohdan is a certified Salesforce developer and administrator with over 7 years of experience developing and supporting Salesforce solutions. He currently holds the Salesforce Certified Force.com Developer and Salesforce Certified Force.com Advanced Developer certifications.
[click to continue…]
SalesforceJavaScriptSalesforce Object Search Language (SOSL)
Hire
Full
profile
Abhinav GuptaIndia
Abhinav is a Salesforce architect, six-time Salesforce MVP (Most Valuable Professional), blogger, open source enthusiast, speaker for Salesforce and Dreamforce, and author of a book for Force.com tips. He excels with Force.com integrations, advanced Apex, and creating rich Visualforce pages with jQuery, Kendo, and AngularJS. He has Salesforce Certified Platform Dev 1 and Domain Certifications for Mobile and Deployment.
[click to continue…]
SalesforceHTMLHTML5JavaScriptjQuerySalesforce 1
Hire
Full
profile
Sławomir GołąbekPoland
Sławomir is an experienced Salesforce developer with several complex projects involving various Salesforce technologies in his constantly growing portfolio. His experience allows him to deliver the best solutions and his proven expertise is reflected by an ever-growing number of technical certificates. He is a voracious learner and a skilled developer.
[click to continue…]
SalesforceHTMLSalesforce Marketing CloudVisualforce PagesSalesforce.com Data LoaderExacttarget
Hire
Full
profile
Maria FlorenciaArgentina
Maria is a certified Salesforce.com developer with 5 years of experience specializing in the design, development, implementation, and administration of efficient business solutions while providing a great user experience.
[click to continue…]
SalesforceVisualforce PagesSalesforce Programming
Hire
Full
profile
Andrii MuzychukBelarus
Andrii is a certified Force.com developer who has been building custom solutions using the above platform for the last 5 years. This involves coding classes (batches, scheduled classes, email handlers), triggers, and Visualforce pages; adding/customizing standard and custom objects. Mostly, he works on integration solutions, but he thinks that business needs should be sourced from end-users: those that will use or want a feature, or the client.
[click to continue…]
Salesforce
Hire

The Vital Guide to Salesforce Interviewing

In general, writing code is an essential part of extending any software, product, or platform. But when it comes to Salesforce, 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 a create an advanced and customized business solution inside Salesforce without writing a single line of code.

Of course, this out-of-the-box toolkit will not work perfectly for everyone, and you’ll hit a wall.

This is when coding comes into play and when you’ll have to hire a developer to help you.

With Salesforce, there’s no coding required -- until you hit a wall

With Salesforce, there’s no coding required -- until you hit a wall.

When you hit that wall, you’ll need an expert-level Salesforce developer, who is not only fluent with SQL and Salesforce’s drag-and-drop tools, but someone who also knows Apex and SOQL, Salesforce’s custom programming and query language.

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.

Salesforce 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<Opportunity> 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<Opportunity> 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<MyObject__c> 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<ID> recordIds)
    {  
         	// Query records
List<MyObject__c> 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 developer, 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 candidates is well worth the effort, as they will undoubtedly will have a significant impact on your team’s productivity and bottom line.

Hire Salesforce developers now
Alvaro 1506e7

My team is going to personally help you find the best candidate to join your team.

Alvaro Oliveira
VP of Talent Operations