Hello there! My name is Michiel Holtkamp and I’m very passionate about making software. Not just any software, but software that does new things, or does old things in a new way.

Software that works more efficient, faster or using less resources. Software that puts a smile on people’s faces and software that people don’t notice, because it is running so smooth. I like a challenge, making software that is distributed, scalable and highly robust.

Software Development

Software development is a broad field. What are the things that I have experience with? There are too many to list, but I shall make a selection:

  • Software languages: Python, C/C++, Perl, PHP, JavaScript, x86 asm and others;
  • Software architecture: designing software for security, scalability, performance and ease-of-use;
  • Open source software: MySQL, MongoDB, Nginx, Apache, PostgreSQL, Bind and many more;
  • Software testing: setting up frameworks for (automatic) testing, writing tests;
  • Software packaging: Debian/Ubuntu packages for easy installation/upgrade;
  • Version control: GIT, svn and others;
  • Issue tracking: when bugs are found, or new features are to be added, they should be tracked so you have an overview on what to work on;
  • Continuous integration: new code is automatically tested and packaged after checking in.
My speciality is backend or command-line programming. I’m definitely not a designer but I can do front-end developing as well. If you have some kind of scalability or distributed problem, I’m already interested.

Debian Packaging

Do you want to speed up the boring task of installations? You are probably already thinking about installation packages. Installation packages have a lot of advantages over manual installations:

  • Quick installation
  • Easy upgrades
  • Easy uninstall (if necessary)
  • Consistent installation
  • Prevent human errors
  • Of course, there are downsides too. For example, package upgrades could overwrite local configuration changes automatically (and silently!). With the right kind of approach, this can be handled gracefully as well.
The next step is setting up a Debian repository, so packages can be installed as easily as adding the repository and "apt-get install" them. Upgrades are handled the same way as upgrades in Debian/Ubuntu. I've experience setting up and maintaining Debian/Ubuntu packages at two companies, and do the same for my Open Source projects.


Interested in working with me? You have a project for me, or want to know if I can help in your specific case? We can always talk, so please contact me!