Decision records
This blog post summarizes my experience with architecture decision records (ADR), introduces technical debt records (TDB) and demonstrates how everything can be nicely combined document and culture wise.
Monitoring with SigNoz
This blog post summarizes observability, briefly explains the missing pillar from a previous post and introduces the monitoring platform SigNoz.
Playing with OData
This blog introduces OData and summarizes its main similarities and differences to plain REST.
Architecture diagrams
This blog post illustrates how C4-based architecture diagrams can be derived from a simple model with the help of Struturizr.
Deployment with feature flags
This blog post demonstrates how deployments and actual releases can be decoupled with the help of feature flags.
Extending Asciidoctor
This blog post explains how Asciidoctor can easily be extended with new macros for custom functionality like collecting versions.
Building with Dagger
This blog post explores the pipeline-as-code options of the programmable CICD system Dagger.
Spark vs MapReduce
This third blog post of the Big Data series introduces Apache Spark and compares it with the features of MapReduce along with its computing model.
MapReduce for Big Data
This follow up blog post of the Big Data series briefly explains the computing model MapReduce and provides some examples how it can be used and tested.
Introduction to Big Data
This blog post is the start of a series about the world of Big Data, provides a brief introduction to Hadoop and includes demo code to store data there.
Evolving a format
This blog post explains how a format can be evolved during its lifetime.
What is glue code?
This blog post explains the usage of glue code in modern testing frameworks.
Orchestration with Nomad
This blog post demonstrates how Nomad can be used as a lightweight replacement for Kubernetes.
Service virtualization
This blog post demonstrates service virtualization with a simple example.
Logging vs Tracing
This blog explains two of the three pillars of observability - logging and tracing.
One month of Podman
This blog post is a followup to my experience with Podman during the first month.
Migrating to Podman
This blog post summarizes my experience with the migration from Docker to Podman.
Cucumber reports
This blog post demonstrates different reporting tools along with the basic reporting capabilities of Cucumber.
Specification by example
This blog post explains the general idea of specification-by-example and demonstrates the actual tests that can be created from the definitions.
Consumer-driven contracts
This blog post demonstrates Consumer-driven contract testing with the help of Pact.
Microstream on Helidon
This blog post demonstrates how Microstream can be used inside of Helidon project.
Workflow engines on Quarkus
This blog post demonstrates how the workflow engines Camunda and Kogito can be used with Quarkus.
Aggregate AsciiDoc from multiple repositories
This blog post demonstrates how multiple AsciiDoc documents can be assembled with the help of Antora.
ADR and jqAssistant
This blog post demonstrates how ADR and jqAssistant can be combined to do architecture testing from the actual records.
Architecture validation
This blog post demonstrates different tools and ways to do automatic architecture testing.
Property based testing
This blog post gives a brief introduction along with examples about property based testing.