Every quarter Leaseweb employees come together to participate in a 48-hour, anything goes intellectual free-for-all: the Leaseweb Hackathon. While the hackathons of years past included drinks, an office lock-in, and the occasional laser tag game, our most recent events are as 2021 as you can imagine: conducted from home, with dedicated messaging channels firing throughout the night and final presentations done via Zoom.
However, the digitalization of our hackathon has in no way hindered the creativity of participants and the success of their projects. Our second hackathon of 2021 was a jam-packed online event with projects ranging from monitoring to mobile app development, with some internal system improvements sprinkled in. We’re excited to give you an inside look into what went down during the 19th Leaseweb Hackathon, as told by our engineers themselves.
Projects, Participants & Solutions
Creating a centralized portal for Leaseweb Elastic Compute
Project owner: Wei Zhou, Principal Cloud Engineer
Motivation: Initially, there were several Elastic Compute and public cloud platforms in different entities that each had separate customer portals. (For example, this was the specific portal for Elastic Compute in the Netherlands). I wanted to create a centralized portal where we/customers can manage products on multiple platforms.
Implementation: In CloudStack 4.15 (which was released in January 2021), a new CloudStack UI was also released. Combining this with a change proposed by the Apache CloudStack community, we were able to change our settings at Leaseweb and successfully set up a centralized portal for some internal and testing platforms.
Solution: Our platforms use different domain suffixes (leaseweb.com, leaseweb.net, and leaseweb.cloud) and have different solutions for load balancers (haproxy-based and nginx-based). We resolved several issues with the settings of haproxy and nginx to support multiple domains with different suffixes, as well as to support CloudStack login sessions across platforms.
They work fine, and the centralized portal is now live. Hoera!
Dashboard creation for OAuth credentials
Project owner: Ryan Delport, Software Engineer III
Background: All customer and employee applications that are developed by all teams require OAuth authentication with our Internal Identity Provider (IDP). Each application requires an OAuth client which is created manually by our Developer Platform team using a CLI.
Problem: Teams push their applications to our staging environment for testing before features are deployed to production, and they often require updates to their OAuth client credentials. This results in multiple change requests to the Developer Platform team.
Solution: I created a small application using Golang that connects directly to the IDP data source with a simple CRUD system for adding/updating/removing OAuth clients. This will allow teams to manage their own credentials and alleviate the dependency on a specific team in order to develop/deploy their apps faster.
Visualizing attacks against a honeypot server in a live world map
Project owner: Rolph Haspers, Engineering Manager
The project: Visualizing data is always a nice way to understand it. In this project, we collected live data from a honeypot server and showed the point of origin of the attacks on a world map.
Inspiration: I did this project for my own enjoyment – it was fun to work on during the Hackathon, and I really like the visualization of data that came out of it as a result.
Creating a mobile app for customer tickets
Project owner: Farzan Najipour, Software Engineer II
Background: At Leaseweb, we already have the ability to support different communication channels for customers to contact us (via email, the Customer Portal, etc.).
Inspiration: I decided to create a mobile app for customer tickets because applications are usually about 1.5 times faster than mobile websites.
Solution: I created a minimal cross-platform (iOS, Android) ticketing application based on Nativescript to make everything more convenient for the customer. In the new app, the customer can easily log in and create a ticket, as well as monitor their past tickets and ticket statuses. In the future, we will also have the ability to use push notifications and instant updates about the tickets.
Creating a serverless function using OpenFaaS that parses raw emails to JSON
Project owner: Hans Rakers, Senior Infrastructure Engineer
Problem: The system that manages our abuse reports for the compliance team is using a very old and unmaintained PHP component that does this task currently. I wanted to see if I could build a dedicated service that can perform this translation faster and easier.
Solution: I created a serverless function using OpenFaaS that parses raw emails to JSON. Getting rid of the old components and replacing them with this service will allow us to upgrade the application to a newer version of PHP.
As a bonus, it also seems to perform much better!
Have ideas of your own to test during a Leaseweb Hackathon? Take a look at our open Engineering vacancies here – we’re hiring!