Blog

I've published 105 articles here. I usually post everything here, but you can also find my some of my content on , and . Use the search below to filter by title.

All Posts

Problem-solving 101

Software crafters need rock-solid problem-solving skills.

2021-09-11

Quality vs user satisfaction

Software crafters care a lot about the quality of their work, but business realities are generally much more important. Let's explore some of the tradeoffs.

2021-09-03

An online community for Software Crafters

Come and join our community of code artisans

2021-08-25

What is a software crafter?

Set the bar higher up, and become a crafter

2021-08-18

How to get started in IT and grow as a Software developer

Learn how get started in IT, and how to grow as a software developer

2021-08-14

What is the difference between software developers, engineers, coders, and programmers

Understand why those terms may differ

2021-08-03

What is software engineering

A clear explanation about software engineering

2021-07-29

What is software development

A clear explanation about software development

2021-07-27

Angular 12 in Depth

Everything you need to know about Angular 12

2021-05-13

Why Tailwind's Just-In-Time mode is a game-changer and how to use it right now

Learn how to migrate to Tailwind 2, and enable just-in-time for applications and Storybook

2021-04-03

Lazy loading Angular applications

How to delay the execution of your Angular app

2021-03-28

How Angular applications boot

Discover how Angular applications are bootstrapped

2021-03-28

Welcome on my brand new blog

First post on my new blog.

2021-03-02

21 months in and 80K views later

How my failed startup experience led to 80K views in a month

2021-02-28

Configuring and using the Apollo client in a Next.js TypeScript application

Learn how to integrate the Apollo GraphQL client in a Next.js TypeScript application

2021-02-24

Design Sprint 2.0 cheatsheet

Discover the essence of the Design Sprint 2.0 approach

2021-02-09

UI, UX, and CX

Learn about UI, UX and CX

2021-02-03

20 months in, 2K hours spent and 200K € lost. A story about resilience and the sunk cost fallacy

I’ve been working for ~20 months on my current project, spend 2K hours on it, and “lost” 200K € by not doing something else. That project is not ready yet. Here’s the story behind it.

2021-01-04

Creating a table of contents with HTML and CSS

Learn how to use HTML and CSS to build a table of contents

2020-12-12

Developing Office plugins using Angular and Nx

A modern way to develop Office plugins

2020-11-19

Angular 11 in Depth

Everything you need to know about Angular 11

2020-11-15

Mocking TS method overloads with Jest

Here's how to mock TypeScript method overloads with Jest

2020-11-14

Software Development Concepts e-book collection

Here's how to become a real full-stack developer.

2020-11-12

Avoid the Pyramid of Doom

Here's how to avoid nesting code needlessly.

2020-10-29

Creating Moment decorators for class-validator

Learn how to create Moment decorators.

2020-10-25

Histoire courte — Zoey & Jenny — Partie 1

Zoey est de retour

2020-08-28

10 more ways to kill a team

Teams are way more fragile than you can imagine. Here are ten more things that can demolish one.

2020-08-20

10 ways to kill a team

Great teams are hard to craft but much easier to break.

2020-08-20

Don’t leave junior team members alone

Junior team members should never be left alone. Here's why

2020-08-18

The journey from 4K to 30K views per month. Lessons learned

Let me tell you how I managed to be more successful with my writing

2020-08-07

Angular roadmap analysis

Exploring the roadmap of Angular

2020-08-06

RxJS 7 in Depth

Exploring everything new with RxJS 7

2020-08-05

Git concepts for newcomers — Part 4: Branches

Let’s now learn about Git branches!

2020-07-28

Angular 10 in Depth

Everything you need to know about Angular 10

2020-07-27

Translating the MatPaginator Angular Material component

The MatPaginator component of Angular Material can be translated, but it requires a specific approach.

2020-07-26

Input validation with NestJS

Validating incoming data is of the utmost importance for security. Let’s explore why and how to handle this concern with NestJS and class-validator

2020-07-23

Input validation with NestJS

Validating incoming data is of the utmost importance for security. Let’s explore why and how to handle this concern with NestJS and class-validator

2020-07-23

Iterating on a TypeScript string enum

Here are a few useful tips showing how to loop over TypeScript enum keys and values

2020-07-18

Introduction to TypeScript

Here’s a real quick introduction to the TypeScript programming language.

2020-07-18

Forcing change detection on third-party Angular components

