Juniors in remote teams?
Having juniors in a remote team is a challenge, but you still can make it work.

Why I love BarCamps
I was interviewed during the DeveloperCamp 2017 about BarCamps.

Setting up a product management process
In this post I will explain the way I design the process that supports one key operation in every startup: improving the technology which delivers value to customers—or should, if you are working towards signing your first customer.

Define a communication policy so Slack doesn't kill you
Not matter which tool you use to communicate, one of the most important actions to tackle communication chaos is defining a communication policy.

MVPs in Production
In this post series I'll reflect on the technical principles that I've employed in the last 5 years working as a CTO to achieve something that would have been seen as futile and insane a decade ago, but is the norm today: running software in production that is neither complete nor well-designed and needs to evolve every day.

Office design by an office hater
I hate offices. But how many interior designers have I heard of, that are coders, too? Let me take you through my dream office!

Bring your inexperience to a conference
As a newbie you have something to contribute to a conference as well!

The full stack developer trap
I realized that there is a full-stack developer trap: your work is evaluated based on your best skill, which unfulfillable expectations.

Lean Mindset
Lean Mindset by Mary and Tom Poppendieck is a concise handbook for building then next generation of software company; which must be product company.

TopConf Linz 2017 Notes
These are the notes I took for my company Slack during TopConf Linz 2017.

codefreeze brings the magic of SoCraTes to Lapland
About codefreeze, the software craftsmanship and testing conference in the arctic circle


Why I threw up in my mouth when reading Accelerate (XLR8) by John Kotter
Asking your employees to think different for a better goal and simultaneously forcing them to follow the old, left-side methods, which the right-side is trying to get rid of, is nothing but insanity.

I make €101,750 in non-monetary compensation a year
Salary is probably one of the most dreadful topics, especially because it is a hygiene factor: earning not enough money will affect your satisfaction greatly, but earning more than you need won't improve your performance equally strong.

Turn Your Ship Around!
The workbook to implement intent-based leadership in your organization is as concrete as it gets for books that promise changing your organization for the better.

The Seven-Day Weekend
Ricardo Semler debunks an illusion: the idea that you can plan for the future.

Agile as a starter for organizational transformation?
Impressions from the Agile Cologne XXL 2016

An Everyone Culture
Book review of An Everyone Culture by Robert Kegan and Lisa Laskow Lahey

Code of Conducts
I recently proposed to establish a Code of Conduct for the BarCamp RheinMain. Here is my rationale why.

Intro to the Frankfurt Tech scene
This post tries to provide an entry point for newcomers to Frankfurt

Success through humanness: The autobiography by dm founder Götz W. Werner
Book review of Womit ich nie gerechnet habe by Götz W. Werner. I recommend this book to everyone who is facing problems like high turnover rates, inefficiency due to bureaucracy and incompetence or is, like me, interested in alternative operating-systems for organizations.

The Hard Things About Hard Things
Book review of The Hard Things About Hard Things by Ben Horowitz

Unboss: A compendium for future organizations
Book review of Unboss by Lars Kolind and Jacob Bøtter

Rotate screen in Linux
Sometimes it can be useful to rotate a screen, e.g. to have one display in portrait. This command will rotate your screen:

Autoload environment variables
When developing stateless microservices it can be tedious to set up the correct environment variables. You can teach your bash/zsh to load them on a per directory basis.

Daring Greatly: Talking about shame is inevitable if we want to change
Book review of Daring Greatly by Brené Brown

TopConf Linz 2016
Impressions from my first tech conference as a speaker.

Celebrate successes
This is not so easy as it sounds: because we are pushing out updates to our products every day, a natural date to celebrate does no longer manifest itself. As a manager we have to take care of this, too.

Quality together-time
The second most important challenge is ensure that the few occasions you will spend face-to-face with your colleagues is quality time. Here is how to achieve this.

Fix the missing watercooler
The most important challenge when working in distributed teams is the missing watercooler. Here is how to fix it.

The three most important challenges
This post series is a summary of my talk about the challenges working in remote teams and how I dealt with them.

(developer) happiness questionnaire
I use the (developer) happiness questionnaire to collect honest feedback about the happiness of my colleagues

Six months into my job as the CTO at Fintura I quit
Half a year full of lessons.

On Motivation of Software Engineers
Tobias Zander has written a blog post about Motivation of software engineers. These are my motivations.

Fintech — Appsolute Bankfurt
I've written an article about the fintech scene in Frankfurt which you can find at

