👋 Hello! I'm Riccardo 'ace' H. I am a self-taught programmer and designer from Germany currently living in Switzerland.
I mostly focus on backend, functional or object-oriented programming. But from time to time I also do some frontend. My first priority in coding is that I never have to repeat myself, nor do things multiple times. I rather spend a little more time minimizing or automating those tasks than doing them by hand every time.
I currently work as a software and application engineer with a focus on optimizing department workflows. My goal is to automate and eliminate unnecessary steps while maintaining consistent standards to reduce integration time.
I started programming/scripting at the age of 12 and have been expanding my skills ever since.
In 2018, I jumped into Linux server administration and also delved deeper into mastering
automation. Since then I always try to get the best out of my code by optimizing it. I also tend
to keep everything, including my internal code, modular and prepared for the future.
A electron based multi-tool used for commissioning customer machines at work. Written in NodeJS, HTML5 and VanillaJS using Bootstrap for the visuals.
A reverse engineered api wrapper to include the machine selector, where you can select customer machines for remote support, right from inside my multi-tool. It's utilizing the tools plugin system to include this inside the tool.
A .NET Framework based desktop application that uses WinForms for the visuals and displays a list of customer machines and their corresponding programming projects. You can download the project directly to your local project directory and check for changes from within the program.
A .NET Framework based console application that synchronizes a projector with the current state of one of our machines that is displayed at several trade shows around the world. Uses the web server of the PLC controller to retrieve the current status of certain variables to synchronize the machining CAD animation with the actual machining on the machine.
A .NET Framework based desktop application that uses WinForms for the visuals and displays the torque of a tool spindle/axis.You can create/manage multiple program preset, learn configured units and create limits for the generated torque curve.
A WIP .NET Framework based desktop application that uses WinForms for the visuals and should at some point replace the electron based IBN-Tools as version 2. But currently in paused development.
A in HTML recoded plugin that is utilizing the tools plugin system to include the PLC Explorer inside the tool and displays a list of customer machines and their corresponding programming projects. You can download the project directly to your local project directory and check for changes from within the program.
A in HTML written plugin that is utilizing the tools plugin system to include a project specific hour tacker inside the tool and displays a list of working hours per day. You can define up to two work start and end times and therefore its automatically calculation the hours you worked this day. This plugin is designed to record the working times for clocking in at the customer's site or for field work where the user cannot use the time clock.
A versatile file-sharing web application built with Express and Handlebars, with the main goal of seamless file transfers between desktop and mobile devices without the need for cables or permanent storage. All data is stored in the host server's memory and automatically cleared when all users leave the room.
A simple and secure fastdl server written in NodeJS using Express that serves fastdl data to players connecting to the source engine game server, with the ability to only allow downloads from source game clients, without the need of a dedicated web server running on the game server.
A Discord bot and API server written with NodeJS, Discord.js and Express, that complements the GMOD server plugin by receiving player information. The bot automatically moves players to a designated game channel upon joining and mutes them when they die in-game. They are then automatically unmuted upon respawning. Players can benefit from the improved audio quality of Discord while still retaining the original game mechanics.
A simple GMOD server plugin written in plain lua that listens for ingame events like player death, spawn etc and sends them via http to a backend server to be passed on to a discord bot.
A user-friendly desktop application developed with C# and the .NET Framework utilizing WinForms, enabling users to seamlessly integrate their current CS:GO SurfTimer metrics and status updates into their Discord presence. This application introduces a modular system that allows users to tailor the displayed information and its presentation to their preferences.
An open-source SurfTimer plugin for CS:GO, based on the former ckSurf, written in the C++-based programming language SourcePawn by AlliedModders. I modified the original repository, which was no longer actively maintained, to suit the preferences of the former gaming community z4lab. This is the current foundation of the active SurfTimer repository in use.
A step chain implementation in NodeJS inspired by ST/SCL PLC programming. Written in NodeJS, without any dependencies, it aims to recreate the function of a step chain, commonly used for flow based programming in PLC controllers, within JavaScript. Based on intervals and timeouts, your code is repeated every "cycle" until a given value becomes true. As in PLC programming, you can define different steps and also jump around within them.
A Discord bot written in NodeJS and Discord.js that is actively storing presence data from all users on my private Discord server. It utilizes MariaDB for storage and handling requests. The bot posts and edits Discord embeds to a given channel showing the last 4 presence changes for each user.
A web application written in C# ASP.NET that is displaying and analyzing the data collected by the Status Tracker Discord bot. Featuring a global overview over all users, a discrete user page and also timeline with all recent events. The application also features a API that serves JSON data for given requests like user data or the timeline. This API can also be used to display stats on third party apps like Grafana.
A simple PaperMC server plugin, written in Java, that automatically adjusts the server's maximum player capacity to accommodate the current number of online players and a predefined slot gap.
A web application written in NodeJS and plain HTML/JS that is displaying and calculating the data collected by the GMOD TTT Stats server plugin. You can see various graphs and stats for all or a selected user of your choice. The application also features a API that serves JSON data fro a given request like user data or last database entries.
A simple GMOD server plugin written in plain lua that listens for ingame events like player death, spawn, damage etc and puts them into a MariaDB for further processing and displaying player specific stats and data.