Let's see how to access the ChangeDetectorRef for any third party Angular component and use it to work around bugs!

2020-07-17

Removing Moment.js locales from your Angular app JS bundles

Your bundle size exceeds the allocated budget or is getting close to it? Moment.js might be one of the major culprits. Let’s see how to fix the situation using a custom Webpack configuration

2020-07-12

What's new with TypeScript 4.0

Everything new with TypeScript 4.0

2020-07-07

Analyzing Your Angular app JS bundles

Discover how to analyze the JS bundles of your Angular applications to identify and fix issues using webpack-bundle-analyzer.

2020-07-07

NGRX component-store deep dive

Part 2: Let's dive into the new Component-store library of NGRX!

2020-06-18

Introducing NGRX component-store

Part 1: Component-store is an upcoming reactive library of the NGRX family. Let’s discover it and see what it’s all about!

2020-06-17

Angular Template Type Checking

In Angular, a neat new template type checking mode has been introduced, called strictTemplates. Let me tell your what it is and why you should enable it.

2020-06-16

Customizing your Angular app’s Webpack configuration

In this article, I’ll explain why you might need to customize the Webpack configuration of your Angular applications and I’ll of course also show you how to do so using angular-builders webpack-config.

2020-06-14

Do you ever forget things at work?

I almost never forget things at work. When I do, I really feel embarrassed. What about you? Here's what I do to keep track of everything.

2020-06-09

How to access the Web from tools and terminals in corporate environments

In medium to large companies, it’s almost always the case that your Web traffic has to go through a corporate proxy to reach the Web. Here’s how to find out more about those proxies and how to use them from your tools and terminals.

2020-06-06

Git concepts for newcomers — Part 3: Commits, log and amend

In this third article of the series, we’re going to discover how to create and modify commits with Git, but also how to look at the commit log.

2020-06-02

Embedding translations in your JS bundles with ngx-translate

Embedding translations in your JS bundles can be useful to speed things up if you know that users need to switch between languages regularly. Here's how to do it

2020-05-30

Never miss a switch case with TypeScript

Switch statements are sometimes considered a code smell, but when they do make sense to use, you’d better make sure you don’t forget a single case. Luckily, TypeScript can help.

2020-05-29

How to choose between constructor and ngOnInit in your Angular apps

Learn why ngOnInit is not always the best solution

2020-05-26

Why you should stop installing npm packages globally

There is almost no use in installing npm packages globally. Here's why

2020-05-23

Strongly typing your Angular route data

As Angular projects grow, it is quite common to add data to your routes. This article shows how to strongly type such data

2020-05-23

Git concepts for newcomers - Part 2: Git repository, working tree and staging area

This article explains what git repositories are, as well as how the working tree and staging area works

2020-05-19

What's coming with TypeScript 4.0 -- Language features

Learn everything about git, step by step. Part 1

2020-05-17

Git concepts for newcomers — Part 1: What is a DVCS?

Learn everything about git, step by step. Part 1

2020-05-14

What's the bus factor and 7 ways to increase it

2020-05-13

What's new with TypeScript 3.9

Everything new with TS 3.9

2020-05-13

Handling scrolling on Angular route transitions

How to correctly handle scrolling upon Angular route transitions

2020-05-12

Drastically reducing your stylesheet size with Tailwind and PurgeCSS

Learn how to configure PurgeCSS with Tailwind to reduce get rid of useless styles

2020-05-11

Bash aliases are awesome

How to leverage Bash aliases to boost your productivity

2020-05-09

Getting rid of Kubernetes pods stuck on "Terminating"

How to get rid of pods that are stuck in the "Terminating" state

2020-05-08

Dynamically translating a PrimeNG menu using ngx-translate

How to translate a PrimeNG menu dynamically

2020-05-05

Improvements coming with TypeScript 3.9

The coolest improvements coming with TypeScript 3.9

2020-04-26

TypeScript non-goals

The goals of TypeScript are obvious, but do you know about its non-goals?

2020-04-25

How to write code comments like a pro

In this article, I’ll explain how my commenting practice (yes, that’s a thing :p) has evolved as well as what I currently recommend, whether you’re a junior fresh out of school, a seasoned developer…

2020-04-25

Creating a Storybook instance including stories from multiple libraries in a Nrwl Nx workspace

Learn how to create a Storybook including stories from multiple libraries in a Nrwl Nx workspace

2020-04-23

Why you should generally prefer TypeScript interfaces and custom types over classes

