Welcome! This webpage contains information about my expertise and professional activity. I am specialized in solving difficult logical problems and implementing the solutions in software. Visual communication plays a key role in many of my projects, and I enjoy designing beautiful and innovative interfaces. I like brainstorming together with a team to find the path towards a good product, and to make technical decisions that are future-proof. I have an academic background in biophysics, pure mathematics, and theoretical computer science.
I started programming over 10 years ago, and since then I learned to work with a range of different languages, libraries, frameworks, tools, and stacks. Some of my favorite programming languages are OCaml, Golang, TypeScript, Dart, and C.
I am a minimalist, and I like designing distinctive and functional interfaces that are responsive, predictable, and easy to learn and understand. For one project I developed a comprehensive WYSIWYG editor with a modular event handling system to make sure that the code is easy to maintain and extend.
I have worked on a number of projects that involved 3D rendering. From this I learned the logic behind the OpenGL and WebGL API, how to accelerate rendering and computation problems via custom shaders, and how to make 3D objects interactive using libraries like THREE.js
. Working on 3D graphics is always a treat.
In my bachelor thesis I got hands-on experience with machine learning by designing and training a Deep Convolutional Neural Network to perform image segmentation of high resolution microscope scans. I also have experience testing and applying existing machine learning models, which is often a very powerful approach to build new solutions.
One of my academic specializations is formal verification using interactive theorem provers. I developed various formalizations using the Coq Proof Assistant. Developing formal proofs is very challenging, and requires careful thinking about even the smallest logical inferences. Below is an overview of my formalization projects.
Main topic | Repository |
---|---|
Graph pebbling and zero-sum sequences | @bergwerf/pebbling |
Kleene algebras and shortest paths | @bergwerf/star_semiring |
Deduction rules for the later modality | @bergwerf/later_modality |
The Schreier-Sims algorithm | @bergwerf/permutation_factors |
Arithmetic decidability via automata | @bergwerf/linear_integer_arithmetic |
The Cantor-Bendixon theorem | @bergwerf/settheory |
Brouwer’s continuity principle | @bergwerf/intuitionism |
Thesis | |
---|---|
Title | An Exploration of Graph Pebbling |
Supervisor | Dr. Wieb Bosma |
Group | Pure Mathematics |
Full Text | doi: 10.48550/arXiv.2303.04590 |
Resources | Presentation on YouTube, Formalization on GitHub |
Internship | |
---|---|
Title | Circular lists in Iris ∗ deduction rules of ▷ |
Supervisor | Dr. Robbert Krebbers |
Group | Software Science |
Full Text | doi: 10.5281/zenodo.6340500 |
Resources | Formalization on GitHub |
Thesis | |
---|---|
Title | Nerve fiber tracing in bright-field images of human skin using deep learning |
Supervisor | Dr. Erik Meijering |
Group | Biomedical Imaging Group Rotterdam |
Full Text | TU Delft Repository |
IEEE Article | doi: 10.1109/ISBI.2019.8759504 |
Minor | |
---|---|
Topic | Interactive Environments at the Industrial Design faculty |
Description | During one full semeter we were introduced to Interaction Design for physical environments, and challenged to go through an iterative designing and prototyping procedure in small teams. |
Company | Bergwerf Labs |
---|---|
post@hbergwerf.nl |
|
KVK | 73224480 |
VAT | NL002378274B15 |