An Introduction to the Serious Stack Behind Salesforce Developers
Join the DZone community and get the full member experience.Join For Free
My Salesforce Developer Journey
About ten years ago, I was starting to burn out when I stumbled onto what was then known as Salesforce’s Force.com (now known as the Lightning Platform). It was like discovering new love. At that time, cloud computing had only just begun to catch on, and there were few platform services offering similar capabilities. None matched Salesforce's scale, flexibility, depth, and breadth.
Unlike other technologies of the time, with Salesforce I could build an app in a day and deploy it to thousands of users almost instantly. I could modify the data schema, logic, and user interface while they were live in production without disrupting any user. I could integrate with other systems using pre-existing, robust security mechanisms and industry-standard SOAP and REST APIs. And I couldn’t even count all of those pesky IT tasks that I no longer needed to worry about as a developer. And it was fun! Working within the platform was enjoyable and made it easy to find success as a developer.
In short, I fell madly in love with the technology and never looked back.
Fast forward to 2020. I remain immersed in Salesforce technology, where I have been building business applications and solutions since finding the platform ten years ago. I subsequently directed my career toward helping others learn and master Salesforce technology as an instructor and mentor, focused on helping other developers leverage the platform for their own success.
In my eight years as a Salesforce MVP and ten years as a Salesforce Training Partner, I've been asked by customers, students, and fellow community members what exactly compelled me to migrate to Salesforce. After all, I was a data-centric business application developer, and Salesforce was for CRM. I didn't even know that CRM meant (Customer Relationship Management at the time!)
Over this series of articles, I'm going to answer that question. I’ll talk about why you should consider Salesforce development as a career and the unique career opportunities (both technical and personal) available to both experienced and beginning developers. I’ll talk about how the platform is financially rewarding because of the ever-expanding customer base, the ever-expanding technology, and the dearth of experienced development talent. Most importantly, I’ll explain how the platform has evolved into a deeply-technical developer platform that requires serious developers.
But Isn’t Salesforce Just for CRM?
First, let’s address the question that has been a huge point of confusion and a key impediment to many developers taking advantage of the platform. No, Salesforce is not just CRM. Yes, it's true that Customer Relationship Management (or CRM) is the core of Salesforce. However, in service of building and evolving their CRM platform, a resulting side-effect has been an enterprise-grade, metadata-driven, multi-tenant cloud architecture that allows developers to build almost any kind of business application.
Customer data is the heart of Salesforce, and the heart of most business applications. Salesforce customers who already use the CRM now have a complete application development platform at their disposal, which can be used to rapidly build whatever innovative business applications they can conceive: financial, task management, contract management, document workflows, eCommerce, mobile, and more.
It enables building applications quickly, with a cloud-first stack supported by the serious development frameworks you expect in a modern system: an open-source web components UI layer (Lightning Web Components), integration with DevOps tools such as CI/CD pipelines and containers, an AI engine (Einstein), a platform message bus (Platform Events), and there is evolving technology (Evergreen) for serverless microservices using Node.js, Redis, Kubernetes, and more.
Should You Become a Salesforce Developer?
So let's look at the market. There is a strong and growing market need for Salesforce developers. Salesforce developer was named a top-10 job of 2019 by Indeed, with a 129% year-over-year growth and an average salary of over $117,000. Why? Salesforce is used in over 90% of Fortune 500 companies. And more and more of these companies are migrating their non-Salesforce apps into their Salesforce ecosystem. In order to succeed, these companies need developers familiar with both Salesforce and traditional development stacks, and here is where I found great opportunity.
As in traditional development, the Salesforce platform needs a wide range of developers with a wide range of interests. Let's see how it might align with your skills.
As a side note, they've also embraced open-source standards by creating a variety of open-source projects, such as the Lightning Web Components project, oclif — a framework for building CLIs in Node.js — and Apache PredictionIO — a machine learning server — and more.
Maybe you’re more interested in relational databases, stored procedures, and object-oriented service layers. The Heroku platform allows for managed data stores like Postgres, Apache Kafka, and Redis supporting all sorts of web applications and easy integration with the Salesforce database. And while the Salesforce metadata-driven cloud architecture allows non-programmers to configure the core Salesforce data object schema and configure no-code logic processes, more complex business requirements often require programmatic triggers and service logic written with the Apex object-oriented programming language.
Microservice or Serverless Architect
While in-bound and out-bound web integration has been built into Salesforce for well over a decade, the Evergeen toolkit will allow Salesforce developers to write small functions and microservice logic using not only Apex, but also Java and Node.js. This allows them to be invoked natively from within Salesforce, using both declarative and code-based tools. The Heroku cloud platform already supports polyglot web applications and services that easily integrate with the native Salesforce clouds, and Evergreen will expand these capabilities even more, providing a whole new opportunity pipeline for developers.
Perhaps you’re an iOS or Android mobile developer. While it’s true that native Salesforce is configurable with no-code to present on mobile devices, available SDKs allow for truly native mobile and device app development for custom business cases across all sorts of business domains.
Artificial Intelligence/Data Scientist
Or maybe you lean towards business analysis, analytics, or artificial intelligence. Salesforce Einstein provides opportunities for developers interested in data science, analytics, AI, and integrations across external transactional business systems. Salesforce also recently acquired Tableau Software and has standing partnerships with both IBM and Microsoft.
Even with highly configurable Integration Cloud tools, such as Mulesoft, there is still a great need for solutions architects with integration and identity skills and experience. The platform follows an API-first approach, and built-in, standards-based identity management mechanisms allow for highly-secure application and service integrations. Yet again, even though much can be accomplished with no-code configurable tools, solid developer skills are still required to build and maintain effective integrations across any enterprise landscape.
Maybe you like to play with connected stuff. An API-first company would be a great platform for Internet of Things (IoT) applications. Salesforce has been evolving its IoT offerings to support opportunities for customers needing machine-to-machine communication across a wide variety of industries, such as manufacturing, agriculture, medicine, and energy — all ripe opportunities for developers with "Maker" propensities.
My key point is that even though Salesforce is famous as a no-code platform, the reality is that there’s an industry need for traditional developers who can effectively apply their skills within the ecosystem. While it can be challenging for developers to merge programmatic logic with declarative mechanisms, that’s one aspect that creates such high demand for those who can master such skills.
Over the next few posts in this series, I’m going to drill down into some of these technical areas. Along the way, I’ll provide links to where you can find deeper information, online educational content, and documentation. I'll freely admit my goal is to entice you to learn more — and maybe even convince you to jump in.
In my next post, I’ll focus on the core aspects of the platform and what it means to be a Salesforce Business App Developer. We’ll look at some of the App Dev capabilities of the platform, the power and leverage of the metadata-driven architecture, the need for sophisticated development skills to work within such an architecture both declarative and programmatic, and more.
I hope you’ll come with me on this Salesforce Developer Journey, and I’m going to hope (and maybe even bet) that it could change your life as it did mine.
Published with permission from Don Robins.
Published at DZone with permission of Michael Bogan. See the original article here.
Opinions expressed by DZone contributors are their own.
RBAC With API Gateway and Open Policy Agent (OPA)
Mastering Time Series Analysis: Techniques, Models, and Strategies
Competing Consumers With Spring Boot and Hazelcast
From On-Prem to SaaS