A Progressive Apex Trigger Framework

If you work on a larger Salesforce Org, you probably need a trigger framework to implement the single trigger per SObject best practice. This is especially challenging when you work on multiple, well-separated second-generation packages (2GP). Requirements for a...

Why We Do Test-Driven Development (TDD)

Test-Driven Development (TDD) is funny: Most developers hesitantly agree we should do it more often. Yet, I rarely see a whole team doing it. It seems to me, most of us still don't understand why it is so powerful. As a result, some of us still reject it completely,...

A Story About Failure In Software Projects

This is a story about failure. Think about anything that can go wrong when building software. In our last project, we made almost every mistake you can think of. But this is also a story about how to learn from failure. And I learned what separates good management...

Organize Metadata For Scalability

A common challenge when designing a Salesforce CI pipeline is how to organize the metadata. Which components should be put into a package? Which components are better kept in the famous "happy soup"? To solve this challenge, an architect has to understand the benefits...

Package-Based CI with CircleCI and SFDX

Today I want to dive deeper into package-based deployment processes with SFDX. Interestingly enough, there are very little resources out there that explain how to set up a continuous integration (CI) pipelines to deploy a second-generation (2nd-gen) unlocked package...

How To Integrate Prettier In Your CI

I am a big fan of Prettier and we have been using it for almost 6 months now in all our SFDX projects. A local install of Prettier is great, but the real magic happens when you integrate it into a CI job. This post shows how to integrate Prettier into CircleCI (but...

A Next-Generation CircleCI Orb For SFDX

We have been using SFDX and CircleCI for quite some time now to automate our Salesforce deployments. Over time, our bash scripts to manage packages, verify Scratch Orgs, and scale test execution grew more and more in complexity. Now is the time to put everything into...

Why Companies Fail To Attract Tech Talents

Every once in a while, one of these recruiting wisdom re-posts pops up in my Linkedin Feed that tells me to "hire for attitude, not for skills". I understand why most people like the idea. How awesome would it be, if you could hire virtually everyone and teach...

A Library To Mock SObject Records

If you plan to write solid unit tests in Salesforce, you won't get around mocking sobjects. A solid testing strategy needs a powerful library to mock sobject records. This allows you to write loosely coupled tests without the need to insert records into the database....

Solve „Unable To Lock Row“ Error In Tests

There seems to be a soft limit for E2E tests in Salesforce. Once you hit it, your tests will start to fail with the dreaded "unable to lock row" exception. This is one of the nastiest errors you can encounter, especially in tests. It's hard to debug and even harder to...

Porträt Jannis Lietzau klein

Über den Autor

Ich arbeite seit mehreren Jahren als IT Manager, Administrator und Developer mit der Salesforce Plattform. Hier blogge ich ganz privat über (für mich) spannende Themen aus meinem Berufsalltag.