Download my CV 1 pager or full CV (last updated: September 2019).
Quick Facts
- Name: Tom Van Cutsem
- Nationality: Belgian
- Residence: Leuven, Belgium
- Language proficiency: Dutch (Mother Tongue), English (Fluent)
- Degree: PhD, Computer Science
- Profession: R&D team leader, computer science researcher, software architect, software technologist
Past work that I am proud of
- I designed the Unix Game, an online coding game
built for the occasion of the 50th birthday of the Unix operating system.
A few days after launch the game went viral, attracting thousands of
players and tens of thousands of visitors worldwide.
- Designed a search engine for software packages called Code Compass powered by unsupervised machine learning algorithms (joint work with colleagues from Nokia Bell Labs).
- Built a wide-area distributed stream processing platform for IoT called World-wide Streams (joint work with multiple colleagues from Nokia Bell Labs).
- Contributed to the JavaScript (ECMAScript) standard. Designed the ECMAScript 2015 Proxy and Reflect reflection APIs (joint work with Mark S. Miller from Google).
- Together with Stijn Mostinckx at the University of Brussels, designed and implemented the distributed, open-source AmbientTalk programming language.
- Organized the 2013 Flemish Programming Contest, a regional ACM-style programming contest, attracting 500 participants.
- Author of reflect.js, a Javascript reflection library making the ECMAScript 6 reflection API available on current platforms.
- Together with Dries Harnie, Joeri De Koster and Theo D’Hondt, designed SchemeKen, a distributed, resilient dialect of Scheme.
- Author of traits.js, a minimal trait composition library for Javascript.
- Independently developed a 26-hour lecture series at university Master-level on multicore programming and an introductory university Bachelor-level course on distributed systems.
- Author of stm-in-clojure, a meta-circular implementation of software-transactional memory in Clojure. I use this library for teaching STM in my university course on multicore programming.
- As a CS student, worked on several programming projects including a compiler for a C-like language for the JVM written in C++, a mobile agent travel reservation system in Java, a 3D rendering engine based on Binary Space Partitions, a text-based RPG, and a spreadsheet in PLT Scheme (now PLT Racket).
Skills
Soft Skills
Team leadership, delivering talks and technical pitches, coaching people, coordinating a development team (in an architect role). Excellent writing skills.
Technical Skills
Very strong software design and software engineering skills. Deep understanding of programming languages, compilers, virtual machines. Deep understanding of distributed systems. Hands-on experience with node.js, Cloud/AWS, Docker, RabbitMQ, MongoDB. Ask me about distributed systems concepts such as consistency, availability and partition-tolerance.
Good understanding of Machine learning and its possibilities (classification/regression, supervised/unsupervised) and pitfalls (bias, overfitting). I’ve wrangled data and trained models with Python.
I consider myself proficient (i.e. have written programs over 10K SLoC) in Java and JavaScript (node.js) but have used a wide variety of different languages
and systems, including C/C++, Prolog, Python, Erlang, Clojure and Smalltalk. I pick up new languages easily.
Expert in object-oriented software development, design patterns, TDD/BDD. Also strong affinity with functional, relational and logic programming paradigms.
Expert in multi-user (concurrent) systems, distributed computing, parallel computing, peer-to-peer systems.
Good understanding of basic security principles, authentication, encryption/verification and key networking principles.