Hi, I'm Pep Llaneras
This is my curriculum vitae. I’m a software developer living in Brussels, Belgium. I’ve been working professionally on software development since 2007. I have a master degree in Computer Science and I’m passionate about open source and free software (free as in freedom, not free as in “free beer”).
You can have a look below for more details and feel free to contact me if you’re interested in my profile.
Experience
Software Consultant @ Proton VPN
Rewriting the Linux app for Proton VPN.
Proton VPN is one of the leading VPN providers. Our main focus is on privacy, security and speed.
As a software consultant, I’m leading the development of the v4 Linux app for Proton VPN.
The v4 app is already used in production. We went from around 4K daily users with the v3 app to currently (data from March 2024) around 22K daily users with the v4 app.
The goal when I joined was to do a full rewrite of the v3 app used to connect to any of the thousands of VPN servers distributed around the globe. The main focus when writing the v4 app was its modular design to allows us replacing/swapping its building blocks easily and safely, and to test them independently.
The full VPN client is written in Python, and the front-end is based on GTK. The VPN connection backends rely on NetworkManager due to its ubiquity in most linux distributions.
The main challenge of the project is having to support the wide variety of Linux distributions that people is using, which required us to invest heavily on automated testing in environments built with Docker and launched via GitLab CI.
Technologies that I’m currently using at Proton are for example: Python, Gtk, NetworkManager, OpenVPN, Wireguard, systemd, GitLab, Debian/Ubuntu and Fedora.
Software Consultant @ Ion Beam Applications
Python development for Proton Therapy R&D.
Ion Beam Applications (IBA) is an international company providing Proton Therapy Systems (PTS) to treat cancer.
As a software consultant, I’m currently working mainly as a solo developer, in collaboration with the hardware teams, building software for PTS R&D projects.
The goal of the first project on which I worked was to gather raw signal data from the PTS cyclotron, process it, run different analysis, an publish the results to Splunk, for monitoring and data analysis purposes. This project was developed with Python. The main challenge was the amount of data to process. For that, I used different Python processes using the multiprocessing Python module and shared memory for IPC, and to avoid duplication of data in RAM. I used docker and systemd to deploy and run the software.
Another project I also briefly worked on is a Qt Python desktop application to characterize radio frequency signals. The goal of the project is to develop a solution to calibrate PTS systems during installation/maintenance in an automated way.
Technologies that I’m currently using at IBA are for example: Python, Qt, systemd, Numpy, Pandas, CherrPy, Splunk, PostgreSQL, Docker, Java, Spring and Ubuntu.
Software Consultant @ ENGIE Laborelec
Python development for Street Lighting R&D.
Laborelec is a Belgian research centre owned by ENGIE, a French multinational utility company.
As a software consultant, I was in charge of building software for several R&D projects run by the Street Lighting department of Laborelec. In this mission, I worked mainly as a solo developer, rather than in a team.
The first project on which I worked was code-named LightBox. For this project I shipped a desktop application, developed in Python and Qt, to make quality controls on batches of street lighting lamps bought by ENGIE.
Another project was the Street Lighting Inventory. In this project I delivered a GIS application to gather and process geolocalization and spectral data from street lighting in urban areas and inter-city roads. The application was based on QGIS. Raw data was loaded to a PostgreSQL database with bash scripts and the data processing was done with stored procedures and the PostGIS database extension.
Some technologies I used while working at Laborelec were: Python, Qt, Flask, pytest, pyinstaller, Git, Bash, Elastic Search, Kafka, Docker, Postgres, PostGIS and Ubuntu.
Software Consultant @ AGC Glass
Setting up a software factory for AGC Glass.
As a software consultant, I led a team of 5 people to set up a a software factory for Glass division of the AGC group, one of the worldwide leaders in glass production and manufacturing.
We set up a continuous integration pipeline with GitLab integrated with Jira, and worked on a proof-of-concept project to demonstrate a typical Agile workflow. We set up a Kanban board on Jira to define user stories, derive tasks from them, and automatically open Gitlab merge requests. Code pushed to the Git repository would be tested against a set of unit and integration tests. It was also scanned with static analysis tools like Sonar, application versioning was also automated with Gitlab and binaries were stored in a binary repository.
Regarding the proof-of-concept project to show case the software factory, we shipped a templatable CRUD web application and a Java backend supporting different databases (PostgreSQL, MySQL, Oracle and SQL Server) as the storage layer.
The technology stack we used was Spring (Java) and Docker on the back-end. The front-end application was developed with vanilla ES6 Javascript and bundled with webpack and NPM.
DevOps Engineer @ ING Belgium
Building the Home'Bank private website for retail customers.
ING Belgium is the Belgian subsidiary of the ING Group, an international banking company.
My team was in charge of revamping Home’Bank, the retail customer website, using newer technologies. We used Agile practices, like the Scrum methodology, continuous delivery, pair programming, code reviews, etc. I worked on the home page of the Home’Bank website where the customers can check the status of their accounts. I also worked on the Investments and User Settings web applications.
Even though I often had the role of lead/facilitator in the team, my primary role was to create the necessary REST APIs that integrate with multiple back-end services, cache the data when possible, and serve it in a convenient format to front-end applications running in the web browser.
The back-end stack I implemented was Java-based, following a microservice-style architecture. We also used Kafka as the event bus for some back-ends, and Cassandra mainly as a caching layer.
Full Stack Developer @ European Schoolnet
Building software to support the network of European Ministries of Education.
European Schoolnet is a network of 31 European Ministries of Education. As a non-profit organization, it aims to bring innovation in teaching and learning to its key stakeholders: Ministries of Education, schools, teachers, researchers and industry partners.
I was part of a small technical team of 5 people dedicated to support the other teams in the organization, composed of about 80 people. We created and maintained the necessary web applications that enabled us to, not only sustain the network of European Ministries of Education, but also to develop websites and web applications for the European Commission and some industry partners.
As an example, I built web applications for the eTwinning online platform, so that teachers in different countries can organize online collaboration events.
I worked both as front-end and back-end web developer. The back-end stack was Java-based using Servlets/EJBs, often using Oracle or MySQL for storage. The front-end was implemented with plain web technologies.
Full Stack Developer @ 3digits
Building software for the public administration.
3digits focused primarily on developing software projects for the public administration of the Balearic Islands (Spain), like intranet applications and online citizen services. However, I also worked on projects for international companies like Hotelbeds and for smaller local companies as well (e.g. online shops).
During my job at 3digits I worked on a wide range of projects covering all the phases of the software life cycle: planning, implementation, testing, documentation, deployment and maintenance.
Back then, one of my favourire projects was to open source IBKey-Device-Manager, a Java library to abstract away the access to digital certificates contained in different device types and the generation and verification of digital signatures used in web applications we developed for the public administration.
The stack I worked with was Java-based. I also maintained Oracle Forms/Reports applications and did lots of database programming in Oracle and MySQL.
University studies
Master's degree in Computer Science
Languages
- I speak and write fluently in English, Catalan and Spanish
- I have a basic level of written and spoken French and Dutch