An online community for lifelong learners
Discover the Personal Knowledge Management (PKM) community, a community for lifelong learners.
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.
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
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
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
How Angular applications start
Discover how Angular applications start and what main.ts does
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
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
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.
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
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.
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.
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
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
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.
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
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
Authorization best practices
Authorization best practices to improve the security of your applications
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
The best VSCode extensions grouped in extension packs
Boost your productivity with the best VSCode extensions
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