- I'm a Salesforce Architect, with a passion for governance, auditability, and extensible 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
- Kevin Poorman and I have been working on ApexKit, which is a very cool set of tools for Apex
- 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.
- I also released a Visualforce highlighter plugin for highlight.js so any Apex on a webpage will look great - and I published it to npm!
-
🔭 I’m working on some Salesforce code projects:
- Trigger Framework
- Quote Custom Sync using custom metadata
- Campaing Member Status
-
🌱 I’m learning GitHub actions and how to make cool things happen automatically when submitting pull requests, etc. In particular, I want to build a framework for a central collection of actions that any repo in an organization can use.
- I'm a huge fan of Gearset, 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!
- Any other ideas? I'm thinking of adding custom metadata to the trigger framework, but there are so many of those around. What are the best requirements for a custom metadata driven trigger handler? One method per class (like NPSP)?
- 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.
These are some 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!
- Highlightjs Apex - npm package
- Highlightjs Visualforce - npm package
- 🇺🇸 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?