Blog Posts

Migrating from Wordpress to Astro

Entwickler Summit 2026 - Review

Fighting fear – beat your anxiety one step at a time

10 Things Bikepacking Taught Me About Software Development

Torn from the USA – Leaving US Tech Behind

New Green IT articles published

New LinkedIn Learning Courses

The Hidden Environmental Impact of the AWS SDK for PHP

Why adopt Green IT, and how?

My talk on PHP Developer Day 2023

Green PHP - Nachhaltigere Software mit PHP

Keynote on the DATEV Coding Festival 2023

Why PHPs Carbon is bad for the climate

How to write Coding Guidelines in PHP

Clean Code in PHP - My first book

Coding against climate change // code.talks 2022

New articles about Green IT

International PHP Conference Munich 2021

Green IT - Sustainable Software Engineering

Frameworkless-Article released in PHP magazin

International PHP Conference 2021 - Frameworkless

Reduce boilerplate code with PHP 8
Appearance on the Lets Talk Leadership Podcast
Multiple test databases in Bitbucket Pipelines
Enable xdebug on demand in your local docker environment

Technical Debt and Refactoring - Eurostaff Meetup

Why change code that works? Refactoring & Technical Debt - Part 2

Why change code that works? Refactoring & Technical Debt - Part 1
http-helper and config packages reached stable state
Continuous Testing and Beyond - Software Quality in Web Projects
PhantomJS is discontinued
File uploads not working with PhantomJS
Automated bad practice
DI container and IDE integration
cwmobileredirect and cwenvbanner for Typo3 7 LTS
Clean Code Days 2016 - Opening Keynote
Debug Unit Tests using the PhpStorm built-in test runner
Modern PHP
Debug your Codeception tests with Xdebug and PhpStorm
A normal day, a normal bug
Filesystem abstraction in PHP, and why it sometimes is useful!
npm & Windows
Getting dead pages from Google Cache
Local composer package development
Checkout the massage!
Babette
Updating Typo3 CMS 6.2 to 7.2
Typo3 CMS hooks and namespaced classes
Hofstadter's Law
Fixing Locale issues on Debian
Mocking magic methods with PHPUnit
Of Typo3, Site Crawlers and Compression
Debugging Flow3 – ain’t got time for that!?
Traits and Extbase
Remote CLI debugging with XDebug
T3CON14
cwmobileredirect now ready for Typo3 6.2
Typo3 Caching and TypoScript conditions
Use HeidiSQL with your vagrant box
cwenvbanner 0.1.0 released
Template Engines vs. PHTML
Free! JavaScript! Literature!
Microsoft drops support for ancient IE versions (finally)
the_coding_love();
cwenvbanner released
wget in Git Bash
Debug shell scripts (well, kind of)
Display content of blob column as plain text
Expand your Windows Taskbar: Dual Monitor Taskbar
Typo3 Extbase: Object not saved
How to use the MySQL GUI client HeidiSQL with a remote DB server
cwmobileredirect v1.4.3 released
How to check if a class constant exists?
When curl is refusing to work as you expect...
Trap events
Accessing the ServiceManager from the ViewHelperManager in ZF2
Pitfall: php_admin_flag vs. php_flag
Helpful MySQL shell tricks
ownCloud sync client 1.4.0 released
PyCmd & Console2 - Windows command prompt reloaded
Absolute Beginner's Guide to Node.js
URL ViewHelper and Child Routes in ZF2
Neor Profile SQL
Getting the subclass name in the parent class
PHP mail() on Windows
Second chance - Old notebook refurbished
Updating XAMPP without a headache
Create your own PHP extension (on Windows)
Microformats - control your Google search result snippet