ReduxJS/Toolkit: Immer
immerjs/immer: Create the next immutable state by mutating the current one
Immer is the solution the ReduxJS/Toolkit has adopted to enforce pure reducers: it allows you to write reducers while (almost) not having to think about immutability anymore!
Awards!? 🏆🥇
- React: Breakthrough of the year 2019
- JavaScript: Most impactful contribution 2019
ReduxJS/Toolkit
reduxjs/redux-toolkit: The official, opinionated, batteries-included toolset for efficient Redux development
This first post is context and can basically be ignored.
The remainder of the series are no-nonsense pretty detailed explanations on how to start using ReduxJS/Toolkit, assuming you’re basically already a “legacy” Redux expert but don’t want to read the gazillion pages that is the default documentation.
We’re 2025 and you start a new app with old, trusted and deprecated create-react-app, only to find out that using Redux is also, deprecated.
During previous migrations I took a long hard look at the ReduxJS/Toolkit documentation and I was like… Aint nobody got time for that!
For the last migration, I decided to give it go and well, I can already say with conviction, it is worth the time learning. Reduced boilerplate, batteries included and while the full documentation is still daunting, you can take it step by step.
Programming Mnemonics
Mnemonics – helping developers remember intrinsics since 1973.
A mnemonic
a system such as a pattern of letters, ideas, or associations which assists in remembering something.
Share files generated by Docker with Synology CloudSync
We needed to generate some files and share them with a third party. They preferred we put the files on our SharePoint since they already had access to it.
So we made a docker-compose that scheduled a CRON job to create the files in the shared folder.
The files were getting generated alright and other files were getting synced alright, but the generated files were not!?
JavaScript RegExp Tutorial
A cheat sheet for the regex syntax in JavaScript.
TL&DR
/^$/.test(''); // boolean
'ok'.replace(/(o)(k)/g, '$2$1');
// Other replacements:
// $$ (literal), $& (all), $` (before), $' (after), $<name>
const matchG = 'aaa'.match(/a/g);
matchG == ['a', 'a', 'a'];
const matchNoG = 'str'.match(/(st)r/);
matchNoG == Object.assign(['str', 'st'], {groups: undefined, index: 0, input: 'str'});
matchNoG == /(st)r/.exec('str');
The new Angular template syntax
Compared to other SPA frameworks, Angular really made it quite cumbersome to do simple things like an if/else to show/hide certain UI parts.
The new syntax is so much more succinct, it gets rid of excess html tags, is easier to remember and it doesn’t need to be added to the imports array of a standalone component.
Testing Internal Methods
Typically you want to write tests only for public methods. You want to avoid writing tests for private methods so that when you change the implementation, your tests remain green and you can do that ruthless refactoring without having to worry about introducing new bugs.
Database Auditing with EntityFramework and SQL Server
Keeping track of database changes in SQL Server with EntityFramework, let’s go over your options with sample implementations.
All code with some UnitTests can be found at the Github repository.
QA TechEvent: SQL Training
This month our QA TechEvent was “SQL Training”. Goal was to score most points by solving more and more complex SQL exercises against three datasets: countries of the world, teachers + departments (postgres) and the football worldcups (sql server).
Which country scored the most owngoals? Read on to find out!

Docker + Mongo: a guide
How to load some initial data after spinning up a mongo with Docker.
If you want to follow the examples:
git clone https://github.com/itenium-be/Docker-Mongo
cd Docker-Mongo
docker compose up -d --build
# After fiddling, force re-creating the mongos:
docker compose down -v
docker compose up -d --build













