Software Engineer

Skills & knowledge

Languages

  • Elixir
  • Python
  • HTML/CSS
  • Javascript
  • Java
  • SM83 ASM (Game Boy)

Distro's

  • Manjaro
  • Kubuntu
  • Linux Mint
  • Yunohost
  • Debian
  • Alpine
  • Ubuntu Touch

Technologies

  • Git
  • PostgreSQL
  • Phoenix (Elixir)
  • Vue

Human languages

  • English
  • Dutch
  • Willing to learn French

Non-human languages

  • wraf
  • miauw
  • beep

Open Source experience

Pleroma

Developer, 2018 - 2022

Pleroma is a distributed social network platform aimed at micro-blogging, written in Elixir and Vue, using PostgreSQL. I implemented new features and bug fixes, provided support through the support chat, and improved documentation.

  • I implemented a role-based permission system to set fine grained options to what mods and admins can do.
  • I implemented portable image descriptions by reading the proper media EXIF data and propose this in the front-end as alt text during media upload.

Akkoma

Developer, 2022 - 2025

Akkoma is a fork of Pleroma who grew out of the Pleroma community, generally doing more focussed improvements and feature development. I implemented new features and bug fixes, and provided support through the support chat and forum, and improved documentation.

  • My most notable work was reworking communication of a custom markup language, called MFM, between servers. This work included collaboration with other projects, writing a formal specification, writing a custom parser as a reusable library, and making changes both to the Vue front-end and Elixir back-end.
  • Notable organisations who use Akkoma include Erlang Solutions and the Linux Foundation.

Neutrinet

Developer, 2019 - 2020

Neutrinet is a Belgian, associative internet provider. It's most notable product is the Internet Cube, a simple plug-and-play server for self-hosting, build using a single board computer running the YunoHost operating system and a VPN who provides fixed IP addresses to the Cube when connected to the internet.

  • After learning how time-intensive the installation of Internet Cubes was, I decided to lead a project to automate most of the manual tasks, allowing more parallel installations, increasing installation speed, while leaving more free time during big parts of the setup.
  • During the same time I also led bringing an old package, mostly aimed at renewing the VPN certificates, up to date to new standards, including the move from Python 2 to Python 3.

Other projects

Linux Living

Co-founder, 2020 - 2024

Linux Living was part of Ecoliving, located in the Langestraat in Bruges, open for people interested in doing social projects. Linux Living was a place where people interested in IT, and the broader collaborative nature that comes with it, could come to talk and tinker. It mostly provided a relaxed environment where people could share projects and ideas, or just talk with like-minded people. As part of this project, we also supplied some IT services to Ecoliving, like making sure there was working wifi, and computers volunteers could use for digitally signing required paper work.

Belgian Pirate Party

Member of the IT squad, 2016 - 2019

The Belgian Pirate Party is a loose coalition of people who feel strongly about the possibilities tech can bring for democracy, and want to actively involve themselves in the political landscape to push these ideas forward.

  • My most notable work was finding a good way to set up our IT stack in a way that would keep a common name, while delegating power and responsibilities to local groups who do not necessarily have members with strong sysadmin skills. I wrote a high level overview of this setup on my blog in a way that other organisations with a similar structure can use.

Vocational experience

Liantis

Application Support, 2017 - current

As application support, I am the first contact regarding problems who need a more technical analysis. It requires translating end-users' problems into reproducible steps, and using a general understanding of the architecture and technology to figure out where problems may occur and find both short term as well as more fundamental long term solutions. It requires communicating technical concepts in a non-technical way, as well as properly and structurally communicating with operations and development when more specific knowledge or action is required. It also requires going through logs, databases, LDAP, and so on.

  • After a reorganisation, I helped in bringing documentation from different support teams together to one platform. This meant figuring out a good design for how we want to build the documentation in the future, and make sure that growing this documentation goes easily.
  • I helped set up a new way of working to unify the different teams who used a variety of tools and processes.
  • I brought in knowledge of scripting in both Bash and Python to automate certain tasks, either recurring, or to help in trouble shooting.

Education

Java enterprise edition

VDAB opleidingscentrum, 2016 - 2017

This was a course at the VDAB job placement agency, aimed at getting a solid base to be able to start as an enterprise developer. The course had modules for Information Basics, Java Basics, GIT, UML, Design patterns, JDBC, HTML/CSS, XML, JSP/Servlets, Maven, JUnit, JPA with Hibernate and Spring.

Mathematics

KU Leuven-KULAK, 2015 - 2017

I started this out of interest in self-study, and later also followed some courses on location. This is where I first came into contact with Free and Open Source Software, which eventually drew me in the direction of IT. Credits I finished where mostly from the first year, as I stopped giving this priority when I focussed my attention to IT. Finished credits include Mathematical Reasoning, Mathematical Analysis, Philosophy, Linear Algebra and Programming Basics.

B1 Elektronics

VTI Brugge, 2006 - 2009

This is an equivalent to bachelors degree I did through evening school. The course contained basics of electronics, and analogue and digital techniques, and was mostly aimed at automation. This also included working with micro-controllers we programmed using 8051 ASM.

Personal journey

As a kid I was often tinkering with electrical and electronic devices, which led me to start my career as a technician primarily trouble shooting and fixing CNC machines, or improving their designs. While working, I decided to expand my knowledge of electronics by doing a bachelors electronics through evening school. When revalidating after surgery, I decided to use the time to study mathematics at the university KU Leuven where I first came into contact with the Open Source movement. Not able to continue my job, I decided to do a Java programming course through the job placement agency and joined the IT squad of the Belgian Pirate Party to build up experience. I landed a role in IT as a second line support engineer, focussing on the more technical side of problems and making bug reports and proposing improvements. Meanwhile, I continued to work for various Open Source projects and organisations in my free time. In 2018 I started working for Pleroma, a federated social network platform, where I got the role of developer. I also have some personal projects where I learn by playing with different technologies and concepts, and I've been self hosting several services since 2018. These experiences have left me wanting to go deeper into software engineering professionally. You are here :)

Hobbies & interests