If you ever want to gauge how passionate the Salesforce community is, take a look at Dreamforce. You will find thousands of excited nerds sporting hoodies, bags, and other Salesforce goodies getting all fired up about new features. The enthusiasm is infectious; I myself who once harbored an irrational animosity towards laptop stickers now sport a Salesforce cloud on both my laptop and phone.

I started my career with .NET and JavaScript. When given the opportunity to work with Salesforce, a platform that described itself as “low-code”, I was hesitant. I love writing code. …


Early and continuous feedback from both users and stakeholders is critical to any software project’s success. Take some examples: through early feedback, this piece of software could potentially have avoided what I imagine must have been post-release user riots. I can also imagine users facing a medical emergency (or at least a change of pants) after seeing this popup around midnight which could also have been prevented through early feedback.

Beyond user experience horrors, early feedback can also course-correct incorrect requirements well before they are fully translated into wasted electrical signals.

Rapid prototyping

Prototyping is a powerful early-feedback tool no matter what…


Just don’t

The low-code revolution with its point-and-click solutions has a pretty clear message for us developers: avoid Apex whenever possible. The guidelines dictate that solutions that write Apex for something that could have been done through a point-and-click tool are inferior.

Most of the time, the advice is sound. Unfortunately, the whole message around low-code and point-and-click makes it too easy for us to miss the following immensely important message which you’ll find somewhere deep inside the developer guide:


Summer ’19 brings us a great new update to enforce security in Apex through the Security and SObjectAccessDecision classes. Put simply, the new feature (which is still in pilot phase as of this writing) allows us to clear field values on lists of sObjects that the user doesn’t have access to. In this post, we will dive into this new feature, code some experiments to see how exactly it works and explore different scenarios that the release notes didn’t cover.

We’ll start with a little background on Apex and Security which you can skip if you’re comfortable with the idea…


I’ll be honest. I struggled to understand promises when I first started learning about them. I had to walk through multiple articles and examples and experiment a good bit to get a handle on what was going on. I felt that most explanations I read left too much to the reader and didn’t impart the justice demanded by any complex idea: breaking it down into small, understandable parts.

The goal of promises is to write cleaner code by eliminating the excessive use of callback functions. If you’ve spent some serious time with JavaScript you may be familiar with something we…


Are you tired of writing lines and lines of boilerplate every time you need to run a SOQL query or call an Apex method from your lightning component? I am. Do you miss the ability to execute Apex or SOQL with just one line of code in JavaScript? I do.

In the old times when the world was still filled with just Visualforce pages, you could call an Apex method from JavaScript using the following line:

sforce.apex.execute("MyClass", "getAccounts", {searchStr: "Tech"});

And you could execute some SOQL directly from JavaScript using the following:

var q = "SELECT Id, Name FROM Account…

Lightning components and applications communicate with each other primarily through an event-based model powered by Component Events and Application Events. However, reading the official developer documentation for the first time left me with some unanswered questions. I had to build out a few applications and test them out myself to learn exactly how these events function.

In this post, we’re going to do just that — build lightning components and see in detail how events function, which components can receive what events, the order in which they are received by other components and explore options such as bubble, capture and…

Mehdi Maujood

Software engineer, Salesforce enthusiast, Pluralsight author

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store