2016 in Review

Some of the links are affiliate links to Amazon. I only recommend what I use.

At last

February. Finished my PhD dissertation, so can add Dr. in front of my name when ordering a Gatwick Express train ticket. Also makes for a cooler email signature. So far has been the only differences I’ve seen in the year


February-December Started working as a consultant in London, almost the day after delivering the PhD presentation. Not a big cause-effect relationship, though. Have done and learnt a lot of different things since then:
  • Learnt how horrible Pig Latin is for MapReduce jobs. Reference Programming Pig
  • Learnt lots of ins-and-outs of setting up single machines for services and clusters for machine learning in AWS.
  • Improved my knowledge of Spark (which was with the Python API) by learning Scala. Delivered a few small machine learning jobs in Spark/Scala. Can recommend Advanced Analytics with Spark (still reading but liking it a lot so far).
  • Wrote some production-level Go for backend services, reviewed a ton more (not the main Go developer). Got a copy of The Go Programming Language in paperback for the kicks, sits side to side with The C Programming Language I’ve had since forever.
  • Wrote a ton of production-level Python for backend services (some machine learning related, some data pipeline related, some just service related) and reviewed some little bits (acting as the main Python developer). Skimmed Fluent Python (futures, specially). Will dive into it completely in 2017.
  • Learnt to use Docker (and Ansible, even if not directly related) properly.
  • Used Apache Kafka (consumers and producers in Go, Scala and Python), Aerospike (in Go and Python) and RabbitMq (in Python)
  • Did a lot of fine-tuning of the queries, tables and key distribution of a Redshift (PostgreSQL) cluster (20% space saving).
  • Went on a machine cleaning spree on AWS, shutting down (with refactors where needed) or downscaling systems. We saved something like 30-35% of costs doing this.
  • Discovered how much I enjoy spinning tops to unfocus a few seconds and clear my mind to tackle a problem.

April-December Worked on some search engine optimisation analysis for a French company. Still ongoing, trying to get a 25% raise in organic search (right now at 10%)

August-December Started working on a personal project: an adserver for this blog, with a multi-armed bandit approach to serve relevant Amazon affiliates product ads. You can read up a little more about it in this post I wrote on LinkedIn.


February-December. Spent 3 weeks out of every 4 in London.

Attended loads of meetups (member of the London Scala User Group, Spark London, London Python… you get the idea), ate loads of pulled pork burgers, duck crackling burgers, pork burgers, etc. Also visited some museums. Cafés in London museums are pretty good.

Also attended several meetups in Barcelona, when I happened to be here (Barcelona Python Meetup, Barcelona Spark Meetup, Golang Barcelona).