TypeScript interfaces and custom types are great. Use them as much as you can; here's why

2020-04-20

Quickly amend a git commit

Here is the quickest way to amend a git commit

2020-04-20

Fixing the “can’t resolve all parameters” exception with Angular DI

How to fix the “can’t resolve all parameters” exception with Angular

2020-04-18

Dynamically customizing Quill/ngx-quill editors in an Angular application

How to customize Quill editors through ngx-quill in an Angular application

2020-04-18

Avoiding Import Issues in TypeScript Monorepos

Leverage TypeScript paths to avoid problems with your imports

2020-04-18

Using NGX Translate in Storybook stories

How to use ngx-translate with Storybook stories

2020-04-16

Leveraging Type-Only imports and exports with TypeScript 3.8

How to use Type-Only imports and exports with TypeScript 3.8

2020-04-16

Remote work works fine if...

Tips and tricks for a better remote work experience

2020-04-14

Why and how to use stable node and npm versions across your project & team

Use stable versions of Node.js and npm to avoid surprises

2020-04-12

Speeding up your CI/CD build times with a custom Docker image

How to drastically reduce CI/CD build times for Node.js projects using a custom Docker image

2020-04-12

Adding Tailwind support to a Nrwl NX workspace with Angular and Storybook

How to configure Tailwind in Angular and Storybook

2020-03-26

Going through dark times

Let dark times behind you

2020-03-21

Why you shouldn’t implement authorization “around” your application and what to do instead

Here's how to writer more secure applications

2020-03-18

Kickstart your writing with these tools

A writer's process and tools. Kickstart your writing!

2020-03-12

Self learning tips for hungry minds

Tips to learn faster

2020-03-05

DeveloPassion’s fifth newsletter

Fifth newsletter of DeveloPassion

2020-03-05

Steps towards a better work/life equilibrium

Practical advice to better balance life and work.

2020-02-20

Work/life equilibrium

Sometimes in life, we try too hard for too long.

2020-02-17

Building a Service Worker with Workbox 5, TypeScript, Webpack and Angular

How to implement a service worker using Workbox, TypeScript, Webpack, and Angular

2020-02-12

Deploying TLS certificates for local development and production using Kubernetes, cert-manager, mkcert and Let’s Encrypt

How to deploy TLS certificates for local development and production using Kubernetes, cert-manager, mkcert and Let’s Encrypt

2020-01-08

Adding missing GPG keys for apt-get on WSL

How to add missing GPG keys when using WSL

2020-01-01

VS Code extension packs to boost productivity

Awesome extension packs to boost your productivity with VS Code

2019-11-24

Typewriter sounds on Linux

How to enjoy beautiful typewriter sounds while writing on Linux

2019-11-23

TypeScript 3 Projects: What's next?

An appendix to my TypeScript book

2019-11-12

VSCode tips for the newcomers

Tips to use VSCode like a pro

2019-10-08

Tagging your daily todos: When MoSCoW is not enough

Extending the MoSCoW method to tag daily tasks

2019-08-27

Configuring sourcemaps with the Angular CLI

How to configure sourcemaps with the Angular CLI

2019-07-24

Tip of the day: using capture groups and back references to search and replace in IntelliJ

Using capture groups and back references to search and replace in IntelliJ

2019-07-11

Searching for final methods in a Java project

Efficient way to find final methods in a Java project

2019-05-23

Fixing ‘bash’ is not recognized as an internal or external command when used within npm scripts on Windows

Fixing bash is not recognized as an internal or external command error

2019-02-13

The story behind my upcoming book: Learn TypeScript by Building Web Applications — part 1

The story behind my TypeScript book

2018-10-07

GraphQL API integration tests in a Spring Boot 2.x Kotlin application

How to write integration tests for a GraphQL API using Spring Boot 2.x and Kotlin

2018-01-24

Cleaning up database tables after each integration test method with Spring Boot 2 and Kotlin

How to clean database tables after each integration test in a Spring Boot application using Kotlin

2018-01-23

Using JUnit 5 with Spring Boot 2, Kotlin and Mockito

How to setup and use JUnit 5 and Mockito in a Spring Boot Kotlin based project

2017-12-19

Kotlin UUID bean validation

A small bean validation constraint annotation in Kotlin for UUIDs

2017-12-10

My GPG configuration

Some notes about my current setup for GPG/PGP.

2017-11-28