Lessons learned in 2017

by Jannik Arndt


Conway’s Law

“organizations which design systems … are constrained to produce designs which are copies of the communication structures of these organizations.”

So true.


Dev-Ops is awesome

But also a lot of work that’s hard to anticipate.


Clearly defined interfaces clearly need to be tested

We didn’t test ours, and it took other dev forever to track down a bug in our system.


Deal with the bugs you have, not the ones you might encounter

Your software will never handle all possibilities. Invest the time into good monitoring, rather than anticipating every possibility.


How to set up a robust environment

  1. Set up a dev, test and production stage.
  2. Set up continuous deployment into all stages.
  3. Set up a monitoring system.
  4. Start coding.


Your system doesn’t need every bit of new technology

And it probably doesn’t have “Big Data”.



As Martin Fowler writes:

you shouldn’t start a new project with microservices, even if you’re sure your application will be big enough to make it worthwhile


While the Akka documentation is incredibly well written, it has surprisingly few images. Since I visualize concepts to remember them, here is my take on how Event Sourcing in Akka Persistence works:

Changing the password for a PostgreSQL database user involves two steps: The change in the database and the change in the application code. This blog post describes how to do this without any downtime or failed authentication tries.

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