Joy, Inc.
Book review of Joy, Inc. by Richard Sheridan


There is no working time flexibility during vacation
If not for yourself, you owe it to your peers to be a good example by not executing your working time flexibility during your vacation.

I want to tear down the developer firewall
I create developer firewalls for a living. And it is so wrong.

Your team needs a vision and common values to succeed
Having a vision and a set of values will empower your team and remove a lot of potential for misunderstandings from your day to day interaction within your team. This helps them to focus on their work instead of arguing about it and build momentum because it removes uncertainties about what should be done.

The magic of Socrates Conference
Get rich by visiting this conference: rich in ideas, options and connections

Learn about asynchronous communication: why phone is bad and chat is good
This post tries to explain the rationale behind one of my recent tweets: Phone is bad, Chat is good.

Improving the Startup Weekend Experience
In my opinion the default shedule for the weekend is not educating the teams enough to focus on what matters in those 54 hours: validate their assumptions about the business idea and prepare a presentation. For this year I've created a new shedule which includes more concrete deliverables and divides the weekend into distinct slots.

How to write a job post for development positions [Updated]
An important role in your search for developers is your job page. Don't miss the chance to impress a curious developer because every candidate will browse your website to look up your job postings.

Build this, OpenData Hackers and Datanauts [Updated]
OpenData projects must be useful not just interesting, so here is my idea

One month into my new job as the CTO at Fintura
I joined a #fintech startup which aims to change the way SME finance their investments and it also changed the way I look at managers

#RheinMainRocks sticker
You can now stick #RheinMainRocks where you like!

Office hours discontinued–feel free to ask your question anyway
I started mentoring and I will not offer any more office hours on a fixed schedule.

#futureofwork in the wild
On April 2nd 2015 I'll be giving a lightning talk to show some examples of organizations that have already arrived at the future of work.

Speed up your meetings with pre-written meeting minutes
How to make your meetings fun again, productive and produce a well-made protocol afterwards.

Backup your business: Advice for non-technical co-founders
How to make sure you never lose the source code of your business.

Leaving dotHIV and looking for a new team
From April 1st 2015 I'm available to join a new team where I can apply my craftsmanship to software, my leadership skills to the organization and my wit to the daily stand-up.

WEMO♥F turns 10
On the next Monday, February 23rd 2015, I'll be at a run-down place that used to be a super market and hosting the 10th Webmontag Offenbach.

How to find a CTO
A fews weeks ago I announced that I am holding free bi-monthly CTO office hours and the first one I did revolved around the question “How to find a CTO?”. In this post I aim to summarize the advice I gave.

Encrypt Login Links
Encrypt login links with the users public PGP key to add a simple but effective layer of security with only a small usability impact.

Office hours
I'll offer free bimonthly office hours starting January 2015.


Give your dots to dotHIV
December 1st is World AIDS Day and we have prepared something for your homepage which will support our cause in an unobtrusive and witty way: turn the fullstops of your page into pink dots.

Productivity Tips for a Startup Weekend
So, you are attending a startup weekend? You will be crammed in a room with strangers to collaborate on an idea-maybe even yours? I have some advice for you to improve your output during this 54 hours.


Symfony2 with Assetic: Automatically update assets_version on deploy
If you're using assetic to manage your assets in your Symfony2 project you have probably already wondered if there is a way to update the assets_version parameter automatically with every deploy. Responsive Design is Not About Screen Sizes Any More
Sehr guter Artikel darüber, das die Entwicklung einer guten mobilen Website nicht nur mit CSS-Media-Queries erreicht werden kann.

Tincr – Edit and save files from Chrome Developer tools. Live reload for Chrome.
Tincr ist eine sehr nützliche Extension für Chrome, die Änderungen an lokalen Dateien überwacht und die Änderungen im Browser anwenden. Änderungen an CSS-Dateien können dabei sogar ohne Neu-Laden der Seiten angewendet werden.

Just edit it!
We need tools not protocols for editing content on the web. In my first article I barely scratched the surface of what is missing to encourage collaboration on public available data. In this article I’d like to share my view of what is missing.

I cannot edit that
When dealing with structured data there are no tools for collaboration

Usergroups RheinMain

PHPUGFFM als animiertes GIF


Templates für Jenkins in PHP Projekten
Ähnlich wie die Ant Build Commons von qafoo, liefert Sebastian Bergmann unter Vorlagen für Integration von PHP-Projekten in Jenkins.

