Work Experience
Tvilight
Tvilight Projects B.V., Groningen, May 2021 – todayTvilight is an industry-leading smart-city company, specializing in smart street lighting using sensors and wireless networks.
Projects worked on:
- A mobile web application to help maintenance engineers diagnose issues with street lights. (NextJS, React)
- Various micro-services. (NodeJS, RabbitMQ, VerneMQ, Docker, Kubernetes)
- User interface for configuring multi-colored lamps. (JavaScript, AngularJS 1)
- Maintaining and extending Buildroot-based embedded firmware. (Linux Kernel, Bash, Python)
- Cellular modem management. (Python, modem AT commands)
- Distributing full firmware versions and partial updates via patches. (Bash)
- Transitioning from key-value based database to PostgreSQL with Timescale. (SQL, Timescale)
- Visualizing time-series data from Timescale. (SQL, Grafana)
- Bug fixes in embedded firmware. (C)
- On-premise installation of the cloud-based platform. (Kubernetes, Docker)
- Automatic updating of devices in a mesh network. (Java)
Themis
University of Groningen, Faculty of Science and Engineering, June 2016 – August 2019 (part time)Themis is an automatic programming homework checker. It was developed by me and two fellow students while studying at the university, and is still used by most programming courses at the Faculty of Science and Engineering.
Technologies used: JavaScript, C, Node.js, Linux Containers (LXC), Git, MongoDB, Docker, SQLite, ExpressJS, Mustache, Ngnix, LetsEncrypt.
Vitens
Internship, Zwolle, May 2017 – August 2017Vitens is the largest drinking water company in the Netherlands. During my internship there, I contributed to the development of an application to model the flow and mixing of drinking water before it gets cleaned.
Technologies used: VueJS, Vuex, JavaScript
Teaching Assistance
University of Groningen, Faculty of Science and Engineering, September 2014 – April 2020 (part time)The teaching-assistant responsibilities included: leading lab and tutorial sessions, grading homework, invigilating exams, and providing input on the design of the courses themselves. Additionally, I was tasked with managing some of the courses on the automated programming homework checking system, Justitia and eventually developing its successor Themis.
Courses assisted: Imperative Programming, Algorithms and Datastructures in C, Compiler Construction, Parallel Computing, Computer Graphics, and Scientific Visualization.
Office of Student Affairs (BSZ)
University of Groningen, Faculty of Arts, September 2014 – January 2015 (part time)At the Office of Student Affairs (Dutch: Bureau Studentzaken: BSZ), I assisted in analyzing the inflow and progression of students through the various degree programmes at the Faculty of Arts, culminating in a report on the key figures of this.
Technologies used: Excel
Syntree
University of Groningen, Faculty of Arts, June 2014 – August 2015 (part time)Syntree is an application for displaying and manipulating syntax trees for natural languages, used by students and researchers of the University of Groningen. I was hired to help the existing team refactor and extend the program, and eventually took over as lead developer of the project.
Technologies used: Java, Swing, SVG, DOM
Heiploeg
Zoutkamp, 2011 - 2013 (during summer)Heiploeg B.V. is the largest processor of shrimp and related seafood products in Europe. During the summer holidays I worked in the packaging and preservatives departments.
Education
MSc Computing Science
University of Groningen, September 2015 – March 2021Specialization track: Software Engineering and Distributed Systems.
Thesis: HandCrank: Hybrid Partial Evaluation for JavaScript.
Project: iGEM Groningen 2016.
BSc Computing Science
University of Groningen, September 2011 – July 2015Minor: Law (Dutch), specializing in intellectual property and privacy laws.
Thesis: NIfTI Shades of Grey: Visualizing Differences in Medical Images.
VWO/Gymnasium
Gomarus College Groningen, 2005 – 2011Project: Padvinder vindt pad: over Pathfinding (Dutch).
Other Projects
TriVis
GitHub: kninnug/trivis, npm: @kninnug/trivis.A TypeScript library for computing visibility polygons.
Constrainautor
GitHub: kninnug/constrainautor, npm: @kninnug/constrainautor.A TypeScript library for constraining triangulations.