<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"><channel><title>Johan Zietsman</title><description>Johan Zietsman&apos;s blog about software development</description><link>https://johanzietsman.com/</link><item><title>Actuator and Prometheus</title><link>https://johanzietsman.com/actuator-and-prometheus/</link><guid isPermaLink="true">https://johanzietsman.com/actuator-and-prometheus/</guid><description>How to monitor and measure a Spring Boot Application&apos;s performance.</description><pubDate>Sat, 27 Feb 2016 00:00:00 GMT</pubDate></item><item><title>Analyzing The Merge Sort Algorithm</title><link>https://johanzietsman.com/analyzing-the-merge-sort-algorithm/</link><guid isPermaLink="true">https://johanzietsman.com/analyzing-the-merge-sort-algorithm/</guid><description>An example of how to analyze the running time of a divide and conquer algorithm like merge sort.</description><pubDate>Sun, 22 May 2016 00:00:00 GMT</pubDate></item><item><title>Basic &quot;bump&quot; API using Rails</title><link>https://johanzietsman.com/basic-bump-api-using-rails/</link><guid isPermaLink="true">https://johanzietsman.com/basic-bump-api-using-rails/</guid><description>A protocol to link mobile devices through device bumping, a technique that requires accurate device geolocation.</description><pubDate>Sat, 02 Jan 2016 00:00:00 GMT</pubDate></item><item><title>Boot Your RESTful API Using Spring</title><link>https://johanzietsman.com/boot-your-restful-api-using-spring/</link><guid isPermaLink="true">https://johanzietsman.com/boot-your-restful-api-using-spring/</guid><description>How to build a HATEOAS RESTful API using Spring Boot and Mongo.</description><pubDate>Wed, 17 Feb 2016 00:00:00 GMT</pubDate></item><item><title>Building Tic Tac Toe in Kotlin with Functional Programming</title><link>https://johanzietsman.com/building-tic-tac-toe-in-kotlin-with-functional-programming/</link><guid isPermaLink="true">https://johanzietsman.com/building-tic-tac-toe-in-kotlin-with-functional-programming/</guid><description>Explore the basics of functional programming in Kotlin as we dive into building a Tic Tac Toe game. Discover the power of pure functions, immutable state, and learn how to separate side effects from the functional core using an IO monad.</description><pubDate>Mon, 12 Jun 2023 00:00:00 GMT</pubDate></item><item><title>Centralized  Logging with Cloudwatch, Beanstalk and LogBack</title><link>https://johanzietsman.com/centralized-logging-with-cloudwatch-beanstalk-and-logback/</link><guid isPermaLink="true">https://johanzietsman.com/centralized-logging-with-cloudwatch-beanstalk-and-logback/</guid><description>How to collect performance metrics, access events and general logs in a centralized place when deploying to Elastic Beanstalk.</description><pubDate>Sat, 03 Sep 2016 00:00:00 GMT</pubDate></item><item><title>Continuous Integration, Delivery and Deployment</title><link>https://johanzietsman.com/continuous-integration-delivery-and-deployment/</link><guid isPermaLink="true">https://johanzietsman.com/continuous-integration-delivery-and-deployment/</guid><description>An overview of continuous integration, delivery and deployment principles including deployment pipelines, feature flags, database migrations and testing strategy.</description><pubDate>Fri, 13 Jul 2018 00:00:00 GMT</pubDate></item><item><title>Dockerize a Spring Boot Application</title><link>https://johanzietsman.com/dockerize-a-spring-boot-application/</link><guid isPermaLink="true">https://johanzietsman.com/dockerize-a-spring-boot-application/</guid><description>A brief exploration of Docker and how it can be used to setup a complex application with several components.</description><pubDate>Sun, 13 Mar 2016 00:00:00 GMT</pubDate></item><item><title>Event Driven Architecture with Atom Feeds</title><link>https://johanzietsman.com/event-driven-architecture-with-atom-feeds/</link><guid isPermaLink="true">https://johanzietsman.com/event-driven-architecture-with-atom-feeds/</guid><description>How to build an event-driven architecture, including event sourcing, without the need for messaging infrastructure using Atom feeds.</description><pubDate>Tue, 13 Apr 2021 00:00:00 GMT</pubDate></item><item><title>How To Build a Chat App Using WebFlux, WebSockets &amp; React</title><link>https://johanzietsman.com/how-to-build-a-chat-app-using-webflux-websockets-react/</link><guid isPermaLink="true">https://johanzietsman.com/how-to-build-a-chat-app-using-webflux-websockets-react/</guid><pubDate>Sun, 17 Sep 2017 00:00:00 GMT</pubDate></item><item><title>How to Gather Performance Metrics in Spring Batch</title><link>https://johanzietsman.com/how-to-gather-performance-metrics-in-spring-batch/</link><guid isPermaLink="true">https://johanzietsman.com/how-to-gather-performance-metrics-in-spring-batch/</guid><description>This post will look at two ways to extract performance metrics out of a Spring Batch Job using Dropwizard Metrics.</description><pubDate>Mon, 09 Jul 2018 00:00:00 GMT</pubDate></item><item><title>How To Reverse Indent Files With RxJS</title><link>https://johanzietsman.com/how-to-reverse-indent-files-with-rxjs/</link><guid isPermaLink="true">https://johanzietsman.com/how-to-reverse-indent-files-with-rxjs/</guid><description>A Basic introduction to reactive programming using RxJS 5.0 by building a node script that reverse indents files.</description><pubDate>Tue, 05 Jun 2018 00:00:00 GMT</pubDate></item><item><title>How To Setup a Sonar Time Machine For an Angular Project</title><link>https://johanzietsman.com/how-to-setup-a-sonar-time-machine-for-an-angular-project/</link><guid isPermaLink="true">https://johanzietsman.com/how-to-setup-a-sonar-time-machine-for-an-angular-project/</guid><description>How to extract historical static analysis data from an Angular App into a new SonarQube server.</description><pubDate>Mon, 24 Aug 2020 00:00:00 GMT</pubDate></item><item><title>How To Setup Jenkins on AWS With Spot Fleet Slaves</title><link>https://johanzietsman.com/how-to-setup-jenkins-on-aws-with-spotfleet-slaves/</link><guid isPermaLink="true">https://johanzietsman.com/how-to-setup-jenkins-on-aws-with-spotfleet-slaves/</guid><description>Build CI/CD infrastructure with Ansible and Cloudformation</description><pubDate>Fri, 24 Apr 2020 00:00:00 GMT</pubDate></item><item><title>How to setup Kodi on a Raspberry Pi</title><link>https://johanzietsman.com/how-to-setup-kodi-on-a-raspberry-pi/</link><guid isPermaLink="true">https://johanzietsman.com/how-to-setup-kodi-on-a-raspberry-pi/</guid><description>Building a pocket sized media center (HTPC) using Arch Linux, Kodi and a Raspberry Pi 3.</description><pubDate>Mon, 14 Nov 2016 00:00:00 GMT</pubDate></item><item><title>How to use JWT and OAuth with Spring Boot</title><link>https://johanzietsman.com/how-to-use-jwt-and-oauth-with-spring-boot/</link><guid isPermaLink="true">https://johanzietsman.com/how-to-use-jwt-and-oauth-with-spring-boot/</guid><description>Do you need to setup Single Sign-on (SSO) for a microservice architecture? </description><pubDate>Thu, 01 Dec 2016 00:00:00 GMT</pubDate></item><item><title>Kodi Add-on Development</title><link>https://johanzietsman.com/kodi-add-on-development/</link><guid isPermaLink="true">https://johanzietsman.com/kodi-add-on-development/</guid><description>Lessons learned from developing my first Kodi add-on.</description><pubDate>Mon, 28 Nov 2016 00:00:00 GMT</pubDate></item><item><title>Learning React</title><link>https://johanzietsman.com/learning-react/</link><guid isPermaLink="true">https://johanzietsman.com/learning-react/</guid><description>Notes from learning React, Redux and the surrounding JavaScript ecosystem including ES6, middleware, routing and authentication.</description><pubDate>Thu, 17 Nov 2016 00:00:00 GMT</pubDate></item><item><title>Machine Learning with FastAI - Random Forests</title><link>https://johanzietsman.com/machine-learning-random-forests/</link><guid isPermaLink="true">https://johanzietsman.com/machine-learning-random-forests/</guid><description>Notes on the random forest machine learning algorithm taken from the FastAI course.</description><pubDate>Fri, 24 Apr 2020 00:00:00 GMT</pubDate></item><item><title>Masking PII In Logs</title><link>https://johanzietsman.com/masking-pii-in-logs/</link><guid isPermaLink="true">https://johanzietsman.com/masking-pii-in-logs/</guid><description>How to mask Personally Identifiable Information in logs using slf4j and Aspectj</description><pubDate>Mon, 01 Jun 2020 00:00:00 GMT</pubDate></item><item><title>Microservices Platform with AWS Fargate &amp; RDS</title><link>https://johanzietsman.com/microservices-platform-with-aws-fargate-rds/</link><guid isPermaLink="true">https://johanzietsman.com/microservices-platform-with-aws-fargate-rds/</guid><description>How to deploy Microservices on AWS Fargate backed by an Aurora Postgres RDS Cluster for persistence using Cloudformation and Ansible</description><pubDate>Sun, 28 Jun 2020 00:00:00 GMT</pubDate></item><item><title>Microservices with Spring Boot and Spring Cloud</title><link>https://johanzietsman.com/microservices-with-spring-boot-and-spring-cloud/</link><guid isPermaLink="true">https://johanzietsman.com/microservices-with-spring-boot-and-spring-cloud/</guid><description>An overview of building microservices with Spring Boot covering RESTful API design, Swagger, Actuator and Spring Cloud components like Eureka, Feign, Zuul and Zipkin.</description><pubDate>Tue, 09 Jan 2018 00:00:00 GMT</pubDate></item><item><title>Practical Machine Learning with fast.ai</title><link>https://johanzietsman.com/practical-machine-learning-with-fastai/</link><guid isPermaLink="true">https://johanzietsman.com/practical-machine-learning-with-fastai/</guid><description>Notes from the fast.ai course covering random forests, neural networks, deep learning and convolutional neural networks.</description><pubDate>Sun, 19 Aug 2018 00:00:00 GMT</pubDate></item><item><title>The Ralph Loop: Orchestrating AI Agents Across Multiple Sessions</title><link>https://johanzietsman.com/ralph-loop/</link><guid isPermaLink="true">https://johanzietsman.com/ralph-loop/</guid><description>Using a simple bash loop to orchestrate an AI agent across multiple sessions — from specification to working code.</description><pubDate>Mon, 06 Apr 2026 00:00:00 GMT</pubDate></item><item><title>RxJS</title><link>https://johanzietsman.com/rxjs/</link><guid isPermaLink="true">https://johanzietsman.com/rxjs/</guid><description>An exploration of reactive programming with RxJS covering observables, operators, subjects, hot vs cold observables and error handling.</description><pubDate>Mon, 06 Mar 2017 00:00:00 GMT</pubDate></item><item><title>Sequential AJAX and jQuery&apos;s promise</title><link>https://johanzietsman.com/sequential-ajax-and-jquerys-promise/</link><guid isPermaLink="true">https://johanzietsman.com/sequential-ajax-and-jquerys-promise/</guid><pubDate>Wed, 20 Jan 2016 00:00:00 GMT</pubDate></item><item><title>Specs Are Grown, Not Written — And Other Lessons from an AI Skills Audit</title><link>https://johanzietsman.com/specs-are-grown-not-written/</link><guid isPermaLink="true">https://johanzietsman.com/specs-are-grown-not-written/</guid><description>A self-assessment of the 7 skills every AI-augmented developer needs, from specification precision to token economics.</description><pubDate>Fri, 27 Mar 2026 00:00:00 GMT</pubDate></item><item><title>SSL On Apache With Self Signed Certificates</title><link>https://johanzietsman.com/ssl-on-apache-with-self-signed-certificates/</link><guid isPermaLink="true">https://johanzietsman.com/ssl-on-apache-with-self-signed-certificates/</guid><description>How to setup SSL for multiple Virtual Hosts in Apache using self signed certificates.</description><pubDate>Thu, 07 Jul 2016 00:00:00 GMT</pubDate></item><item><title>Tech Interview CheatSheet - Graphs</title><link>https://johanzietsman.com/tech-interview-cheatsheet-graphs/</link><guid isPermaLink="true">https://johanzietsman.com/tech-interview-cheatsheet-graphs/</guid><description>Overview of Graphs, including graph representations, depth first search (DFS), breadth first search (BFS) and Eulerian paths.</description><pubDate>Wed, 13 May 2020 00:00:00 GMT</pubDate></item><item><title>Tech Interview CheatSheet -  Lists, Search &amp; Sort</title><link>https://johanzietsman.com/tech-interview-cheatsheet-lists-search-sort/</link><guid isPermaLink="true">https://johanzietsman.com/tech-interview-cheatsheet-lists-search-sort/</guid><description>An overview of Binary Search algorithms, including Bubble, Merge and Quick Sort.</description><pubDate>Tue, 16 May 2017 00:00:00 GMT</pubDate></item><item><title>Tech Interview CheatSheet - Maps &amp; Hashing</title><link>https://johanzietsman.com/tech-interview-cheatsheet-maps-hashing/</link><guid isPermaLink="true">https://johanzietsman.com/tech-interview-cheatsheet-maps-hashing/</guid><pubDate>Sat, 27 May 2017 00:00:00 GMT</pubDate></item><item><title>Tech Interview CheatSheet - Trees</title><link>https://johanzietsman.com/tech-interview-cheatsheet-trees/</link><guid isPermaLink="true">https://johanzietsman.com/tech-interview-cheatsheet-trees/</guid><description>Overview of Trees, including depth first search (DFS), breadth first search (BFS), Binary Search Trees &amp; Self Balancing Trees.</description><pubDate>Sat, 27 May 2017 00:00:00 GMT</pubDate></item><item><title>Visualizing a Spring Context Graph</title><link>https://johanzietsman.com/visualizing-a-spring-context-graph/</link><guid isPermaLink="true">https://johanzietsman.com/visualizing-a-spring-context-graph/</guid><description>How to examine the runtime state of a Spring context with the help of an object graph.</description><pubDate>Tue, 29 Mar 2016 00:00:00 GMT</pubDate></item></channel></rss>