Ant Build Commons von qafoo
Die qafoo GmbH aus Gelsenkirchen, ein Zusammenschluss von vier deutschen PHP-Experten liefert mit den Ant Build Commons einen Standard-Satz an Build-Task für Ant, die alle wichtigen Aufgaben zum Prüfen, Testen und Veröffentlichen in PHP-basierten Projekten abdecken.

Leap second: Stromverbrauch bei Hetzner steigt um ein Megawatt
So schreibt es Hetzner gerade in einer E-Mail an seine Kunden.

Darstellung von git diff verbessern
Hier sind ein paar Einstellungen die die Darstellung der Ausgabe von git diff und weiteren git-Kommandos lesbarer machen:

Startup Weekend RheinMain 2012

Desktop-Hintergrund Mai 2012
Auch im Mai wird deinen Desktop ein Foto aus Holland zieren, wenn du dieses Wallpaper verwendest: einen sehr schönen Sonnenuntergang, aufgenommen in Woerden.

Desktop-Hintergrund April 2012
Der April fängt schon deutlich schöner an, als der März, deswegen gibt es diesen Monat ein Foto von saftigen Wiesen mit einem paar Schafe, dass ich in Holland aufgenommen habe.

Desktop-Hintergrund März 2012
Passend zum grauen ersten März gibt es für diesen Monat ein Foto, dass ich in Hamburg an der Außen-Alster aufgenommen habe.

Softwerkskammer RheinMain

The Great Web Framework Shootout: Bottle vs. Silex
Frameworks zu vergleichen ist immer eine schlechte Idee, zu viele Faktoren spielen bei der Wahl eines Frameworks eine Rolle, als dass man sich rein auf quantitative Aussagen wie Anfragen pro Sekunde, Zeilen Quellcode oder die geschlossenen Bugs pro Monat verlassen darf.

Desktop-Hintergrund Februar 2012
Jetzt wird es Zeit den alten Desktop-Hintegrund gegen diesen neuen auszutauschen — passend zum Wetter habe ich ein Foto einer Schneeverwehung auf dem Feldberg ausgewählt, das ich im Februar 2009 aufgenommen habe, und das ebenfalls bei so strahlend schönem Wetter wie heute.

Intents auf Android testen
Mit der adb shell ist es einfach möglich das Handling von Intents zu testen … sehr praktisch, wenn man z.B. in der App normalerweise einen QR-Code-Scanner verwendet, um eine URL zu erhalten.

Relations in Linked Data
This is the translation of this german blog entry.

Relationen in Linked Data
An englisch translation of this article can be found here.

Auslastung Januar 2012 Update♥) wünscht einen entspannten Januar
Meinen Freunden, Kunden und Kollegen wünsche ich viel Erfolg im Jahr 2012!


WordPress-Quellcode als Store-Dekoration

Logrotate-Config für VHosts automatisch erstellen
Mit diesem Script erzeuge ich für alle Virtuellen-Hosts eines Apache2-Webservers eine Konfiguration für Logrotate.

Entwickler und Projektmanager
Diese zwei Kollegen stehen immer auf meinem Schreibtisch bei meinem aktuellen Arbeitgeber. Vor ein paar Monaten standen sie bei Scholz&Volkmer und als ich mit einem Kollegen darüber sprach, ist ein interessantes Bildnis entstanden.

Die Browserkompatibilitätsklausel
Wenn man in der glücklichen Situation ist, ein Angebot zu schreiben, ist dessen Basis in der Regel auch eine möglichst genaue Beschreibung über den Umfang des Auftrags, im Allgemeinen Pflichtenheft genannt.

Auszeichnung zum Top Coder erhalten
Beim Top Coder Gewinnspiel der Mayflower GmbH habe ich mit meiner Einreichung den ersten Preis gewonnen: ein iPad 2.

Default-Werte für Methoden-Argumente sollten null sein
Oft genug sieht man Methodendefinitionen mit Standardwerten für Argumente, da viele Programmiersprachen das Überladen von Methoden, wie z.B. in Java, nicht unterstützen.

Hübsche Dummy-Bilder erzeugen
Der Dummy-Image-Generator erzeugt auf Wunsch die passenden Bilder. Wenn man aber auch mal lokal ein paar Dateien braucht, um z.B. einen Uploader oder eine Galerie zu testen, kann man sich mit ein paar Zeilen Python schnell ein paar Testbilder erzeugen:

PyDev und PIL
PyDev meckert standardmäßig über ein

