Tom Cools

Software Consultant / Trainer / Geeky Guy

Geek in all facets of the word, including but not limited to boardgames, comic books and programming. Developer without borders, both geographically and technically. Active as a consultant, usually for some of the biggest financial institutions in both Belgium and The Netherlands.
Next to that I am trainer/teacher who loves to share not only knowledge but also passion for our craft.

Married, No kids, No Pets, just a happy owner of a whole lot of nerdy/techy stuff.

Currently working for Info Support nv. in Mechelen, Belgium.

Personal Projects


Facebook Chatbot for the city bikes in Antwerp

Most of my pet projects start because I got annoyed by something. This is no different. I am a user of the Antwerp City Bikes (Velo), but I do not like that Mobile Application at all. This is why I created a chatbot to help me with the most frequent tasks:

  • Finding a station that has a bike for me.
  • Finding a station where I can return the bike I'm on.
  • ... and more to be seen.
The chatbot is now in Beta and I love using it. There are a few minor bugs and improvements I want to smooth out before really putting it live.
Status: Active / Private Beta

Websocket (JSR 356) bundle for Dropwizard

Open Source Contribution

Extension Bundle for the Dropwizard framework. I like the framework and wanted to use it in a project which required Websockets. Since it has no support for Websockets yet, I decided to create this library, which enables the usage of the Java API for WebSocket Protocol (JSR 356) in Dropwizard. See it on Github

Status: Maintenance Mode

War of the Tanks

Programming Competition

So, what do you get when you give 11 teams of programmers a battletank and 250 EUR budgets? All out war!
Our company, Info Support, started a competition where we would go head-to-head in 4 different challenges:

  • Race your tank arround a parcour and set the best time...without using the standard remote.
  • Find, detect and destroy are allowed to drive, but firing must be done by image-based detection.
  • Fully autonomous driving and firing, in a Tanko-a-Tanko 1vs1 battle.
  • The endgame... last man standing... FREE-FOR-ALL!

We won the first battle, but we did not yet win the war. You can find out more on the company page (Dutch).

Status: Active

Control Lego Boost from Java

Reverse Engineering

During the summer of 2017, I received a notification on Slack. They bought a Lego Boost robot and were looking for someone to try to control it from Java. After a lot of sleepless nights I managed to make it work... well... it moves and can fire it's arrow. It's something! See it on Github

Status: In Hibernation :3

Talks and Presentations

Anticipating the fallacies of distributed computing with the Netflix OSS


The Netflix Open Source Software Center is a collection of Open-Source tools and libraries developed by Netflix to help them build the system they need to bring video streaming to millions of users worldwide. In this presentation I guide the audience through some of these relatively unknown libraries.

Lessons Learned from ChatbotConf2017


I had the opportunity to visit ChatbotConf in Vienna, Austria. This presentation is a short recap of all the lessons I learned while at the conference and the community day.

If you want more than just my recap, all sessions are now on Youtube. See if you can spot me in the aftermovie! (Hint: Marvel T-shirt and big label on my chest with my name... shouldn't be hard to find me.)

Microservices: Different but Familiar!

Microservices concepts and pitfalls

In the beginning of 2016, I got really curious about this new hype: "Microservices". I had heard a lot about it, but I had never heard or seen a good summary of it. I researched the topic intensly and presented the initial version of it to my collegues in late May of the same year. I went on to present it at multiple schools and even used it during my period as teacher of the Java Minor hosted by Info Support.


Microservices & Pokemon Go

Pokemon Go Reverse Engineering in Microservices

In the summer of 2016 I got totally hooked on Pokemon Go. After a couple of weeks of being really annoyed at the slowness of the servers, I started to wonder: "How did they actually try to build this?". At the same time, I was picking up on the Microservice Hype and wanted to try it out in a small project of my own. This is when I decided I would try to reverse engineer the Pokemon Go servers. While I only partially succeeded, the lessons I learned from doing this still benefit me in each project I do.