Welcome! This webpage contains information about my expertise and professional activities. The main driving factor for me has always been solving difficult problems, and making the solutions look as beautiful as possible. I enjoy working with other skilled people, learning from them, and contributing my own knowledge and insights. I have a strong theoretical background in biophysics, mathematics, and computer science, and over the years I have gained extensive experience with software development and programming.
I have affinity with challenges across the software stack, both high-level and low-level. I like designing things, thinking about the interactions, and making sure everything is implemented in a modular and efficient way.
When developing user interfaces I strive for perfection. I make sure things look good on every screen, taking into account different sizes and resolutions. I highly value simplicity, so I try to make things self explanatory using visual metaphors users are familiar with. When necessary I use Inkscape to design custom vector icons that blend in well with the rest of the design.
Many of my projects have included interactive graphics, from a clickable world map to an interactive 2D and 3D molecule editor. Developing graphics with complex user interactions is one of my main strengths. In some cases I design a custom event handling system to ensure predictable behavior, and to ease the implemenation of new domain-specific features.
Application performance should never stand in the way of the user, so when needed I look for advanced ways to improve rendering efficiency. I have worked with the OpenGL API, developed GLSL shaders, and implemented general-purpose GPU computation. A good understanding of these technologies is very useful when working with 3D graphics.
I have experience developing deep learning networks, and using existing machine learning solutions in Python. Jupyter Notebooks are an essential part of my Python workflow. The machine learning world is very fast-paced, and novel applications are published each day. Many existing solutions are just waiting for new application contexts.
One of my academic specializations is formal verification using interactive theorem provers. I primarily use the Coq Proof Assistant, using which I have developed various formal theories. Developing formal proofs is very challenging, and requires careful thinking about even the smallest logical inferences. Below are some formalization projects I did in my spare time.
Theory | Repository |
---|---|
Kleene Algebras and shortest paths | @bergwerf/star_semiring |
Functional permutation factorization | @bergwerf/permutation_computing |
Arithmetic decidability via automata | @bergwerf/linear_integer_arithmetic |
The Cantor-Bendixon theorem | @bergwerf/settheory |
Brouwer’s Continuity Principle | @bergwerf/intuitionism |
2022 | Machine Learning for Image Processing |
---|---|
Client | Omoda |
Technologies | Python MediaPipe |
Goal | Build machine learning based tools for automatic image classification to help automate the photography pipeline. |
2017-2021 | High-quality Chemical Diagrams |
---|---|
Client | CreativeQuantum |
Technologies | Dart HTML5 Canvas |
Goal | Design a new and highly configurable web-based chemical diagram editor from scratch using the Dart language. |
2017 | Molecule Sketching for Education |
---|---|
Client | Learnbeat |
Technologies | JavaScript HTML5 Canvas |
Goal | Integrate MolView’s 2D molecule sketcher in a learning platform used by over 500 schools in the Netherlands. |
2016 | Custom Mailing Scheduler |
---|---|
Client | Profects |
Technologies | Golang PostgreSQL Docker |
Goal | Develop a stable and efficient program to send thousands of daily emails parameterized by an SQL database. |
2012-2015 | MolView.org |
---|---|
Technologies | JavaScript PHP WebGL CSS |
Goal | Enable free online molecule editing and viewing using open cheminformatics databases and modern web technologies. |
In 2015 I started the Nanobiology Bachelor program at TU Delft. I was excited to learn about the molecular machinery and laws of physics that make life possible. While this fascination remains with me, I decided to move away from the empirical sciences to study mathematics and logic.
I moved to Nijmegen where they offer a strongly theoretical computer science track, including courses on Category Theory, Type Theory, Computability Theory, and Automated Reasoning. My interest in mathematics increased, and I followed courses about Axiomatic Set Theory, Model Theory, and Graph Theory.
Research Internship | |
---|---|
Title | Circular lists in Iris ∗ deduction rules of ▷ |
Supervisor | dr. Robbert Krebbers |
Group | Software Science |
Full Text | doi: 10.5281/zenodo.6340500 |
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. |
I am always interested in new challenges and opportunities. For questions and business inquiries please send an email to post@hbergwerf.nl
.
Company | Bergwerf Labs |
---|---|
Address | Heemraadstraat 6, 6525 TH, Nijmegen |
KVK-number | 73224480 |
VAT-number | NL002378274B15 |