Recent Posts
Declaring over updating RxJS observables
Coding Jun 2, 2023 <100 views
Declare how your RxJS observable is computed from other observables. Don't update other observables when your observable changes.
RxJS
TypeScript
Angular
Best of Lodash
Coding Jun 2, 2023 <100 views
A collection of Lodash functions that are still useful in modern JavaScript.
Lodash
TypeScript
Injecting an HTML snippet into every 11ty post
Coding Jul 21, 2022 194 views
Learn how to inject a rendered Nunjucks template into every post of your Eleventy blog.
Eleventy
JavaScript
Rendering a file structure with Prism in Eleventy
Coding Jun 15, 2022 <100 views
Learn how to display a file system structure nicely on your Eleventy website with Prism.
Eleventy
JavaScript
Why Microfrontends?
Microfrontends Jun 10, 2022 292 views
Learn about the reasons to adopt web-component based microfrontends. What can you gain and what are the trade-offs?
Building an idempotent cron job with at-least-once delivery
Node.js Jun 9, 2022 306 views
Learn to build an idempotent at-least-once delivery of notifications in a scheduled Node.js batch job.
Node.js
TypeScript
Knex
Showing Plausible view counts in an Eleventy blog
Coding Jun 8, 2022 <100 views
Learn how to integrate the retrieval of page view stats from the Plausible Analytics API into your Eleventy build process to show them in your blog or website.
Eleventy
Plausible
Building an asynchronous batch job
Node.js Jun 3, 2022 1320 views
Learn to structure an asynchronous batch job in a Node.js application and how to isolate the functionality from the endpoint controllers.
Node.js
TypeScript
Knex
Pino
Custom-themed Mermaid diagrams in Eleventy
Coding Jun 3, 2022 356 views
Learn how to use Mermaid diagrams embedded in your Markdown files in Eleventy. Globally define a custom theme that is used in each diagram.
Eleventy
JavaScript
Node.js subcommands without CLI library
Node.js Jun 2, 2022 275 views
Learn to start your Node.js application with different subcommands. Implement a server mode beside commands for batch jobs in the same codebase.
Node.js
TypeScript
Axios HTTP request authentication with JWT
Node.js May 26, 2022 5247 views
Learn to authenticate outgoing HTTP requests with Axios interceptors. Retrieving JWT with different scope, caching the JWT and attaching the authorization header.
Node.js
TypeScript
Axios
JWT
Axios HTTP error handling in Express.js
Node.js May 26, 2022 3947 views
Don't catch all exceptions! Learn to handle erroneous HTTP responses of Axios with an Express.js handler returning a 500 and logging an error.
Node.js
TypeScript
Express.js
Axios
Pino
Pino JSON logging of Axios HTTP requests
Node.js May 25, 2022 1805 views
Learn to configure the Pino JSON logger to automatically log each outgoing Axios HTTP request.
Node.js
TypeScript
Axios
Pino
Connection pooling with Axios and agentkeepalive
Node.js May 25, 2022 7317 views
Learn to use a connection pool with Axios and agentkeepalive for HTTP requests in a TypeScript Node.js service.
Node.js
TypeScript
Axios
Organizing and testing HTTP requests
Node.js May 24, 2022 520 views
Learn to send HTTP requests with Axios in a TypeScript Node.js service. How to mock responses in local development and tests with Jest, mockserver and supertest.
Node.js
TypeScript
Express.js
Axios
Jest
Single schema multi-tenancy in Node.js with Postgres
Node.js May 21, 2022 1118 views
Learn to do multi-tenancy in a single Postgres schema in a TypeScript Node.js app. Avoid performance overhead while minimizing the risk of data exposure.
Node.js
TypeScript
Express.js
Knex
Postgres
JWT
Testing Knex SQL queries with Jest and testcontainers
Node.js May 20, 2022 3215 views
Learn to test your Knex SQL queries with a single automatically spawned Docker Postgres database. Using testcontainers and Jest global setup and teardown.
Node.js
TypeScript
Knex
Postgres
Testcontainers
Creating a Node.js DAO with Knex.js
Node.js Apr 24, 2022 1247 views
Learn how to build a DAO in Node.js to execute SQL queries with Knex.js. Providing CRUD operations for a REST entity persisted in the PostgreSQL database.
Node.js
TypeScript
Knex
Postgres
Knex.js schema migrations with Postgres in Node.js
Node.js Apr 20, 2022 3245 views
Learn how to use Knex.js schema migrations to create a first Postgres database table. Setup scripts to allow a local database reset.
Node.js
TypeScript
Knex
Postgres
Connecting a Node.js app with a Postgres database
Node.js Apr 16, 2022 3277 views
Learn how to connect a Node.js application both with a local Postgres database in docker-compose and with a production database.
Node.js
TypeScript
Knex
Postgres
Docker
Resolve a list of promises synchronously
Coding Apr 15, 2022 5261 views
Learn how to execute and resolve a list of JavaScript promises synchronously instead of in parallel with Promise.all.
Node.js
TypeScript
JavaScript
Why I dislike test-driven development
Process Apr 4, 2022 <100 views
About slow feedback loops in test-driven development (TDD) and its shortcomings. A plea for writing tests later.
TypeScript
JWT authentication with JWKS in Express.js
Node.js Apr 2, 2022 3360 views
Learn how to implement JWT authentication with JWKS in a TypeScript Express.js service. How to disable auth locally and suppress tokens in production logs.
Node.js
TypeScript
Express.js
JWT
Pino
Okta Breach - Don't outsource your business model
Process Mar 25, 2022 <100 views
With the handling of the LAPSUS$ breach, Okta has shown how to not do security and communication. Three core learnings from #OktaBreach.
Managing configs with TypeScript code in Node.js
Node.js Mar 21, 2022 4005 views
Learn how to build local and production configs within TypeScript code instead of JSON or YAML files. Part 6 of the Node.js microservice architecture series.
Node.js
TypeScript
JSON Logging with Pino in Express.js
Node.js Mar 10, 2022 7381 views
Learn how to add the JSON Pino logger into a TypeScript Express.js service. Log HTTP requests automatically, avoid logging in tests and prettify the JSON logs.
Node.js
Express.js
TypeScript
Pino
Advancing your company as a Software Engineer
Process Mar 7, 2022 <100 views
Learn how to make technical and organizational advancements as a software engineer. Reflecting on experiences of 12 successful and 3 unsuccessful advancements.
OpenAPI input validation in Express.js
Node.js Feb 16, 2022 3016 views
Learn how to validate inputs with an OpenAPI spec in a TypeScript Express.js service. Write tests for the input validation and return meaningful HTTP errors.
Node.js
Express.js
TypeScript
OpenAPI
Testing Express.js endpoints with supertest
Node.js Feb 11, 2022 2249 views
Learn to write Jest unit tests with supertest to test Express.js controllers in a TypeScript Node.js service.
Node.js
TypeScript
Express.js
Jest
Organizing Express.js endpoints
Node.js Feb 9, 2022 1402 views
Learn how to organize the endpoints in a TypeScript Express.js service. Why a REST resource should have its own DAO and why you don't need three layers.
Node.js
TypeScript
Express.js
About the Node.js series
Node.js Feb 7, 2022 722 views
In a series of blog posts, I'm going to describe an opinionated Node.js microservice architecture. Let me tell you about the why, what and how of this series.
Node.js
TypeScript
Express.js
2031 - A Software Engineering Utopia
Process Jan 31, 2022 <100 views
In a utopia of open APIs, open SaaS apps, funded open-source and an open cloud platform, we join Naomi, Javier and Kalina developing a new product.
Working as a Senior Software Engineer
Process Jan 26, 2022 <100 views
Learn how to maximize your impact as a Senior Software Engineer. How to move your focus from contributing code towards helping your team succeed.
Building a 1000 line Java program in 6 lines of Haskell
Coding Jan 15, 2022 <100 views
Let's disassemble an overly expressive six-line algorithmical Haskell program. I walk you through all the tricks, weirdness and beauty.
Haskell
Identifying bad code with function usage patterns
Coding Jan 13, 2022 <100 views
Learn how to look at the call patterns of functions to identify code smells and refactor bad Java, TypeScript and JavaScript code.
JavaScript
Implementing a light/dark mode toggle with pure JS/CSS
Coding Jan 4, 2022 1249 views
Learn how to implement a minimal light/dark mode toggle in Eleventy with pure JavaScript and CSS.
Eleventy
JavaScript
How future languages will prevent Log4Shell
Coding Dec 22, 2021 <100 views
Learn how modern programming languages like Unison and Koka avoid vulnerabilities like Log4Shell in Java by preventing third-party code from executing side-effects.
Java
Scrum As Code
Process Dec 16, 2021 <100 views
Learn how to represent Scrum as code and do product management in a git repository. Use CI and CD and finally be able to get rid of Jira.
Eleventy
The One-Hour Interview Process
Process Dec 14, 2021 <100 views
Learn how to interview software engineering applicants. Without at-home assignments. Within an hour of interviewing. Includes TypeScript, Java and SQL examples.
Java
TypeScript
Avoid Runtime Errors with Optionals
Coding Aug 19, 2019 <100 views
Learn how to use Optionals properly with flatMap avoiding null pointer exceptions.
Java