<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"><channel><title>Niels.nu</title><description>Niels Dommerholt&apos;s Weblog on Software Engineering and Architecture</description><link>https://niels.nu/</link><language>en-gb</language><item><title>From JBake to Astro</title><link>https://niels.nu/blog/2026/from-jbake-to-astro/</link><guid isPermaLink="true">https://niels.nu/blog/2026/from-jbake-to-astro/</guid><description>Out with the old, in with the new.</description><pubDate>Wed, 15 Apr 2026 00:00:00 GMT</pubDate></item><item><title>The Diagnosis I Found Looking For Someone Else</title><link>https://niels.nu/blog/2026/adhd-1-diagnosis/</link><guid isPermaLink="true">https://niels.nu/blog/2026/adhd-1-diagnosis/</guid><description>On discovering ADHD in my forties, and what I wish I&apos;d known sooner</description><pubDate>Sun, 29 Mar 2026 00:00:00 GMT</pubDate></item><item><title>A Conversation on What You Are</title><link>https://niels.nu/blog/2026/conversation-on-what-you-are/</link><guid isPermaLink="true">https://niels.nu/blog/2026/conversation-on-what-you-are/</guid><pubDate>Sat, 07 Mar 2026 00:00:00 GMT</pubDate></item><item><title>This Blog is Certified* 100% AI-Free</title><link>https://niels.nu/blog/2026/certified-ai-free/</link><guid isPermaLink="true">https://niels.nu/blog/2026/certified-ai-free/</guid><description>* except for a few small suggestions</description><pubDate>Wed, 21 Jan 2026 00:00:00 GMT</pubDate></item><item><title>Custom Converters with Spring Boot</title><link>https://niels.nu/blog/2022/spring-custom-converter/</link><guid isPermaLink="true">https://niels.nu/blog/2022/spring-custom-converter/</guid><description>Three ways to output JSONL</description><pubDate>Sun, 13 Nov 2022 00:00:00 GMT</pubDate></item><item><title>File Uploads and Downloads with Spring Boot</title><link>https://niels.nu/blog/2022/spring-file-upload-download/</link><guid isPermaLink="true">https://niels.nu/blog/2022/spring-file-upload-download/</guid><description>Without running out of memory</description><pubDate>Mon, 24 Jan 2022 00:00:00 GMT</pubDate></item><item><title>Nice Random Numbers</title><link>https://niels.nu/blog/2022/nice-random-numbers/</link><guid isPermaLink="true">https://niels.nu/blog/2022/nice-random-numbers/</guid><description>Are they a good ID?</description><pubDate>Mon, 10 Jan 2022 00:00:00 GMT</pubDate></item><item><title>A Kotlin Retrospective</title><link>https://niels.nu/blog/2021/a-kotlin-retrospective/</link><guid isPermaLink="true">https://niels.nu/blog/2021/a-kotlin-retrospective/</guid><description>Kompetitive Advantage</description><pubDate>Sun, 10 Jan 2021 00:00:00 GMT</pubDate></item><item><title>The Road to Independence</title><link>https://niels.nu/blog/2020/road-to-independence/</link><guid isPermaLink="true">https://niels.nu/blog/2020/road-to-independence/</guid><description>Jumping In At the Deep End</description><pubDate>Fri, 10 Jan 2020 00:00:00 GMT</pubDate></item><item><title>Spring and DynamoDB Integration Testing</title><link>https://niels.nu/blog/2018/spring-dynamodb-integration-testing/</link><guid isPermaLink="true">https://niels.nu/blog/2018/spring-dynamodb-integration-testing/</guid><description>TestContainers to the Rescue!</description><pubDate>Fri, 02 Nov 2018 00:00:00 GMT</pubDate></item><item><title>Software Architecture in an Agile World</title><link>https://niels.nu/blog/2018/software-architecture-in-an-agile-world/</link><guid isPermaLink="true">https://niels.nu/blog/2018/software-architecture-in-an-agile-world/</guid><description>Dealing with Complexity</description><pubDate>Mon, 22 Oct 2018 00:00:00 GMT</pubDate></item><item><title>Testing the Architecture</title><link>https://niels.nu/blog/2018/testing-the-architecture/</link><guid isPermaLink="true">https://niels.nu/blog/2018/testing-the-architecture/</guid><description>ArchUnit in Practice</description><pubDate>Fri, 19 Oct 2018 00:00:00 GMT</pubDate></item><item><title>Lightweight Architecture Decision Records</title><link>https://niels.nu/blog/2018/lightweight-architecture-decision-records/</link><guid isPermaLink="true">https://niels.nu/blog/2018/lightweight-architecture-decision-records/</guid><description>With tools to do the heavy lifting</description><pubDate>Mon, 08 Oct 2018 00:00:00 GMT</pubDate></item><item><title>My Move to Kotlin</title><link>https://niels.nu/blog/2018/my-move-to-kotlin/</link><guid isPermaLink="true">https://niels.nu/blog/2018/my-move-to-kotlin/</guid><description>A new love</description><pubDate>Tue, 02 Oct 2018 00:00:00 GMT</pubDate></item><item><title>Serverless Java with AWS Lambda: Introduction</title><link>https://niels.nu/blog/2017/serverless-java-introduction/</link><guid isPermaLink="true">https://niels.nu/blog/2017/serverless-java-introduction/</guid><description>Where&apos;s my box?</description><pubDate>Mon, 23 Oct 2017 00:00:00 GMT</pubDate></item><item><title>Aspect Oriented Programming with Spring Boot</title><link>https://niels.nu/blog/2017/spring-boot-aop/</link><guid isPermaLink="true">https://niels.nu/blog/2017/spring-boot-aop/</guid><description>Aspects? Pointcuts? Join point? Huh?</description><pubDate>Thu, 08 Jun 2017 00:00:00 GMT</pubDate></item><item><title>Spring Cassandra Integration Testing</title><link>https://niels.nu/blog/2017/spring-cassandra-integration-tests/</link><guid isPermaLink="true">https://niels.nu/blog/2017/spring-cassandra-integration-tests/</guid><description>With Achilles JUnit and Test Containers</description><pubDate>Sun, 02 Apr 2017 00:00:00 GMT</pubDate></item><item><title>A Docker Swarm Bramble on a ClusterHat</title><link>https://niels.nu/blog/2017/docker-swarm-bramble-raspberry-clusterhat/</link><guid isPermaLink="true">https://niels.nu/blog/2017/docker-swarm-bramble-raspberry-clusterhat/</guid><description>Easy as Raspberry-pie!</description><pubDate>Fri, 03 Mar 2017 00:00:00 GMT</pubDate></item><item><title>Enabling HTTPS termination in Traefik</title><link>https://niels.nu/blog/2017/traefik-https-letsencrypt/</link><guid isPermaLink="true">https://niels.nu/blog/2017/traefik-https-letsencrypt/</guid><description>Let&apos;s Encrypt my Blog!</description><pubDate>Sat, 25 Feb 2017 00:00:00 GMT</pubDate></item><item><title>Spring Boot, Docker and Traefik</title><link>https://niels.nu/blog/2017/spring-boot-docker-traefik/</link><guid isPermaLink="true">https://niels.nu/blog/2017/spring-boot-docker-traefik/</guid><description>How to deploy a dockerized Spring Boot app behind the Traefik reverse proxy</description><pubDate>Sun, 19 Feb 2017 00:00:00 GMT</pubDate></item><item><title>Continuous Blog Delivery Part 2</title><link>https://niels.nu/blog/2017/continuous-blog-delivery-p2/</link><guid isPermaLink="true">https://niels.nu/blog/2017/continuous-blog-delivery-p2/</guid><description>Build automation with Jenkins and Bitbucket pipelines</description><pubDate>Sat, 11 Feb 2017 00:00:00 GMT</pubDate></item><item><title>Continuous Blog Delivery Part 1</title><link>https://niels.nu/blog/2017/continuous-blog-delivery-p1/</link><guid isPermaLink="true">https://niels.nu/blog/2017/continuous-blog-delivery-p1/</guid><description>There&apos;s no such thing as over-engineering.</description><pubDate>Fri, 10 Feb 2017 00:00:00 GMT</pubDate></item><item><title>Spring Boot Microservice Versioning</title><link>https://niels.nu/blog/2017/spring-boot-microservice-versioning/</link><guid isPermaLink="true">https://niels.nu/blog/2017/spring-boot-microservice-versioning/</guid><description>Backward compatible REST responses using @ControllerAdvice</description><pubDate>Sun, 15 Jan 2017 00:00:00 GMT</pubDate></item><item><title>Spring Boot Websocket STOMP Example</title><link>https://niels.nu/blog/2017/spring-boot-websocket-client/</link><guid isPermaLink="true">https://niels.nu/blog/2017/spring-boot-websocket-client/</guid><description>How to create a Spring/Stomp server with a Java client</description><pubDate>Sun, 08 Jan 2017 00:00:00 GMT</pubDate></item><item><title>RSA Signing and Encryption in Java</title><link>https://niels.nu/blog/2016/java-rsa/</link><guid isPermaLink="true">https://niels.nu/blog/2016/java-rsa/</guid><description>How to create a RSA keypair and use it to sign, verify and encrypt information in Java</description><pubDate>Thu, 29 Dec 2016 00:00:00 GMT</pubDate></item><item><title>Controller Advice - Exception Handlers</title><link>https://niels.nu/blog/2016/controller-advice-exception-handlers/</link><guid isPermaLink="true">https://niels.nu/blog/2016/controller-advice-exception-handlers/</guid><description>Clean and reusable error handling through Spring @ControllerAdvice</description><pubDate>Sat, 24 Dec 2016 00:00:00 GMT</pubDate></item><item><title>Devoxx Talk</title><link>https://niels.nu/blog/2016/devoxx-talk/</link><guid isPermaLink="true">https://niels.nu/blog/2016/devoxx-talk/</guid><description>I&apos;m making a note here: Huge success!</description><pubDate>Sat, 12 Nov 2016 00:00:00 GMT</pubDate></item><item><title>Asynchronous REST results in Spring</title><link>https://niels.nu/blog/2016/spring-async-rest/</link><guid isPermaLink="true">https://niels.nu/blog/2016/spring-async-rest/</guid><description>Improve resource utilization through Asynchronous results</description><pubDate>Wed, 05 Oct 2016 00:00:00 GMT</pubDate></item><item><title>Why there are so few women in tech</title><link>https://niels.nu/blog/2016/why-there-are-so-few-women-in-tech/</link><guid isPermaLink="true">https://niels.nu/blog/2016/why-there-are-so-few-women-in-tech/</guid><description>Education is a funnel</description><pubDate>Thu, 15 Sep 2016 00:00:00 GMT</pubDate></item><item><title>Cassandra ResultSet Paging</title><link>https://niels.nu/blog/2016/cassandra-resultset-paging/</link><guid isPermaLink="true">https://niels.nu/blog/2016/cassandra-resultset-paging/</guid><description>Optimize response sizes through Cassandra&apos;s built in paging mechanism.</description><pubDate>Sun, 24 Jul 2016 00:00:00 GMT</pubDate></item><item><title>Rate Limiting an API with Cassandra</title><link>https://niels.nu/blog/2016/cassandra-rate-limiting-api/</link><guid isPermaLink="true">https://niels.nu/blog/2016/cassandra-rate-limiting-api/</guid><description>TTL inserts for fun and profit</description><pubDate>Sat, 16 Jul 2016 00:00:00 GMT</pubDate></item><item><title>Cassandra 3 Data Modelling with Materialized Views</title><link>https://niels.nu/blog/2016/cassandra-3-data-modelling-materialized-views/</link><guid isPermaLink="true">https://niels.nu/blog/2016/cassandra-3-data-modelling-materialized-views/</guid><description>Using Materialized Views to lower ETL complexity</description><pubDate>Thu, 30 Jun 2016 00:00:00 GMT</pubDate></item><item><title>Micro services - Versioning strategies</title><link>https://niels.nu/blog/2016/microservice-versioning/</link><guid isPermaLink="true">https://niels.nu/blog/2016/microservice-versioning/</guid><description>Identifying the problems with versioning and exploring possible solutions.</description><pubDate>Sat, 21 May 2016 00:00:00 GMT</pubDate></item><item><title>StringBuilders - How smart is the compiler?</title><link>https://niels.nu/blog/2016/stringbuilder/</link><guid isPermaLink="true">https://niels.nu/blog/2016/stringbuilder/</guid><description>Or; fun with javap</description><pubDate>Thu, 21 Apr 2016 00:00:00 GMT</pubDate></item><item><title>Build your own Twitter AI using Markov Chains</title><link>https://niels.nu/blog/2016/twitter-markov/</link><guid isPermaLink="true">https://niels.nu/blog/2016/twitter-markov/</guid><description>But please don&apos;t let it become sentient!</description><pubDate>Tue, 05 Apr 2016 00:00:00 GMT</pubDate></item><item><title>Kafka - Creating custom serializers</title><link>https://niels.nu/blog/2016/kafka-custom-serializers/</link><guid isPermaLink="true">https://niels.nu/blog/2016/kafka-custom-serializers/</guid><description>Create Kafka serializers for JSON, Kryo and Smile.</description><pubDate>Thu, 10 Mar 2016 00:00:00 GMT</pubDate></item><item><title>Spark of Life</title><link>https://niels.nu/blog/2016/spark-of-life-genetic-algorithm/</link><guid isPermaLink="true">https://niels.nu/blog/2016/spark-of-life-genetic-algorithm/</guid><description>Running a Genetic Algorithm on Apache Spark</description><pubDate>Wed, 02 Mar 2016 00:00:00 GMT</pubDate></item><item><title>Testing for managers</title><link>https://niels.nu/blog/2016/testing-for-managers/</link><guid isPermaLink="true">https://niels.nu/blog/2016/testing-for-managers/</guid><description>Or; why we spend all that time creating and maintaining our tests</description><pubDate>Sat, 06 Feb 2016 00:00:00 GMT</pubDate></item><item><title>Sentiment Analysis with Apache Spark</title><link>https://niels.nu/blog/2015/sentiment-spark/</link><guid isPermaLink="true">https://niels.nu/blog/2015/sentiment-spark/</guid><pubDate>Thu, 19 Nov 2015 00:00:00 GMT</pubDate></item><item><title>Command Design Pattern in Java 8</title><link>https://niels.nu/blog/2015/java8-command-design-pattern/</link><guid isPermaLink="true">https://niels.nu/blog/2015/java8-command-design-pattern/</guid><pubDate>Wed, 14 Oct 2015 00:00:00 GMT</pubDate></item><item><title>Programming Sucks</title><link>https://niels.nu/blog/2015/programming-sucks/</link><guid isPermaLink="true">https://niels.nu/blog/2015/programming-sucks/</guid><pubDate>Thu, 08 Oct 2015 00:00:00 GMT</pubDate></item><item><title>Caching http requests in AngularJS</title><link>https://niels.nu/blog/2015/caching-http-requests-in-angular/</link><guid isPermaLink="true">https://niels.nu/blog/2015/caching-http-requests-in-angular/</guid><pubDate>Wed, 30 Sep 2015 00:00:00 GMT</pubDate></item><item><title>Five ways to count vowels</title><link>https://niels.nu/blog/2015/5-ways-to-count-vowels/</link><guid isPermaLink="true">https://niels.nu/blog/2015/5-ways-to-count-vowels/</guid><pubDate>Tue, 15 Sep 2015 00:00:00 GMT</pubDate></item><item><title>Code Challenge &quot;Vrolijke Framboos&quot; Postmortem</title><link>https://niels.nu/blog/2015/code-challenge-postmortem/</link><guid isPermaLink="true">https://niels.nu/blog/2015/code-challenge-postmortem/</guid><pubDate>Tue, 07 Jul 2015 00:00:00 GMT</pubDate></item><item><title>Top 5 useful hidden Eclipse features</title><link>https://niels.nu/blog/2015/top-5-useful-hidden-eclipse-features/</link><guid isPermaLink="true">https://niels.nu/blog/2015/top-5-useful-hidden-eclipse-features/</guid><pubDate>Fri, 10 Apr 2015 00:00:00 GMT</pubDate></item><item><title>Communication between Angular Controller and Directive example</title><link>https://niels.nu/blog/2015/angular-directive-communication/</link><guid isPermaLink="true">https://niels.nu/blog/2015/angular-directive-communication/</guid><pubDate>Wed, 08 Apr 2015 00:00:00 GMT</pubDate></item><item><title>Antlr is awesome</title><link>https://niels.nu/blog/2015/antlr-is-awesome/</link><guid isPermaLink="true">https://niels.nu/blog/2015/antlr-is-awesome/</guid><pubDate>Wed, 01 Apr 2015 00:00:00 GMT</pubDate></item><item><title>JSON Web Tokens</title><link>https://niels.nu/blog/2015/json-web-tokens/</link><guid isPermaLink="true">https://niels.nu/blog/2015/json-web-tokens/</guid><pubDate>Wed, 28 Jan 2015 00:00:00 GMT</pubDate></item><item><title>Baking A Blog</title><link>https://niels.nu/blog/2015/baking-a-blog/</link><guid isPermaLink="true">https://niels.nu/blog/2015/baking-a-blog/</guid><pubDate>Sun, 25 Jan 2015 00:00:00 GMT</pubDate></item></channel></rss>