Using pyenv and tox

I usually use pyenv to manage my Python interpreters and obtain them in whatever version I need. Another tool I occasionally use is tox by Holger Krekel, which nicely generates build matrices for library and python interpreter versions, that come handy when you develop a library targeting multiple Python versions ...

Learning Haskell by Type (Signatures)

With all the talk about Monads, a lot of introductory material kind of leaves out Functors, Applicative Functors und the merrits of Applicative Functor style. If you have so far diligently learned some Haskell, but were put off by Haskell's liberal use of weird operators, applicative Functor style will show you how operators can be used for great benefit.

Python Data Science Going Functional - Or: Benchmarking Dask

This weekend, I visited PyCon Italy in the pittoreque town of Firenze. It was a great conference with great talks and encounters (great thanks to all the volunteers who made it happen) and amazing coffee.

I held a talk with the title "Python Data Science Going Functional" Science Track", where ...

An Interesting Fact About The Python Garbage Collector

While Python prides itsself of being a simple, straightforward programming language and being explicit is pointed out as a core value, of course, one can always discover interpreter specifics and implementation detail, that one did not expect to find when working at the surface. These days I learned more about ...

Exceptions - The Dark Side of the Force

A recent blog post "If you don't like exceptions, you don't like Python" has made rounds lately, and compelled me to write a partial rebuttal. It is not like that blog post is completely wrong, but it is not the be-all and end-all of this topic. And if I may add, it is kind of opinionated.

Identical Objects Do Not Imply Equality In Python

Python has two very similar comparison operators: == for equality and is for object identity. Typically, is faster, as the implementation just needs to compare object ids, whereas == must call the __eq__ method, and is therefor slower.

The operator is is recommended for comparisons with None in Python (as in if ...

Objects All The Way Down

After researching the backgrounds of Python's unittest module I got curious about Smalltalk, one of the first truly object-oriented programming languages. I looked into it (more specific, I played around with Pharo) and if you like, this blog post will take you along this journey using a Rosetta Stone approach by writing Python and Smalltalk snippets next to each other.


My smart phone has 2 great features. When I listen to something with my head phones, and I pull the head phones out of the cinch plug, the music or the podcast stops playing until the headphones are plugged in again. The other is that when I get a call ...

BudapestBI Retrospective

Contemplations on the Budapest BI conference where I had been invited to give a talk (also, link to Slides).

Why I use py.test

Writing readable and maintainable unit tests is crucial to the success of your Python project. For Python, the unittest module, nosetests and py.test are the most commonly used framework for writing unit tests, and so when you start a project, if no one takes the decision for you, you will have to choose between the three. Over the years, I have become a huge fan of py.test, a mature and well-maintained testing package for Python. That's why I would like to summarize the reasons for me liking py.test and explain which features make it an indispensable tool for Python development.

Learn a Language

Some common advice among developers is to learn "a programming language a year". I will not argue for or against this advice. Nevertheless, you might also consider to learn something different: For once, you might start learning another foreign language.

The same way that another programming language can broaden your ...

Talking at Budapest BI

I am delighted to be invited at Budapest BI Forum 2015 on October 14th, 2015. My talk will be about writing composable, testable and robust machine learning pipelines. The schedule is full of interesting talks, and I am sure I will enjoy it a lot!


I am a Data Scientist. With the diverse definitions and interpretations of that term, it might need some more explanation here.

I see my role as that of a Software Engineer: Solving problems by providing reliable software. The class of problems I like to tackle involve data. By this definition ...