Skip to content
View dschach's full-sized avatar

Highlights

  • Pro

Organizations

@x2od

Block or report dschach

Block user

Prevent this user from interacting with your repositories and sending you notifications. Learn more about blocking users.

You must be logged in to block users.

Content in all repositories owned by your account will be closed.
Maximum 250 characters. Please don’t include any personal information such as legal names or email addresses. Markdown is supported. This note will only be visible to you.
Report abuse

Contact GitHub support about this user’s behavior. Learn more about reporting abuse.

Report abuse
dschach/README.md

Hi πŸ‘‹ I'm David Schach

Founder of X-Squared On Demand, Salesforce Architect

GitHub followers Visitors GitHub User's stars NPM Downloads by package author

Salesforce Trailhead VSCode NPM Git GitHub Prettier GitHub Actions PMD JQuery Codecov ApexDox SemVer Jira Release Please Mend Renovate highlight.js Apex

  • πŸš€ I'm the founder of X-Squared On Demand, a Salesforce consultancy, with a passion for governance, auditability, standards, and extensible architectural design
  • 🌏 Based in Sydney, Australia
  • I've been working on Salesforce since the Summer 06 release (142, API 7.0) (Yes, that's a long time!)
  • πŸ’Ό To see a list of some things I've done, check out my online portfolio
LATEST NEWS
  • πŸ›‘οΈ My main focus is Salesforce DevSecOps: code, metadata, and pipeline quality and security. Declarative metadata like Flows and Permission Sets can skip pipelines and quality gates entirely, so I put GitHub Actions gates around the whole change surface, not just Apex.
  • πŸ§ͺ I write and maintain custom PMD rulesets for Apex that go beyond the defaults.
  • I run one central Prettier configuration and let my other configurations build on it, so I edit formatting rules in one place. It is on npm too: @x2od/prettier-config
  • 🎀 Recent talks: "Implementing CodeScan at Scale" at AutoRABIT Dev(H)ops (May 2025) and "What Could Go Wrong If I Don't Build Secure Apex?" at Cactusforce (Feb 2025).
  • 🌱 Lots of work on GitHub Actions!
  • mend renovate logo Configuring Renovate as a Dependabot replacement and exploring custom configurations for that tool: Renovate central configuration and a local extension
  • πŸ‡ AutoRABIT's product CodeScan has fast become one of my favorite tools. It's like PMD on steroids, with memory, so you can mark violations in PR branches and the tool magically remembers the override after you merge to main!
  • πŸ“Š I also use Salesforce's Code Analyzer as a complementary tool in GitHub CI workflows.
  • β™Ώ Currently learning about accessibility in Salesforce UI and exploring various tools to enforce accessibility standards in declarative metadata and custom code.
  • HighlightJS logo I released an updated Apex highlighter plugin for highlight.js so any Apex on a webpage will look great - and I published it to npm!
    • It now comes with an (optional) Monokai theme that mimics the wonderful MavensMate Sublime Text Monokai theme.
UP NEXT
  • Exploring AutoRABIT's Automated Release Management (ARM) product for CI/CD in Salesforce.
  • Building a repository or gist of my favorite custom XPath static code analysis rules (Apex, XML, HTML, etc)
  • I'm a fan of Gearset for straightforward pipelines, and I think that it could work well with Release-Please, even though R-P recommends Squash Merging and Gearset does simple merges. It would involve complex linting, possibly, but could enable Salesforce admins/devs to see a concise changelog of all changes pushed to Production with dates!
  • I'd like to add some features to Mitch Spano's Apex Trigger Actions Framework. I'm considering per-user global bypasses, allowing multiple custom permissions to bypass execution, an option to debug limits, and some other things. Thoughts?
  • Have you used ApexDox? I am thinking of updating it and putting in some cool features. What would you like to see it do? All my repos have ApexDox sites - here's a great example.
  • Looking for people to swap Salesforce DevSecOps notes with: pipelines, PMD rules, CodeScan, and metadata drift. Say hi!
COOL PROJECTS

πŸ”­ These are some of the Salesforce projects I'm proud of

