Blog
Insights into my everyday programming life and other interesting technical tidbits
March 2025
Symfony Rate Limiter: API Throttling with Token Bucket and Fixed Window
The Symfony Rate Limiter protects APIs and endpoints from overload and abuse. This post explains token bucket, fixed window and sliding window — with concrete examples for login protection and API throttling.
Read More →PHP 8.4 in Practice: Property Hooks, Asymmetric Visibility and More
PHP 8.4 introduces property hooks for computed properties, asymmetric visibility for controlled write access, and new array functions. This article shows how to put these features to practical use in real projects.
Read More →February 2025
Doctrine ORM: Detecting and Solving the N+1 Problem
The N+1 problem is the most common performance anti-pattern in Doctrine projects. This post explains how it occurs, how to detect it, and how to solve it efficiently with join fetching, batch loading and QueryBuilder.
Read More →Live Validation with Symfony and HTMX
HTMX enables live validation of Symfony forms without a JavaScript framework. Fields are validated server-side on blur and the result is embedded directly into the page — progressive enhancement at its best.
Read More →January 2025
Symfony 7 Upgrade Guide: Migrating from Symfony 6 to 7
Symfony 7 requires PHP 8.2 as a minimum, removes deprecated features and introduces new ones. This guide walks through migrating a Symfony 6 project to version 7 step by step.
Read More →Welcome to My New Blog
Who is behind Wunner Software? 14 years of web development, two stints as an employee at former clients, a hobby as a DJ streamer and a Hetzner server running openSUSE. A personal introduction.
Read More →