Skip to content


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

All Posts

Calm businesses are a viable path too

Startups and fast growth are not the only way. Creating a calm business is also a viable path to success


Saving and restoring your mental contexts to improve mental health and productivity

This article explores mental contexts and the importance of handling those properly to improve mental health and productivity


The Feynman Technique

Richard Feynman has given us a wonderful technique to improve the way we learn. Discover the famous Feynman technique and start learning more effectively


Why and how to tag notes in your PKM

Tags are a great way to categorize, describe and track your notes. This post will show you how to approach tagging the notes in your PKM


Periodic reviews for a happier and more productive life

Discover how to leverage periodic reviews to achieve your goals and get more out of your life


Maps of Content (MoCs) for better Knowledge Graphs

Understand what Maps of Content (MoCs) are in the PKM ecosystem. Discover why they are useful and how they can help strengthen your knowledge graph


The Zettelkasten method

Discover the Zettelkasten method, one of the most powerful note-taking systems.


The Johnny Decimal system

Discover the Johnny Decimal system and organize anything with grace.


The PARA method

The PARA method is a great way to organize your digital information. Here's a quick introduction.


The LIFT principle

Discover the LIFT principle and why you should apply it to improve your personal organization


Markdown introduction

Markdown is everywhere. Learn what it is, why it is useful as well as its pros and cons.


Why you need a single source of truth for your PKM system

Having a single source of truth for all types of data in your PKM is key to a solid system.


The mythical right time

Waiting for the right time is an illusion. Let me tell you why


Introducing the Obsidian Starter Kit

Get started with Obsidian with a solid and scalable organization system


It's later than you think

Time is of the essence. Time flies, and it's later than you think


25+ Years of Personal Knowledge Management. From scattered ideas to networked thoughts

In this post, I describe my entire Personal Knowledge Management (PKM) system and its evolution over 25+ years


How to capture book notes and turn those into smart notes

How to capture thoughts, ideas, and knowledge to retain more from the books you read


Introducing the Personal Knowledge Management Library

Learn how to learn and explore Personal Knowledge Management with the PKM Library.


Why you should take notes while reading non-fiction books

Why it's critical to take notes while reading non-fiction books


The focusd community: Let's focus on Zen Productivity

Discover the focusd community, a space for people who want to be more focused and productive without burning out.


My current Indie Hacking toolkit

Discover some of the tools I use as an Indie Hacker and creator.


Product development process: From idea to code

How to go from an idea to an actual product. A story about product development.


How to think logically

Learn what it means to think logically. Cultivate thought processes to help you better solve problems.


Personal Knowledge Management organization

In this post, I dissect my Personal Knowledge Management system.


An online community for lifelong learners

Discover the Personal Knowledge Management (PKM) community, a community for lifelong learners.


Developer Career Paths

Discover developer career paths you can choose to pursue.


Angular 13 in Depth

Everything you need to know about Angular 13


Why Craftsmanship Matters

Craftsmanship has been around for ages, but why does it matter in software engineering?


Practice an evening routine to feel better every day

Learn about the benefits of defining a clear evening routine to improve your well-being.


How to use Tailwind with Svelte and Nrwl NX

Learn how to use Tailwind with Svelte and Nrwl NX.


Journaling every day is powerful - Part 2: Going further

Discover journaling and how it can help you live a happier, more fulfilling and more productive life. Part two.


Journaling every day is powerful - Part 1: Introduction

Discover journaling and how it can help you live a happier, more fulfilling and more productive life. Part one.


Problem-solving 101

Discover the most important problem-solving skills and techniques.


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.


An online community for Software Crafters

A software development community for beginners, professional and artisans


Software professionals are crafters

On why Software Craftsmanship matters.


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


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

Understand why those terms may differ


What is software engineering

A clear explanation about software engineering


What is software development

A clear explanation about what software development is about.


Angular 12 in Depth

Everything you need to know about Angular 12


Why Tailwind's Just-In-Time (jit) 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


Lazy loading Angular applications

How to delay the execution of your Angular app


How Angular applications start

Discover how Angular applications start and what main.ts does


Welcome on my brand new blog

First post on my new blog.


21 months in and 80K views later

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


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


Design Sprint cheat sheet

A cheat sheet for Design Sprint 2.0


How User Interface, User Experience and Customer Experience relate

Learn about UI, UX and CX


Startup failure stories: 20 months in, 2K hours spent and 200K € lost.

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.


Creating a table of contents with HTML and CSS

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


Create Office add ins with Angular and Nrwl NX

A modern way to develop Office plugins using Angular and Nrwl NX


Angular 11 in Depth

Everything you need to know about Angular 11


How to mock TypeScript method overloads with Jest

Learn how to mock TypeScript method overloads with Jest


Software Development Concepts e-book collection

A collection of e-books to turn you into a full-stack developer.


How to write simple code: Avoid the Pyramid of Doom

Here's how to avoid nesting code needlessly.


Creating custom class-validator validators for MomentJS

Learn how to custom validators for MomentJS.


Histoire courte — Zoey & Jenny — Partie 1

Zoey est de retour


Team management tips: 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.


Team management tips: 10 ways to kill a team

Great teams are hard to craft but much easier to break. Here are 10 things to avoid.


How to manage junior staff: Don't leave them alone!

Junior team members should never be left alone.


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


Angular roadmap analysis

Exploring the roadmap of Angular


What's new in RxJS 7

Exploring everything new with RxJS 7


Git tutorial for beginners — Part 4: Branches

Let’s now learn about Git branches!


Angular 10 in Depth

Everything you need to know about Angular 10


