Blog
- 2024
-
Tracking my meeting time with Hammerspoon
-
Node process permissions: An introduction
- 2023
-
Indexing german Wikipedia articles for fun and vector search
-
Goodbye DevRel… (for now)
-
A year of solar & power monitoring using Jupyter and DuckDB
-
Create a custom Tailwind CSS build with Gradle in your Java project (2023 edition)
-
The ultimate workshop-as-code approach
-
Using Hammerspoon to enable lighting for meetings
-
Mirror, mirror, what am I typing next? All about search suggestions
- 2022
-
The new generation of data stores
-
My interview questions for developer advocates
-
Using Terraform with Elastic Cloud
-
Using Spring Boot with Elastic App Search
-
ElasticCC platform - Part 3 - Upgrading on k8s without downtime
-
ElasticCC platform - Part 2 - Using the new Elasticsearch Java Client
-
ElasticCC platform - Part 1 - Application structure
-
Running Elasticsearch 8.0 with Testcontainers
- 2021
-
Using Elasticsearch Transforms For Product Recommendations
-
GitHub Actions: Updating a GitHub wiki after an edit
-
Understanding the Elasticsearch Percolate Query
-
Monitoring Certificate Transparency Logs Using the Elastic Stack
-
Using German Highway API Data with Kibana Maps
-
Using Testcontainers To Test Elasticsearch Plugins
-
Indexing Data From Unix Domain Sockets Into The Elastic Stack
-
Writing a plugin for the Elastic APM Java Agent
-
Do Cross The Streams - Elasticsearch Data Streams Explained
-
Implementing phonetic search with Elasticsearch
-
Awesome Visualizations with Kibana & Vega
-
Using Filebeat To Ingest DigitalOcean App Platform Logs
-
Understanding Elasticsearch combined fields and multi match queries
-
Visualizing German Vaccination Data Using Kibana Lens & TSVB
-
Understanding Elasticsearch Persistent Tasks
-
Using the common grams filter for faster queries
-
Search hierarchies using the path hierarchy tokenizer
-
Create a custom Tailwind CSS build with Gradle in your Java project
- 2020
-
Running a Serverless Lucene Reverse Geocoder
-
On feedback - my personal primer to improve feedback
-
Using the built-in Java HTTP client to query Elasticsearch
-
Using Hammerspoon to enable DnD when screen sharing via Zoom
-
Handling JDK & GC options dynamically in Elasticsearch
-
Using seccomp - Making your applications more secure
-
Search engines & libraries: an overview
-
Introduction into Spring Data Elasticsearch
-
Implementing a modern E-Commerce Search
-
Implementing a Linkedin like search as you type with Elasticsearch
-
Testing and Releasing Elasticsearch & the Elastic Stack
-
Introduction into the Elasticsearch Java Rest Client
-
Elasticsearch - Securing a search engine while maintaining usability
- 2019
-
Creating a productive terminal environment
- 2018
-
Running Crystal apps in AWS Lambda
-
Five years of home office - a recap
-
Location Tracking with Owntracks, Serverless, Kotlin & the Elastic Stack
- 2016
-
Creating a productive osx environment - Hammerspoon
-
Using claudia.js and recaptcha to send emails with AWS Lambda
-
Using claudia.js to send emails using AWS Lambda
-
Using webtasks to send emails with harp
- 2015
-
Creating a productive osx environment
-
Deploy harp apps using git hooks
-
Producing technical documentation - an overview
- 2014
-
Walking the Dingle Way
-
Wales coastal path - Gwynedd
-
Wales coastal path - Pembrokeshire
-
Getting started (again)
- 2013
-
Spark, groovy & JRebel - a productive combination