Riccardo H.

ace xace37 13ace37

Software & Application Engineer

Location: Solothurn, Switzerland

Uptime:

Workplace: K.R. Pfiffner AG


About me

👋 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.

Current Stack

Languages

"Frameworks"

Programs / DevOps

Operation Systems

Work Projects

IBN-Tools

A electron based multi-tool used for commissioning customer machines at work. Written in NodeJS, HTML5 and VanillaJS using Bootstrap for the visuals.

Teleservice Wrapper

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.

Project Explorer

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.

Messe Video Sync

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.

Private Projects

otter share

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.

Express FastDL

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.

GMOD TTT Automute

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.

GMOD TTT Automute

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.

SurfTimer RPC GUI

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.

SurfTimer

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.

stepchain.js

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.

Status Tracker

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.

Status Tracker Web

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.

Dynamic Slots

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.