- I'm a Salesforce Architect with a passion for governance, auditability, standards, and extensible architectural design
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
- 🌱 Lots of work on Github Actions!
- Using Release Please, a wonderful changelog generator from Google, with Github actions, expanding it to create an AppExchange package automatically when a new project version is released.
- Automatically rename Dependabot pull requests so they are more useful in changelogs and semver-compliant
- A repository of starter GitHub workflows: https://github.com/dschach/.github
- 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 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.
- 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.
-
🔭 I’m working on some
Salesforce code projects:
- Trigger Framework
- Quote Custom Sync using custom metadata
- Campaing Member Status
-
Kevin Poorman and I have been working on ApexKit, which is a very cool set of tools for Apex
These are some of my projects I'm particularly proud of
- RecordTypes utility class
- Duplicate Record Handling
I revised and released ACTION PLANS version 4 from Salesforce Labs! Find it on the AppExchange
- 📋 I rewrote large chunks of Surveyforce - check it out!
- 🇺🇸 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
Has surfaced a dwarf error message in Salesforce - IYKYK
Founder of the Dreamforce Tweetup, the first and largest community-led user event at Dreamforce
- 🏊 🚴♂️ 🏃 Ironman Arizona 2021 finisher!
- 😄 Pronouns: he/him
- 👨💻 All my GitHub projects are available at https://github.com/dschach
- 📝 I should blog more at X-Squared on Demand
- 📄 Here's my professional experience: LinkedIn
- 💬 Ask me about apprenticeships and equity in the tech industry.
Let's jam about Salesforce, Apex, and Security on the Salesforce Einstein 1 Platform
- 📫 How to reach me: Find me via LinkedIn, Threads, or some other site!
- ⚡ Fun fact: I was born in South Africa
Top Languages | GitHub Stats |
---|---|
- Prevent Duplicate Emails on Leads
- Duplicate Record Item Enrichment and Auto-Deletion Code
- Lightning Component With Running User Information
- ChatterBINGO is Now Open-Source
- Display Only My Role’s Records on a Report
- Answer by DavidSchach for ScreenFlow when launched from QuickAction, is finished. And when we hit the browser back button the flow is relaunched/Re-executing the flow
- Answer by DavidSchach for Slack slackv2 Version
- Answer by DavidSchach for Unit Test Code Coverage 72% Help
- Answer by DavidSchach for Is there any way I can differentiate objects that are supported by standard list controller from the ones which are not..?
- Answer by DavidSchach for How to add description to installed package AND how to add description to package version?