MacBook Funktionstasten unter Linux
Diese sind, zumindest unter Arch Linux, standardmäßig nur mittels FN+F zum auslösen zu bewegen.

Firefox 4 und X.509-Zertifikate
Im neuesten Firefox funktionieren einige Zertifikate nicht mehr, mit denen z.B. Zugänge zu Content-Management-Systemen oder Banking-Webseiten gesichert werden.

Schneller Syntax-Check für modifizierte PHP-Dateien
Ja, manchmal muss man halt via SSH auf Maschinen rumhacken, auf denen es kein vernünftiges Error-Reporting gibt. Und wenn dann die Seite weiß bleibt, hilft dieses Kommando, um heraus zur finden, welche der Dateien man zerschossen hat:


Eclipse: -clean -refresh
Manchmal, also eigentlich regelmäßig, hängt Eclipse.

Unicode Cheat Sheet

Meine .subversion/config
[helpers] diff-cmd = colordiff diff-args = --ignore-all-space --ignore-blank-lines [miscellany] enable-auto-props = yes [auto-props] = svn:keywords=Id Rev [auth] Verhindert die Verwendung von Keychain / Keyring password-stores =

Bash: Bestimmte Dateien oder Verzeichnisse beim Auto-Vervollständigen ignorieren
Die Bash hat eine tolle Funktion: Mittels der Tab-Taste erhält man eine Liste mit Dateien und Verzeichnissem im aktuell eingegeben Pfad-Abschnitt.

Bash: Absoluten Pfad des aktuellen Scripts auslesen
Oft ruft man Bash-Scripte ja mit relativen Pfaden auf:

JAXP DOM: Whitespace aus XML entfernen
In Java 1.6 gibt es einen Bug im Dom-XML-Parser, der Whitespaces trotz aktiviertem Hinweis nicht entfernt.

Eclipse: Standard-Wert für @author in JavaDoc ändern
Der Standard-Werte für den @author-Tag in JavaDoc ist der Username des Accounts, der Eclipse gestartet hat.

PECL crack unter Ubuntu installieren
Auch die PECL Erweiterung crack muss erst überredet werden, sich auf Ubuntu zur Verfügung zu stellen, da beim Installieren folgender Fehler auftritt:

PECL OAuth 0.99.9 unter Gentoo installieren
Da einige der Maschinen, mit denen ich arbeite noch (aktuelle) Gentoo-System sind, gibt es immer wieder Probleme, die Gentoo-spezifisch sind, und damit oft auch nervig.

Passwörter für SSH-Keys in der Konsole merken
Um sich die wiederkehrende Passwort-Abfragen für SSH-Keys auf der Konsole zu sparen, führt man folgende Kommandos aus:

Timezone in Ubuntu setzen
Zum Einstellen der Zeitzone in Ubuntu führt man dieses Kommando aus und folgt den Anweisungen.

Alle ISO-Dateien in einem Verzeichnis nach UTF-8 konvertieren
Dieses Bash-Script konvertiert alle Nicht-UTF-8-Dateien in einem Verzeichnis und in allen Unterverzeichnissen nach UTF-8.

Niedrigen Speicherplatz mit Bash überprüfen und per Mail warnen
Dieses kleine Bash-Script, versendet als Cronjob eingetragen, E-Mails an den root-User, wenn der Plattenplatz auf allen gemounteten /dev/hd*-Platten weniger als 1 GB beträgt.

connect to Connection timed out
Oct 21 10:08:07 jayla postfix/error[24545]: B13623382E: to=<>, relay=none, delay=36297, delays=36267/30/0/0.01, dsn=4.4.1, status=deferred (delivery temporarily suspended: connect to[]:25: Connection timed out) Wie könnte es auch anders sein?!

Zugriffe nach Host sortiert aus Apache’s Access Log auslesen
Dieses kleine Bash-Kommando listet die Zugriffe in einer bestimmten Zeit (20/Oct/2008:21 = am 20. Oktober 2008 zwischen 21:00:00 und 21:56:59) und sortiert diese nach Häufigkeit.

duplicity Fehler “IOError: GnuPG exited non-zero, with code 2″ unter Ubuntu beheben
Zum Sichern von Daten auf FTP-Server bietet sich duplicity. Es bietet, ähnlich wie rdiff-backup, die Möglichkeit, volle und inkrementelle Backups zu erzeugen, aber im Gegensatz zu rdiff-Backup eben auf FTP-Server und noch dazu verschlüsselt.