Marco Gunnink

Software Engineer – Curriculum Vitae

Work Experience

Tvilight

Tvilight Projects B.V., Groningen, May 2021 – today

Tvilight 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 2017

Vitens 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 2021

Specialization 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 2015

Minor: 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 – 2011

Project: 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.