Skip to main content

My datasheet


Hi! I'm Dominic. I'm a general tinkerer with an academic focus on programming embedded and industrial systems. I'm curious about communication and education, and by night I occasionally program useful tidbits.


Name Dominic van Berkel
Location Eindhoven, the Netherlands
Natural languages
  • Dutch, native speaker
  • English
  • German, near fluent in reading and listening
Unnatural languages
Comfortable with
  • C, wherever that's the obvious choice
  • C# for desktop applications
  • Python for most data processing needs
Familiar with
  • C++, but not nearly enough with the changes of C++11 and C++14
  • Java, mostly in the context of Android
  • PHP, but not the ecosystem
Interested in
  • Rust, which may just be the modern systems programming language I need
  • F#, as I'm curious about the functional paradigm
Familiar contexts and frameworks
  • Linux kernel modules for PC, embedded and mobile
  • Various AVR platforms
  • The Android app framework
  • .NET on Windows PCs
  • The Twisted framework for Python
Not so good at
  • Taking breaks
  • Approaching others for help
Want to learn
  • Automated testing. I've done it, but I don't think I've done it right.
  • Writing good documentation. I'm good at explaining things interactively, but static documentation is something else entirely.



Via email, you can contact me at (or dominic at the same domain). I like being useful, so if you have an open source project that needs volunteers and you think I might be interested, don't hesitate. If you have a job offer you think I might be interested in, don't hesitate either.


Currently I'm employed in tier 1 tech support, visiting customers at home and occasionally at work to diagnose and resolve (mostly) software issues. Occasionally this also involves one-on-one teaching; generally those are the most interesting appointments.

I used to help out as assisting sysadmin at the free shell network Anapnea, starting in its early days back in 2007. I later took on development tasks when it became necessary to automate parts of the registration process and was part of the general staff.

Until the summer of 2014 I managed the website for my choir, JKL. I started out with a full rewrite of the website's frontend because the original wasn't written for maintainability.

Non-tech activities include a few years as treasurer of the same choir, two years as a scout leader and several in retail. They mostly don't line up with my IT work, but all of them involve and taught me skills that transfer very well to any collaborative environment.



I am in my third year of the ICT & Technology program at Fontys ICT, "University of Applied Sciences". ICT&T covers systems programming as well as embedded and industrial software, with a little bit of hardware mixed in. I chose this partly because of my interests in physics and programming.

For an internship during the fall semester of 2014 I spent five months at Philips Research, where I was part of a team implementing an upcoming wireless peripheral standard. My task in the project was the implementation of the Media-Agnostic USB standard within the Linux kernel, which was for the full duration both terrifying and fascinating.

This is not my first attempt at a degree: after high school I spent two years in applied physics, after which I spent another two years training to be a high school physics teacher. For different reasons neither of those worked out, but those four years weren't a loss: I'm still interested in education and learned a lot about social interaction and communication in the process.


I like myself best when I make something useful. Here's a selection of things I've made.


Flintlock is a Windows application to talk to Pebble smartwatches. While a set of python scripts already existed, Flintlock was the first convenient GUI-based tool. Flintlock uses my own Flint library to handle the underlying Pebble interaction. Many thanks to Hexxeh et al for figuring out Pebble's protocols.

Unfortunately, I stopped development on Flint and Flintlock after my Pebble broke and haven't picked it up since. I've got another project in the works to provide similar functionality without having to reconnect the Pebble between phone and PC, though.

Interro is a little Python module that can be used to create dialog trees and go through them with a user. Its original purpose was an interactive questionnaire with live answer validation for a chatbot, and that is still where it fits best.
Shirk is an IRC bot written in Python using the Twisted framework. That's been done before, but Shirk aims to be extremely easy to extend. Writing a new plugin that responds to a given !command takes about ten lines of code, so you don't have to worry about the IRC internals and can just write the functionality you want to add. The bot that handles registrations for Anapnea is based on Shirk.



I enjoy making things, as well as repairing things that are broken. Despite my education my soldering iron is usually cold, but I do enjoy working with wood. I mostly read fantasy and sci-fi, and have a to-read list that isn't getting any shorter. I have too much tea in my cupboard.

For years I sang in a choir, and that's still something of a passion. Music in general is important to me, and I have more instruments than I can competently play. Which is to say that I think I can sing, and I know I'm no good at the guitar, tin whistle or harmonica. I listen to all kinds of music.