In September of 2020, with the COVID-19 pandemic raging globally, I made the decision to start more actively contributing to Salesforce open source projects. Several months later, I open sourced Apex Rollup, and last year added Salesforce Round Robin to the mix. This year has been largely about supporting the growth of both of these projects, as well as continuing to contribute to and support open source classics like Nebula Logger, which appears on track to join the top 5 most-starred GitHub...| www.jamessimone.net
Last year, I wrote about A Year In Open Source, and I wanted to wrap this year up with another reflection after having hundreds of hours over the course of 2022 engaged in giving back. I've had the pleasure of mentoring colleagues & friends; of contributing additions to popular open source libraries like Nebula Logger, Trigger Action Framework as well as my own repositories; of reading and continuing to hone my own skills. I was also a guest speaker at an internal symposium for Open Source we...| www.jamessimone.net
I was on the Salesforce developer podcast talking about speed versus quality (https://developer.salesforce.com/podcast/2023/03/episode-167-move-fast-dont-break-things-with-james-simone) a few weeks ago, and I'd encourage you to give that conversation a listen if you haven't already because it sets the stage nicely for this article. The theory that baking quality in from the get-go begets speed was the basic premise, but I've seen the opposite of that play out over and over again in software e...| www.jamessimone.net
Open source work is an incredible way to build up a corpus of referenceable work when applying to jobs, but there are other reasons you might want to build up a portfolio of Apex-related code. Learning how to package and distribute code, for example, or giving yourself the chance to show off a piece of functionality you're particularly proud of.| www.jamessimone.net
Want to improve yourself as an engineer? Looking for tips & tricks to empower yourself as a teammate or individual contributor? There are a few things that you can do at any point in your career that will help. There's a reason that professional athletes frequently preach the importance of fundamentals - while it may seem like common sense, now, it's only been recently through the application of science to sports that experts have begun to understand how practice quite literally makes perfect...| www.jamessimone.net
I decided to open source my Salesforce round robin assigner because I know how difficult it is to get the edge cases right when building something like this, and I wanted to create an easier way to hook into round robin-style assignments for both Flow and Apex developers. I'll walk a little bit through the changes I made prior to packaging up this functionality, and hopefully leave you with another great free tool.| www.jamessimone.net
Deep Work - the concept of blocking out prolonged sections of uninterrupted time to do work - has been making the rounds in tech circles the past few months. On the other side of things, we have mob programming, which focuses on something that seems completely contradictory to the Deep Work movement -- working collaboratively throughout the day while on a video call, with only one person typing at any given time. Whereas Deep Work focuses on people achieving flow state by having lots of solo ...| www.jamessimone.net
Learn about some of the latest features made to the Nebula Logger project over the last 8 months to further improve Salesforce logging capabilities.| www.jamessimone.net
You've heard about the joys of using platform events from Jonathan in Advanced Logging Using Nebula Logger - their versatility and interoperability with exception handling being a primary example of where the two features dovetail nicely together. Something interesting starts to occur when your platform events start firing other platform events, especially when those platform events originate from Apex that is already running asynchronously| www.jamessimone.net
Learn how to implement the Nebula Logger project for Salesforce for advanced logging, and some of the challenges experienced over the years with implementing a custom logging tool.| www.jamessimone.net
We owe our ability to understand abstractions in programming to philosophy; much as we owe a debt to mathematics for putting the theorems responsible for our code -- and computers -- to work into words. Consider the immortal words present in the Tao: A well-shut door will stay closed without a latch. Skillful fastening will stay tied without knots. One does not simply (walk into Mordor) build a door that works well. A factory for doors cannot provide you with the quality of worksmanship and p...| www.jamessimone.net
A few months ago I was tasked with replacing Declarative Lookup Rollup Summaries (DLRS) in an org suffering from frequent deadlocks. Rollup summary fields in Salesforce are plagued by severe limitations -- only being available on master-detail relationships being just the start of the list. Read on to learn about how I built Rollup to assist in orgs looking for DLRS-like flexibility with a much smaller performance overhead, complete with elastic scaling (go fast when you need to, slow when th...| www.jamessimone.net
Dive into the philosophy behind unit testing in Apex, and why writing good tests is so important.| www.jamessimone.net