Became kind of a regular at the Café at Foyles in Charing Cross (awesome coconut and lime slice) and the Café at Waterstones in Hampstead (best scones I've eaten in London).

February Visited Llívia. Lovely small town, will repeat.

February Attended Lineapelle Milano 2016

June Visited Hay-On-Wye, famed by its second-hand bookstores and eggs Benedict. Will repeat. Probably kidnap Jasper Fforde to get him to write Paint by Numbers

July Took a course in wood carving in London. Will repeat.

September Holidays in Collioure. Will repeat

Should have done it sooner

June Learnt to touch type and moved to using the Colemak keyboard layout, practiced at Keybr. Makes a huge difference to speed, accuracy and ergonomy. Should have done this way earlier in my life.

June Started eating parsnip, suggested by our product owner. Never had before, I'm liking it.

September Learnt to prepare brown butter thanks to Ruhlman's Twenty. Ideal for some desserts, caramel sauces and mashed vegetables.

October Discovered I actually like sweet potatoes, specially as French fries.


March-June Earned a postgraduate degree on Big Data and Data Science from the University of Barcelona.

February-December Attended the Spark, Emacs, Scala and ScalaX Bytes meetups every time I was in town. More sparingly attended the Data Science London, London Machine Learning, Python London, Go London User Group and Apache Kafka London, among a few other meetups I only attend on a interesting-talk basis.

June Took (as in, finished some) the Coursera courses about Scala. Will finish the rest eventually.

December Attended Scala Exchange 2016 London and Scala Exchange Hack day, where I got an introduction into contributing to Open Source. Trying to help with scala-native right now. Got a T-shirt with the text Scala contributor, which is nice.


This year I read 44 books, most of them non-fiction and mostly about self-improvement and data science.

I recommend Chronicles of Amber by Roger Zelazny as fiction and Never Split the Difference by Chris Voss as non-fiction. Technical, I’d recommend The Software Craftsman: Professionalism, Pragmatism, Pride by Sandro Mancuso


March-June Enjoyed the hillbilly covers of Hayseed Dixie and almost attended a concert in Canterbury

September-December Discovered Sonata Arctica and really enjoyed its songs. Specially partial to FullMoon and What did you do in the war, dad?

October Attended the Boxes tour concert of The Goo Goo Dolls in London (luckily they played most of the classics)

November Attended the first concert of the Chimera Orchestra in London

December Got these active-noise cancelling earphones for Black Friday. Work wonders to quieten a noisy office.


Aside from the ANC earphones mentioned above, this year I got
  • Mechanical keyboard. Great key feel and travel, but very noisy. Got complaints in the office. Also weights a ton (and a half)
  • Portable foldable keyboard. Surprisingly good key feel and shape. Works excellent, aside from being unable to pair to more than 1 device at once.
  • Spiraliser. Great for potato spaghetti. Got it in December and only started using it in Christmas, is going to make most of my solid vegetables this 2017
  • iPad Pro with Pencil. After trying the Pencil with Procreate in an Apple Store I knew I needed one. Also, this way Laia got a not-too-old iPad Air, too. Got the largest, works great. Then I got an iPhone SE and recently (due to Laia’s Android phone dying for Christmas) an iPhone 7.
  • Space pen. I love pens. I thought I was going to give up on notebooks after the Pro and Pencil, but… Always carry this sturdy little beast in my pocket together with the excellent Canson A6 notebook. Its paper can easily take watercolour. Also practicing shorthand on it.
  • Memo bottle. I got a very compact backpack (so that I’m not that guy on the tube) and this water bottle fits perfectly when I need to bring water along. A little bit on the pricey, hipstery side but works well.
  • External micro USB disk. Oh, I love this thing. Before I used my 1TB external disk for everything (since I have a 128GB Air). Which included all git repositories, meaning that when it was time to leave (or fire drill) I needed to close iTerm, emacs, SourceTree... not anymore. I have it always plugged, effectively doubling my hard drive space.


Introduced our company into the misteries of the Catalan tradition of the Caga Tió. Brought them one for Christmas.
Written by Ruben Berenguel


My portable Bluetooth keyboard

I've been looking for the perfect, really portable Bluetooth keyboard for several years. Typing on the go, or having a truly mobile office in your pockets is a really interesting concept for a consultant like me. You never know when opportunity or need may arise.

A year and a half ago I ordered what it looked like the perfect keyboard for that setup, but (even though it was supposed to arrive 3-4 months later) I'm still waiting. Instead, I got this stupidly cheap (around 25 $/€/£, this is an affiliate link) keyboard. See it below, with a pound and an iPhone SE for scale

The pros:

  • Folds in half. When folded, fits, barely, a large trouser pocket if you are slim. If you are wearing a jacket you can put it in a jacket pocket.
  • Weights very little
  • Great tactile feed. Has some scissor switches that feel sharper than the (from my feeling) decently good switches in 2013's Macbook Airs. Quite pleased with it (not as good feedback as my mechanical one with brown cherries, but this weights 20 times less or so)
  • Seems to have a decently long battery life
  • Disconnects on fold, starts up on unfold. A magnetic latch keeps it closed neatly
  • Has arrow keys and F keys
  • Good range

The cons:

  • Can only be paired with one device at a time. So far this means that when I decide I want to pair it with my Mac instead of my iPhone, I need to forget the device and pair again. Not a big deal since I usually only want it for the phone or iPad, and repairing is fast
  • With a Colemak layout, the O is a small key, and a problem for me is that B is a left hand key and for me is a right hand key.
  • Alt acts like alt, no matter the operating system (you can change it with a key combination). On Mac you can tweak it, on iOS can't
  • Fn and Ctrl feel wrong as they are placed, should be swapped

Would I recommend it? Definitely. It has great feel and is a great price for quality keyboard. Oh, and this post was written all on it so I get used to the misplaced B. You can get one for Christmas from here (I'd get a few cents if you do so, thanks in advance!)

And if you want to learn Colemak I learnt using Keybr, and have had a lot of fun playing this online typing game, Z-Type. Both links are non affiliated and I have no relationship with them aside the learning or fun.
Written by Ruben Berenguel


October Kafka London Meetup - Jay Kreps: Distributed stream processing with Apache Kafka

This has been the first time I could attend the Apache Kafka meetup in London. Previous meetings had me in Barcelona or flying. First realisation: it is a surprisingly crowded meetup! Clearly, everyone is using Kafka, even if it is not clear from the outside. Oh, and the food was pretty good, too. Thanks to the sponsor (which I have sadly forgotten).

I really enjoyed this one. The speaker was Jay Kreps, CEO and co-founder of Confluent (and author of I Heart Logs), so, basically, a Kafka top committer himself. He delivered the same presentation he gave in Reactive Summit 2016, but since I wasn't in the former I could enjoy it this time. It was a hand-drawn presentation (I suspect using Paper for iOS), hitting all the supposedly good points of technical presentations (short slides, don't read them, etc). It was also quite deep, explaining what/how and why we should use Kafka Streams for our real-time data pipelines.

Jay, presenting. This architecture needs some Kafka
The key takeaway is that if you are already using Kafka as your real-time data hose-and-bucket, you can reuse this cluster (and all its goodies: partitions, groups, offsets) for processing the data as it comes, withouth needing an additional framework (Flink, Spark, Storm... you know the tune). Also, if you'drather write Perl than Java and this is preventing you from using the KStreams API, behold! Even if they don't have an official Scala API, wrapping it is extremely easy.

You can view (and download) the slides from here, and watch Jay in video from Reactive Summit here.
Written by Ruben Berenguel