TOP OPEN SOURCE CONTRIBUTIONS
TOP REPOSITORIES (ALL-TIME)
Repository Stars Purpose
ChatterBINGO The only community-created app used at Dreamforce 2010
salesforce-trigger-framework 33 ⭐ Trigger handler framework with performance improvements and full documentation
duplicatehandling 5 ⭐ Enhanced standard Salesforce duplicate handling
record-types 2 ⭐ RecordType utility class for quick, efficient retrieval
ACTION PLANS V4 Contrib Salesforce Labs app for managing action plans
ApexKit Contrib Co-authored toolkit for Apex development
campaign-member-status Enforce CampaignMemberStatuses based on Campaign Type
github-actions Centralized GitHub Actions workflows and configurations
prettier-config Central Prettier configuration used across all projects
PMD Contrib Apex rules and enhancements for PMD static code analysis
ApexDox Contrib Documentation generation for Apex code
Apex-Rollup Contrib Fast, configurable custom rollup solution
ACHIEVEMENTS
  • πŸ… Former Salesforce MVP with 18 Salesforce certifications, continuously certified since 2008
  • πŸŽ™οΈ 11-time Dreamforce speaker, and a featured guest on the Salesforce Developers Podcast (episodes 152 and 153, "Being a Trusted Advisor")
  • πŸ‡ΊπŸ‡Έ Original Salesforce Architect for the Obama reelection campaign
  • ☁️ Creator of Chatter BINGO at Dreamforce 2010, the only community member to have an app included in the Dreamforce app
  • Surfaced a dwarf error message in Salesforce - IYKYK
  • twitter logo Founder of the Dreamforce Tweetup, the first and largest community-led user event at Dreamforce
  • 🏊 πŸš΄β€β™‚οΈ πŸƒ 2x Ironman!
  • All-Star Ranger Badge All-Star Trailhead Ranger All-Star Ranger Badge
BIO
  • πŸ˜„ Pronouns: he/him
  • πŸ‘¨β€πŸ’» All my GitHub projects are available at https://github.com/dschach and https://github.com/x2od
  • πŸ“ I should blog more at X-Squared on Demand
  • πŸ“„ Here's my professional experience: LinkedIn
  • American Mensa logo I am a Life Member of Mensa
  • πŸ’¬ Ask me about apprenticeships and equity in the tech industry
  • Let's jam about Salesforce, Apex, and Security on the Salesforce Einstein 1 Lightning Agent 36O Platform
  • πŸ“« How to reach me: Find me via LinkedIn, Threads, or some other site!
  • ⚑ Fun fact: I was born in South Africa
  • 🧠 More fun facts: I have lived in South Africa, the United States, Israel, and Australia; I swam NCAA Division I; I am a Life Member of Mensa; and I will defend the Oxford comma to the end
CONTACT

GitHub GitHub x2od Trailhead LinkedIn Follow @dschach Salesforce StackExchange X-Squared on Demand Instagram Strava

profile for DavidSchach at Salesforce Stack Exchange, Q&A for Salesforce administrators, implementation experts, developers and anybody in-between

Top Languages GitHub Stats
dschach Top Languages dschach GitHub Readme Stats

X-Squared on Demand

Salesforce StackExchange

Pinned Loading

  1. SalesforceLabs/ActionPlansV4 SalesforceLabs/ActionPlansV4 Public

    Action Plans encapsulates best practices into reusable task templates.

    Apex 30 14

  2. salesforce-trigger-framework salesforce-trigger-framework Public

    A new trigger handler framework based on Kevin O'Hara's version, with some performance improvements and full documentation

    Apex 33 7

  3. record-types record-types Public

    Record Type utility class enabling quick, efficient retrieval of RecordTypeId from SObject name and a Record Type Name or DeveloperName. Built on work by Evan Callahan.

    Apex 2

  4. highlightjs/highlightjs-apex highlightjs/highlightjs-apex Public

    Highlight.js grammar for Salesforce Apex language

    JavaScript 10

  5. duplicatehandling duplicatehandling Public

    Enhanced standard Salesforce duplicate handling

    Apex 5 1

  6. x2od/campaign-member-status x2od/campaign-member-status Public

    Originally by Sercante LLC: A Salesforce project that demonstrates how you can enforce Campaigns to have certain CampaignMemberStatuses based on Campaign Type

    Apex