Lessons learned in 2016

by Jannik Arndt


Do not fix your code.

Rather understand why nothing kept you from creating this bug. Make your code so easy that this bug would have been obvious the first time.


Automate early.

You know, CI/CD. Or just clean-up-scripts. Or a complete infrastructure-as-code. Remember: A script to setup something is the best documentation!


A function must not do more than one thing.

If a function name contains “and” there’s still work to do. Build small pieces.


Side effects are the root of all evil.

If you need side effects (like database or file outputs), let it be the only thing a function does.


It’s all about data.

Business logic is just a concept to change data.


A system is defined by its input and output.

Every description of anything should focus on these two things first.


The PostgreSQL installation comes with a great tool, psql, to administer and inspect the database. pgcli extends this with syntax highlighting and autocompletion.

I want my photos to have location info in them, and Nikon wants way too much money for that. So I’ll do this: Let my Apple Watch track where I go, using the Outdoor Walk, export the route as GPX and use exiftool to tag all my images. Here’s how I do that.