Free and open-source software
A non-exhaustive list of the Free and Open Source Software projects that I work
on or have worked on in the past:
- Inko: a statically typed, object-oriented programming
language focusing on concurrency and safety; inspired by Ruby, Smalltalk,
Erlang and Rust.
- GitLab: a complete CI/CD toolchain in a single
application.
- libbfi-rs: Rust bindings for libffi.
- Oga: an XML/HTML parser for Ruby with
XPath and CSS support.
- ruby-ll: an LL(1) parser generator
for Ruby.
- ruby-lint: a static code
analysis tool for Ruby.
- Rubinius: an implementation of the
Ruby programming language.
- OpeNER: natural language processing framework
for 6 different languages.
- Ramaze: a simple, light and modular open-source web
application framework written in Ruby.
- Pry: a popular REPL for Ruby.
Employment history
GitLab B.V.
Period | Title |
---|
October 2015 until December 2021 | Staff backend engineer |
During my time at GitLab I worked on optimising application performance,
building and growing GitLab's database team, improving GitLab's release tooling
and release process, and more. Notable projects include:
- Merging the two different codebases for GitLab CE and GitLab EE into a single
project, an effort that took over nine months to complete and improved the
workflow of hundreds of GitLab developers. Some more information can be found
in this
article
and in this GitLab epic.
- Improving release tooling and workflows, reducing the time it takes to deploy
to GitLab.com from several weeks to a matter of hours.
- Building a chatops solution that allows GitLab employees to run a variety of
commands directly from Slack, such as starting the release process of a new
GitLab version, or enabling a feature flag.
- A new changelog workflow that uses Git trailers instead of YAML files, making
it easier for developers to add entries to the changelog.
- Changing how GitLab uses its relational database to support multiple
relational databases, allowing GitLab to better scale into the future. See
this GitLab handbook
page
for more details.
- A custom database load
balancer
with support for balancing read-only queries across different databases,
automatic service discovery of new database hosts, and improved handling of
database connection errors and timeouts. As of December 2021, the load
balancer setup for GitLab.com handles over 300 000 queries per second.
- Building a solution for database migrations that makes it possible to deploy
GitLab without downtime, both for GitLab.com and self-hosted installations.
Solving GitLab's scaling and performance problems Removing
GitLab.com's production database by accident,
only to find out our backups hadn't been working for months. We recovered with
"only" six hours of data loss, then spent several months working to ensure
this would not happen again. A post-mortem of this is found
here.
Olery B.V.
Period | Title |
---|
December 2012 until October 2015 | Backend developer |
Olery is/was (as of December 2021 they still exist, but I'm not sure in what
state) a company/platform for collecting and analysing online review data from
websites such as Booking.com, TripAdvisor, and dozens of others. I worked as
part of a small development team on all aspects of the platform. Notable
projects include:
- Rebuilding all web scrapers from the ground up using modern development
practises, rather than outsourcing the development. This resulted in a massive
increase of reliability and performance of the scrapers.
- Setting up continuous integration and development pipelines using Jenkins,
making it possible to deploy our software to dozens of servers in a matter of
minutes.
- Replacing the use of MongoDB with PostgreSQL,
drastically improving performance and stability of the platform.
- A natural language processing pipeline, used for
sentiment analysis in six different languages.
Isset Internet Professionals
Period | Title |
---|
June 2010 until November 2012 | Backend developer |
Isset is a small web development agency based in Hilversum, The Netherlands.
Notable projects include:
- Setting up and maintaining an internal Redmine
instance for project management.
- Building and maintaining an internal platform for managing over 3000 customer
domain names using PowerDNS.
- A metrics aggregation application for radio/TV broadcasters and advertisers,
allowing them to analyse the impact of their advertisements.