I'm Jelmer. I'm almost finished with my master's in Artificial Intelligence, and now I'm searching for a full time job in Edinburgh to follow up my 10 years of work as a freelancer, teaching and research assistant, and software developer.
I want to make stuff. This website shows some of the software and web projects I made. It has been my hobby ever since my parents gave me my first LEGO set.
Most of my projects I store and share on Github or Bitbucket but not everything is public. A more complete list of my professional and educational career would be my curriculum vitae, or my less detailed LinkedIn.
I have been making websites since I first found out Netscape came with a program called Composer, which allowed me to make my own websites!
The stemwegwijzer is a small web-app that points you to the nearest polling station, measured in walking/cycling distance.
During the 2017 general elections the app was a first of its kind. We have deployed it for all general and municipal elections since then.
Historical maps of Friesland
Tresoar, the Frysian archives, stores many old maps from the region in their archives. This website makes these available. It filters them when you zoom in to a specific region, and you can view them together with other old and up-to-date maps.
Beacons at sea
This interactive map shows all the lights at sea that have been mapped in OpenSeaMaps. Each of these lights flickers with their own specific pattern, and their size depicts from how far they can be seen.
Experiment with data available in OpenSeaMaps.
Website for the 29th BNAIC conference
The 29th Benelux Conference on Artificial Intelligence was organized by the department I was studying and working as a teaching assistant. I volunteered to help with the organisation and as part of that made the website.
Built in 2017 using just HTML.
Main website of study association Cover
I maintain the website of study association Cover and from time to time add features, such as a policy-based authorization system, face tagging in the photo books, and mailing list management.
During my board year I made the member administration system for my study association.
We used to use Excel for our administration, and backups were just a monthly copy of the file. Our new member administration is versioned, and connected to the other websites of the association so members can see, use and update their own info.
Various committee websites
Various websites for committees of Cover
During my time as a student I was active in various committees of the study association, and for many of their activities I made websites.
Often people come to me with ideas for websites, often with complete designs, sometimes with just sketches. I then realize their project, depending on their needs and abilities using a CMS like WordPress. Incidentally, I have made quite a few WordPress plug-ins for these projects.
I also worked on a number of projects that are more research oriented. Most of these are implemented as web-apps as well since I'm very familiar with these and they are easy to deploy.
Soil horizon interpolation
A company with a large dataset of soil samples wanted to see what the earth looks. The application we developed can make an interpolation of the soil in real-time from their drilling and sounding samples. All you have to do is draw a line on the map and you get a soil horizon, overlaid with data from nearby measurements.
Automated analysis of the national elevation dataset for finding buried settlements.
I went looking for traces in LIDAR data using a signal analysis method developed for astronomy. The research project is published as Hoogtepunten en sterrenkunde: het traceren van huisplaatsen in AHN-data (in publication).
Tablet app for language research with children
I developed a very playful application for tablets (for iOS and Android) to perform an experiments to see how children deal with pronouns like his. The characters talk to each other about each other, and the child has to tap the character that was mentioned.
Built in 2012 using HTML, CSS and Java (Android).
Natural language processing tools
Dact is a tool for opening and working with corpora, large datasets of annotated texts. It allows you to search through it, export sections of it, and perform simple analyses. I developed many of the interface components, and the website.
Built in 2010 using C++ and Qt.
For my thesis I developed a parser and grammar for argumentative text with accompanying interface. It allows you to enter a text and see how the claims inside the text support and attack each other. It also allowed you to reverse this process, and generate text.
For the course Knowledge Technology Practical I made an inference system that intelligently decides which questions to ask based on rules and questions coded in an XML file. It is really easy to extend and integrate, and is able to explain its conclusion.
Since then the code has been provided as a starting point for all teams starting the course. It is being used in other courses as well.
Built in 2011 using PHP and XML.
Most of the programs I made for the courses I completed is available on my Bitbucket and Github accounts. They are not actively maintained, but still serve as examples for others.
- Traffic simulations (Java)
- Fluid simulation visualisation (C++, Qt)
- Risk-like player using machine learning (TD-learning) (Java)
- Handwriting recognition pipeline for (very) old documents (Python, C++)
- And of course a raytracer (C++)
Gopointserver is a simple and fast web server in Go that filters and serves Geojson when given a bounding box to search. It started as a project to try out Golang (which I now also use for home automation) but graduated to production in the Stemwegwijzer project.
RUG UB Proxy plug-in for Google Chrome to easily access papers behind publisher pay-walls, at least if you have login credentials for the University of Groningen
Nostalgy-4-Mail.app is a plug-in for Apple's Mail.app to use Gmail keyboard short-cuts. I mostly use it myself for navigation using the j and k keys, and quickly labelling emails and jumping to labels.
By the way, how did I make that header? Good question.
Above all things mentioned in this section I want to build software. I like to create and to turn ideas into smooth working prototypes. I have been doing this for more than ten years for my own ideas, for researchers, and for my clients. I am an engineer through and through.
When building stuff, I want to do it neat, which for me amounts to solving complex problems by writing brief and simple to understand code, documenting its intentions, applying best practises. Writing semantic HTML. Be efficient with dependencies. Using a framework like React or Vue when necessary, but not including jQuery for just toggling a menu.
I want to learn from others. In most of my roles as developer I was the lead or the only developer. This has always pushed me to being able to teach myself new skills, frameworks and concepts quickly. But I can only learn from the mistakes I make, and there is no good replacement for talking with others about their ideas, experiences and best practices.
I want to share my skills. As a teaching assistant, I have been guiding students through their material for eight years, pushing them to try novel ideas, and coaching them while they built it. I deeply loved that job.
I would love to be able to build intelligent solutions. I studied AI because I truly want my life to become smarter. Just being faster doesn't cut it. If you have a project where you want to put computer vision, natural language processing, machine learning or any form of knowledge technology into a real product, I want to help. I might have an idea or two.
I want to take responsibility and build safe software, and I mean this in two ways. First, my experience with AI and big data made me well aware of the possibilities of it, but also of techniques to safeguard misuse, such as differential privacy. Second, through the safety of the code that powers it. I.e. I know how to carry out and prevent SQL-injection, XSS-attacks and common cryptographic mistakes.
- Familiar with Object oriented, functional and logic programming
- Making websites using HTML5, CSS3, ES6 (NPM, Bootstrap, Vue, React)
- Writing back-ends and micro-services using PHP, Python, NodeJS, Go (Flask, Django)
- Writing desktop software using C++ (Qt and OpenGL)
- Using large relational databases (PostgreSQL, MySQL)
- Using and developing GIS software
- Machine learning (Neural networks, SVM, OpenCL)
- Natural language processing (including NLTK, spaCy)
- Working with teams i.e. using git, svn and JIRA, and writing clear code and documentation
- Inheriting and jumping into large code bases