Getting a Keycloak token past Spring Security takes ten lines. Deciding who may touch which record takes design. Four authorization layers, identity keyed on (issuer, subject), several issuers routed on iss, and why we refuse to build a dev auth bypass.
GDPR-compliant logging in Spring Boot, part 3: the personal-data leaks outside your own code
show-sql writes to System.out, Hibernate’s bind logging prints every value in clear, an OpenTelemetry collector cannot erase what it receives, and a file appender quietly sets a one-year retention. The leaks no code review sees, and how to own the one switch you deliberately keep.
GDPR-compliant logging in Spring Boot, part 2: a build-time test that fails on personal data in log statements
A logging rule that lives in a wiki holds only where its author was looking. How we turned it into a JUnit test that scans every module’s sources, why it must prove it scanned something, and why we decided against runtime log masking.
GDPR-compliant logging in Spring Boot, part 1: what must never reach a log line
A record’s toString(), an exception message your global handler logs, an e-mail as the actor: the three leaks that put personal data into almost every Spring API’s logs, and what to write instead.
Deterministic Pagination in Spring Boot: a Tie-Breaker for Pageable Sorting
Why paging over a non-unique sort key returns duplicated or missing rows, and a reusable way to append a unique tie-breaker to every Spring Data sort.
Spring Boot and Elasticsearch: Resilient Indexing with a Buffer Table and a Scheduler
How we send application events to Elasticsearch from Spring Boot through a buffer table and a scheduled, cluster-safe job, so an Elasticsearch outage never fails a business transaction.
Configure Swagger UI in a Spring Boot Application with springdoc-openapi (Spring Boot 2.7, 3 and 4)
A practical springdoc-openapi setup, shown twice where it differs: once for Spring Boot 2.7 (springdoc 1.x, javax) and once for Spring Boot 3 and 4 (springdoc 2.x / 3.x, jakarta). Dependencies, metadata, a working Authorize button for JWT, reverse proxies, error responses and what to switch off in production.
Building a Python package
I have been working with Python over the last years, using Python mainly for machine learning projects but I had never built a package. Recently I built my first Python package SolarSystem and published it on github and on Pypi. The idea of SolarSystem, i.e. planets and other celestial objects position estimation as a time function, was old as well …
Transfer learning for image classification with Keras
Transfer learning from pretrained models can be fast in use and easy to implement, but some technical skills are necessary in order to avoid implementation errors. Here we describe a fast and easy to understand procedure using data from Kaggle’s Dog Breed Identification competition as an example. The same principles can be applied on virtually any image classification problem. …
Graph analysis of Stack Overflow tags with Oracle PGX – Part 2: Incremental Updates
This is the second part of our three-part blog post series (see the first part here), which deals with incremental data updates. In our scenario we assume that we acquire small batches of data updates using some kind of web scraping mechanism. We will not deal with the details of that mechanism, as it is beyond the scope of this …





