When is the time to converge?

When is the time to converge?

In the past months, I have learned something about myself. I learned that I value a good development process a lot. One thing, in particular, seems to spark the most discussions: when to make decisions. Some people also call this "When to converge". This topic needs some…

2021 / February
Set your project up for success

Set your project up for success

This article is loaded with my personal opinion on how to do things. The baseline I'm going to describe is derived from my personal experience. If you have a different opinion on some topics, please let me know. I'm not claiming that what I'm doing is perfect!

When I'm talking…

2021 / January
Innovation by design

Innovation by design

Over the years, I have seen companies and teams struggle with innovation. It might have worked initially, but after some time,e, the spark that existed when the company was young is now missing. As innovation is important, companies sometimes react with measures such as dedicated…

2020 / November
Toggle wisely - A story about feature toggles

Toggle wisely - A story about feature toggles

I've written about early integration and why it leads to better features. While this is true you might not want to roll out changes to all users at once. For instance, you might be working on a feature for a very specific target group and want to make sure that once you release…

What does a Tech Lead do?

What does a Tech Lead do?

I'm transitioning out of my current job as Tech Lead at Signavio. One action item that came out of our last retrospective was that I should compile a list of my responsibilities. That does make sense, given that I won't be around come December. However, I don't have a list of…

2020 / October
How early integration creates value for your users

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…

Undo-redo and its effects on your architecture

Undo-redo and its effects on your architecture

It's a running joke at Signavio that the product I'm working on does not support undo and redo. And even though we built the tool with redux we're still struggling to get that functionality in. I'm not going to bore you with the details of why it's hard for us but over the years

Thoughts on technical debt and continuous improvement

Thoughts on technical debt and continuous improvement

Lately, I've come across a couple of blog posts like "Most Technical Debt Is Just Bullshit" and "Technical Debt Isn’t Real". They're discussing whether we twisted the initial definition of technical debt to mean anything and thus nothing. People have since then asked me about my…

2020 / September
Violent communication

Violent communication

This post is brought to you by Jonathan Soifer. Well, at least without him I wouldn't be able to write it. Jonathan was my manager at Signavio and when I received the feedback that I sometimes come across as too aggressive he recommended reading the nonviolent communication (NVC…

Interview review: Paths between two points

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

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 that 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 it…

2020 / August
What is cohesion and why should you care?

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

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

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

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 as 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 it had already made it to our mainline and possibly to…

Tests that help you find defects faster

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

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…