A selected list of projects that I did or am involved in. Click an image to get a description of the project and the used technologies and skills. Please see my LinkedIn profile (link on the right sidebar) for details about my professional work.
Built a web app for a client to manage a digital printing workflow. The web app helps keep the overview of print jobs and allows the user to follow the progress from planning, printing, to production and shipment. This web app significantly decreases the manual steps (which is error-prone) to be performed by a user and therefore reduces the potential for errors. It has successfully helped to manage large amounts of print jobs during peak times.
Django is used to define a general model (data structure) for all data which is coming from various sources (XML, CSV, PDF, HTML). Individual small services/components are used to process these different sources. I did consider a microservice architecture but for the type of application it is overkill and would have unnecessarily increased the complexity. The services/components were developed separately and packaged as Python packages. Some are containerized while others are dependencies of (i.e., part of) the Django web app.
A central part is the ability to print a job directly from the web app on the production printer. This is accomplishment by integrating the printer via the industry standard JDF/JMF. JMF stands for Job Messaging Format and is a communication protocol based on XML over HTTP. JDF stands for Job Definition Format which describes the print ticket in XML for the production printer.
In this project I wrote unit tests from the beginning and have to say that has helped to increase the quality of the application. It has lead to only a few bugs that made it into production. I also used drone as the continuous integration server and for deployment to the staging environment.
- Backend: Python, Django, PostgreSQL
- Other: Docker, Unit Testing, CI/CD, Web/Document Scraping, Data Analysis (pandas), Git, Bash, XML, JSON, Network Printing via JDF/JMF
To run a user study which allows to gather feedback in an interactive way, I built a web application using Angular on the client-side and Node.js on the server-side. The feedback is for the result of an algorithm I designed, which extracts a concern (feature model and the corresponding API for each feature) of a software framework. The framework I mainly used is the Android SDK (specifically the notifications part).
I was part of a team (as the Lead Software Developer/Software Architect) working on TouchCORE, which is a multitouch-enabled tool for agile concern-oriented software design modeling aimed at developing scalable and reusable software design models.
Besides the main focus being on reuse, the tool also focuses on allowing to quickly and seamlessly build software design models. It provides a touch-based interface allowing to use multitouch gestures besides using the traditional keyboard and mouse. For example, I designed the sequence diagram editor that allows to define the behaviour for the given class diagram in a fast and intuitive way. At the end, the user can generate code for the design.
The backend is built with the Eclipse Modeling Framework (EMF) and the frontend with MT4j to provide the touch-based interface.
Skills/Technologies: Java, OOP, Eclipse Modeling Framework (EMF), XML, Code generation, JUnit, GUI, Git, Bitbucket (Issue Tracker, Pull Requests, Code Reviews, Wiki)
Dashboard for the epidemiological situation of the SARS-CoV-2 (coronavirus) pandemic in Montreal and Quebec.
Skills/Technologies: Python, pandas, Plotly, Dash, Git, Bash
More: Blog Post | Project on GitHub
Scraper for availability of SEPAQ camp sites. Makes it easier to find available camping spots across all SEPAQ parks.
Skills/Technologies: Python, Web Scraping
Read more: Blog Post
Simple helper script that allows to monitor docker containers to ensure they are running and healthy. The script only outputs anything in the opposite case (non-running or unhealthy). This allows it to be used for cronjobs etc.
Skills/Technologies: Python, Docker, Bash
A Tippspiel is a prediction game where the game results of (football) matches are predicted and varying points given based on the actual result. Starting in 2006, I have been running a Tippspiel every two years for each World Cup and European Championship where approximately 50 users participate for fun. Besides game results, there are also additional questions (for example, which will win the World Cup) allowing to earn bonus points.
The frontend is built with HTML5 and CSS3 and is responsive and supports Retina screens. In the screenshots, you can see how the layout and texts are adjusted for smaller screens and mobile devices while showing the same information.
The backend is built with PHP and MySQL running on an Apache server. The game data is retrieved from a web service (OpenLigaDB) using a REST API and (their older SOAP API) returning JSON. A script is executed periodically by a cron job to retrieve new match results and new fixtures (for the knockout phase).
Skills/Technologies: PHP, MySQL, SOAP/REST API (XML/JSON), HTML5, CSS3, Apache
University project using the Kinect to build a Fitts’ Law 3D application in a team of three (2011). Fitts’ Law shows how users perform the act of pointing (virtually) to an object on a screen using a pointing device (such as the mouse).
The goal was to build an application that allowed to gather measurements on how humans perform pointing in a three-dimensional space. The Kinect and application were installed/running on a screen showing a digital information board. A background application was managing the window management to switch from the information screen to the application using a dedicated gesture, and back to the screen after no input is detected by the Kinect for a certain time. The user can then play the game, as you can see below, and is then presented with their performance.
The Kinect backend was written in C++ making use of an (unofficial) Kinect SDK. The frontend was done with Unity, and written in C#, including its backend to store the results of each player in a SQLite database. The Kinect backend and frontend were connected using a Socket in order to receive the detected hand gestures and movements.
Skills/Technologies: C#, Unity, SQLite, C++, SVN
Built website for client with WordPress (2014). Retina and responsive support. Booking calendar and custom forms for visitor interaction. CSS customizations for improved appearance.
Recently, with the General Data Protection Regulation (GDPR)/Datenschutz-Grundverordnung (DSGVO) coming into effect in May 2018, customized the website to comply with the regulations and eliminate including external resources.
Skills: WordPress, Plugins, CSS, Photoshop
Fan Site for Max Payne
In 2002 I took charge of Max Payne Zone (MPZone), which was one of the biggest Max Payne fan sites and the biggest one for German speakers. I updated and improved it maintaining its original design and re-launched it in 2003, in time for the launch of Max Payne 2.
With a staff of 6 news posters, it provided extensive news coverage of the game and custom modifications (mods), game-related information (such as tips and walkthroughs), and an active discussion forum.
The amazing folks of Remedy Entertainment valued the efforts of the fan community and (with their publisher Rockstar Games) collaborated with us and three other big fan sites. We received news updates in advance, exclusive content and gear to be used for competitions. As a result, several competitions were held where users could win prizes.
Skills/Technologies: Apache, CSS, HTML, MySQL, PHP (frontend and custom-built backend for content management)