Translating the MatPaginator Angular Material component

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


Typesafe checks against TypeScript interface property names at runtime

Learn how to safely use TypeScript interface property names at runtime.


How to implement input validation with NestJS

Learn how to validate incoming data with NestJS.


Loop through a TypeScript enum

Discover how to iterate over the keys and values of a TypeScript enum.


Introduction to TypeScript

What is TypeScript? Let's find out!


Force change detection on third-party Angular components using ChangeDetectorRef

Discover how to force change detection on third-party Angular components with the ChangeDetectorRef.


Removing Moment.js locales from your Angular app JS bundles

Reduce the bundle size by removing unused momentjs locales.


What's new in TypeScript 4.0

Everything new with TypeScript 4.0


Analyzing Your Angular app JS bundles

How to analyze the JS bundles of your Angular applications and fix bundle size issues.


NGRX component-store deep dive tutorial

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


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!


Angular Template Type Checking

Leverage strict template type checking to create bulletproof Angular applications.


How to create a custom Angular Webpack configuration

Understand how you can customize the Webpack configuration of your Angular applications.


Taking notes at work: How to never forget anything

Here's how to organize notes at work and never forget anything.


Use a proxy to bypass firewalls 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.


Git tutorial for beginners — Part 3: Commits, log and amend

Discover how to create and modify commits with Git, but also how to look at the commit log.


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


TypeScript Switch Case best practices

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.


Angular best practices: Constructor vs ngOnInit

Learn why ngOnInit is not always the best solution


NPM best practices: Stop installing npm packages globally

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


Strongly typing your Angular route data

Use typed route parameters to improve the quality of your Angular code


Git tutorial for beginners - Part 2: Git repository, working tree and staging area

Understand Git repositories, the working tree and the staging area.


What's new in TypeScript 4.0: Language features

Learn everything about git, step by step. Part 1


Git tutorial for beginners — Part 1: What is a DVCS?

Learn everything about git, step by step. Part 1


Team management tips: What's the bus factor and 7 ways to increase it

Learn about the Bus factor and understand why it matters so much


What's new in TypeScript 3.9

Discover what's new with TS 3.9


Angular Tips: Understand Angular scroll position and ScrollPositionRestoration

How to correctly handle scrolling upon Angular route transitions


Optimizing Tailwind for production

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


Discover Bash aliases and understand why those are great

How to leverage Bash aliases to boost your productivity


Kubernetes tip: Force delete terminating pod

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


Dynamically translating a PrimeNG menu using ngx-translate

How to translate a PrimeNG menu dynamically


What's coming with TypeScript 3.9

The coolest improvements coming with TypeScript 3.9


TypeScript Language Design: Non-goals

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


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…


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


TypeScript best practices: Interfaces and custom types vs classes

Why you should favor TypeScript interfaces and custom types over classes.


Quickly amend a git commit by skipping edit

Here is the quickest way to amend a git commit


Fixing the "can’t resolve all parameters" error with Angular DI

How to fix the "can’t resolve all parameters" error with Angular


NGX Quill tip: Dynamically custome ngx-quill editors in an Angular application

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


TypeScript monorepo best practices: Avoid import issues

Leverage TypeScript paths to avoid problems with your shared types imports


Using ngx-translate with Storybook stories

How to use ngx-translate with Storybook stories


TypeScript type only imports and exports

How to use Type-Only imports and exports with TypeScript


Remote team management tips

Tips and tricks to better manage remote teams and overcome challenges


NodeJS best practice for production: Use stable node and npm versions across your projects and teams

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


Improving Gitlab CI performance with a custom Docker image

How to improve Gitlab CI performance and reduce CI/CD build times for Node.js projects using custom Docker images


Adding Tailwind to a Nrwl NX monorepo, Angular and Storybook

How to use Tailwind with Angular, Storybook and Nrwl NX


Going through depression and dark times

Let dark times behind you


Authorization best practices

Authorization best practices to improve the security of your applications


How to start writing

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


Self study tips for hungry minds

Tips to learn faster


DeveloPassion’s fifth newsletter

Fifth newsletter of DeveloPassion


Steps towards a better work/life balance

Work life balance tips.


Work/life balance

Sometimes in life, we try too hard for too long. It's important to pay attention to our work life balance


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

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


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


Adding missing GPG keys for apt-get on WSL

How to add missing GPG keys when using WSL


The best VSCode extensions grouped in extension packs

Boost your productivity with the best VSCode extensions


Typewriter sounds on Linux

How to enjoy beautiful typewriter sounds while writing on Linux


TypeScript 3 Projects: What's next?

An appendix to my TypeScript book


VSCode tips and tricks

Tips and tricks to use VSCode like a pro


MoSCoW prioritization for daily todos

Extending the MoSCoW prioritization method to tag daily tasks


Configuring sourcemaps with the Angular CLI

How to configure sourcemaps with the Angular CLI


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


Searching for final methods in a Java project

Efficient way to find final methods in a Java project


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


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

The story behind my TypeScript book


How to write integration tests for a GraphQL API with Spring Boot and Kotlin

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


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

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


Using JUnit 5 with Spring Boot 2, Kotlin and Mockito

A guide explaining how to install, configure, and use JUnit 5 with Mockito in a Spring Boot Kotlin project


How to validate UUID with bean validation in Kotlin

A small bean validation constraint annotation in Kotlin for UUIDs


How to install and configure GPG

A detailed guide on how to install and configure GPG/PGP.

Get Sébastien's free weekly newsletter. Read by hundreds of people to explore and stay up to date on learning, personal knowledge management, personal organization, software development, and bootstrapping