• Communication in library design, a user's perpective

    Everyone has encountered a software library that is hard to use. From the designer's perspective, the user can always be educated a bit more, but sometimes user training misses the point.

  • Warnings are Errors

    You know how to treat compiler errors – just fix them. But what about compiler warnings? Here are some thoughts and suggestions.

  • Pimp My REPL

    Everyone knows Lisp programmers live in the REPL, and Clojurians are no exception. This is a tour of Clojure libraries and practices that make life in the REPL even more comfortable.

  • Developer Garage in Helsinki on 2014-03-05

    We are organizing a Coding Dojo at Solita's office in Helsinki.

  • Solita Dojo in Helsinki on 2013-10-23

    We are organizing a Coding Dojo at Solita's office in Helsinki.

  • Clojure world domination 2014

    Form follows function in great design. Interestingly we can now eliminate annoying barriers between data, form and function. The Clojure train is accelerating!

  • What's in a Good Commit?

    These tips can help you turn your VCS from a backup system into a valuable tool for communication and documentation.

  • Interdependent Build Pipelines with Jenkins

    When doing continuous delivery for multiple interdependent projects, each project's build pipeline needs to be parameterized with the version numbers and binaries of upstream pipelines. It's easy to do in Go, but Jenkins doesn't support it that well. Here is how I was able to twist Jenkins to my use case.

  • Our Faces Combined

    I wanted to check what an average Solita employee looks like. I had images of all Solita employees' faces, OpenCV-library, Python and some free time.

  • Refactoring Primitive Obsession

    Enriching the domain model by fixing Primitive Obsession code smells requires careful refactoring in small steps. Here I'm presenting some tips for doing that almost fully with automated refactorings, making it much faster and safer to do.