Although Salesforce was founded more than 20 years ago, its cloud-based CRM has experienced an incredible expansion in the last few years. Technology is increasingly prevalent in our market, so through this text, you will find out what principles you need to know in order to develop solutions on the Salesforce platform.
In our market, you will meet very few engineers who, from the beginning of their career, have exclusively built themselves in the Salesforce domain, which means that most of them have been "converted" from some previous technology (or more).
If you understand the general principles of software development, as well as some principles adopted in working with other technologies, the transition to the dynamic Salesforce world will not be very demanding. That's exactly the beauty of working on this platform - it's very quick and easy to learn new skills.
If you are someone who knows well the principles of object-oriented programming, and you have previous experience with some of the languages such as Java, C++, C# - you have a more than good starting point to engage in development tasks on the Salesforce platform.
Is experience with Java, C++ and C# languages necessary?
Knowledge of these languages is not a key prerequisite, but it will be of great help to you during the transition to technology where, among other things, you will work in the programming language called APEX.
Although it does not have all the capabilities of, for example, Java or C#, APEX comes with all the key principles and postulates of object-oriented programming, such as the concepts of classes, objects, inheritance or polymorphism.
One of the main reasons why APEX is not as advanced as some other OO languages is that Salesforce tends to promote and further develop so-called low-code tools.
Their basic idea is to implement as much automation as possible using declarative tools that don't require a single line of APEX code.
Those tools are already part of the platform itself - they come with a rich set of functionalities and do not require additional maintenance, nor unit tests that must always be written wherever there is even a single line of APEX code (namely, switching the code to production, and often to UAT environments not possible without at least 75% coverage of the APEX code with unit tests).
In this way, engineers learn to look for the solution that is optimal from the platform's point of view, and not necessarily the one that is easiest for them to implement.
In translation: they don't always have to write code if there is a tool that will declaratively provide the same result.
Efficiency and scalability - key to developing solutions on the Salesforce platform
As a cloud-based solution, Salesforce comes with something called governor limits. What are the limitations?
These are limits on things like the number of database queries allowed per transaction, the maximum number of rows that can be returned from the database after a query, the maximum number of HTTP calls to external systems per transaction, and so on.
The reason for introducing these limits lies in the fact that in cloud technology no customer is allowed to monopolize resources.
We all depend on the same infrastructure, and we share it, we just have our own virtual framework that we adjust to our needs.
A pictorial representation of this would be living in the building. The elevator and stairs are a space that all neighbors use - but if one of them misused and monopolized these resources, the whole building would feel the negative consequences.
These limits are a very important factor when designing and developing a solution on the platform, and "force" you to organize the solution at the start in a way that is the most efficient and scalable.
All of the above is in favor of the fact that the solution needed to implement client requirements can be organized with a combination of declarative tools and code, but in the Salesforce world, a solution that uses already predefined tools of the platform itself is considered the best practice (although, of course, this is not always possible to do because the client's requirements can be extremely complex).
LWC – what is it and why will you love it?
On the other side of the Salesforce spectrum, there is something reserved for UI development enthusiasts.
If you're a passionate "frontender", you'll quickly fall in love with Salesforce's framework called LWC.
As it is based on the latest UI standards - LWC offers engineers rich possibilities for customizing the user interface, using already defined and common UI elements such as tables, file-upload elements, buttons, formatted emails, and many others.
Part of the platform is also the so-called Experience Cloud (formerly known as Community), the implementation of which usually requires good management of Lightning components so that the user interface looks as diverse and meaningful as possible.
User interface development is one of the most prevalent topics in today's software development - clients are increasingly numerous and demanding, which Salesforce recognizes, and accordingly offers engineers numerous opportunities for high-quality interface development.
Where do you start?
One of the main advantages of working on the Salesforce platform is the rich documentation for learning.
In addition to classic documentation, such as blogs, or overviews of classes and libraries used in the APEX programming language, Salesforce has developed a specialized learning platform - Trailhead.
The key advantage of this platform is the possibility that, even though you are new to the mentioned technology, you can immediately acquire knowledge in a practical way, through tasks in a temporary development environment. The tasks can be simple, but also very demanding, depending on the topic being addressed.
We always emphasize that when learning new technologies, it is very important to connect with the community - and a big advantage of Salesforce is their community, which is very well organized.
It is very easy and fast to connect with colleagues from all over the world who, like you, are passionate engineers from different backgrounds who solve various client requests every day using the functionalities and capabilities of the Salesforce platform.
Last, but not least, in the Salesforce ecosystem, there are a number of certification opportunities, with which you can acquire additional credentials that can be of great importance for the further development of your career.
Salesforce platform sounds interesting to you? View open positions at Merkle and join their ever-growing Salesforce team!