Summary
I received my Bachelors (Electrical Engineering) and Masters (Embedded Systems) from Eindhoven University of Technology. In April 2014, I successfully defended my PhD thesis at the same university. During the PhD I gained experience through two internships: with the OpenCL compiler group of ARM in Cambridge (UK), and with the cuFFT team of NVIDIA in Santa Clara (CA). After that, I worked as a GPU consultant at the SURFsara supercomputing center and as a C++ performance engineer for a computer vision and machine learning team at Blippar. Currently, I work at TomTom on deep learning software for autonomous driving.
Interests and expertise
My main programming languages are C++11, Python 3, and CUDA/OpenCL for GPU programming. For the last few years I have worked on machine learning for computer vision applications, mainly in Python and TensorFlow. This includes both the software engineering as well as the machine learning research aspects. From my past jobs and studies, I also have experience with compilers, high-performance computing, computer architecture, and low-level programming.
As a hobby I program in C, Python, and have developed C++11 codes for GPUs. Examples are
CLTune, an OpenCL auto-tuner, and
CLBlast, an OpenCL BLAS library.
Profiles on other pages
Work experience
I work as a deep learning R&D engineer on computer vision applications for autonomous driving. Topics include semantic segmentation and generative adversarial networks. Technologies include Python (3.5+) and TensorFlow. My roles include Python software engineering, machine learning research, and tech-lead / scrum-master.
I worked as a C++11 performance engineer on computer vision and machine learning algorithms for an augmented reality company. My work included multi-threading, vectorisation and GPU-acceleration.
I worked as a consultant for the Dutch national supercomputing/HPC centre, specialised in accelerator programming (Xeon Phi, GPU). My job involves tuning scientific codes (C/C++/Fortran) for multi-cores (OpenMP), multiple nodes (MPI), and accelerators (OpenCL/CUDA). I have worked on codes from various domains, including finite element methods, fluid dynamics, and quantum chemistry.
I worked for four months as an intern GPU programmer at the NVIDIA headquarters in Silicon Valley within the math libraries group, developing and performance tuning the CUDA Fast Fourier Transform library (cuFFT).
As part of a 4-month HiPEAC sponsored internship, I performed research within the ARM Mali OpenCL compiler team. I created a machine-code level mathematical performance model for the Mali T600-series, one of the first OpenCL capable low-power GPU architectures. Additionally, I worked on a GPU cache model, and was involved in the design of the PENCIL language, part of the CARP EU project.
Within the Electronic Systems group, I worked full-time as a scientific programmer, which included research into processor architecture (GPUs, SIMD) targeted at image and video processing applications (histogram, motion estimation).
Kinento is a privately owned e-commerce company. Three PHP extensions to Magento were developed and maintained. From 2015 onwards, they are open-sourced and available for free on GitHub.
Education
Under the supervision of prof. Henk Corporaal, I performed research on GPUs. This covered most aspects of GPUs, including micro-architecture, compilers, performance modelling, and programmability issues. This has led to two journal articles, a patent application, and several publications in international conferences and workshops. During my PhD, I interned for 4 months at both ARM and NVIDIA. My PhD thesis is titled 'Improving the Programmability of GPU Architectures' and is available in PDF form.
Master degree program in Spanish, part of a six month Erasmus exchange.
Two year master degree program with a focus on (multi-)processor architectures. Master thesis carried out at the Electronic Systems group, titled 'Improving CUDA's compiler through the visualization of decoded GPU binaries'.
Three year bachelor degree program.