How early integration creates value for your users

Have you worked on a larger project? Maybe something that required you to work in more than one code base or more than one package? Then you might have already encountered situations in which you needed to take a problem apart into pieces. This is by no means an easy task. And…

2020 / September

Interview review: Paths between two points

I've quit my current job and am going through the interview process for a couple of companies. Since I'm applying for a technical role I have to take the occasional technical interview. Having done a lot of these myself (as an interviewer) I was looking forward to how other…

The religion of test-driven development

I recently talked to another developer and mentioned that I use TDD. The other person then asked me whether I'm also one of those religious TDD followers? I had never thought about this. Do people think I'm preaching to them when I encourage them to use TDD? Are they only doing…

2020 / August

What is cohesion and why should you care?

Cohesion means you make sure that the parts that belong together are close to each other. 💥 Bam! Shortest blog post ever!

On a more serious note let's talk about why this is important. If you would have asked me ten years ago I probably would have known about principles like DRY

The productivity paradox

Here are two sentences that I sometimes hear from developers.

  1. "We are always starting new features but we never finish what we have already started", and
  2. "Because of the WIP limit I feel so unproductive. I can't start work on the next important feature."

Right now it might seem…

2020 / July

How to solve problems instead of symptoms

If I had to pick one skill that I believe can impress less experienced developers the most then I would go with my ability to figure out the root cause of a problem. At first, people thought that I would know all code in our codebase by heart and actually know what was going on…

Using GitHub actions and Vercel for end-to-end tests

End-to-end (E2E) tests are the tip of the test pyramid. They are supposedly the hardest to write and take the longest to run. But they are also valuable as they are the tests that "use" your app like your users do.

When we first started to use E2E tests at Signavio we were able to run them after changes got merged to our master branch but not on feature branches. That is problematic because when they uncovered a defect it had already made it to our…

Tests that help you find defects faster

This is one of the most important lessons I try to teach less experienced developers. Next to making sure that your code works now, it's also important to make sure that developers are able to fix defects in the future. The first step to achieving this is to write tests…

Automated releases with semantic-release

During the last year I've become more involved in building the design system we use at Signavio. While doing so rolling out changes to the company turned out to be a major challenge. We had been doing it for some time but we somehow managed to get certain parts wrong all the time…