nRF52840 firmware written in C/C++ for converting any USB Keyboard to a BLE HID Keyboard Device using a MAX3421E USB Host Controller. Features include quick connections and device switching using Bluetooth Low Energy, battery status reporting and shortcuts to improve typing productivity on a 60% keyboard.GitHub
Built in Ruby on Rails this application provides a sensible JSON API for getting the current weather and forecast data for locations in Switzerland. The weather data is gathered from multiple sources and aggregated with the aim to provide high accuracy as well as a to increase amount of weather information.
Special care and consideration was put into caching to provide a quick response time even when time intesive operations are being performed (for example rendering of SVG radar images).
If you want to build a project with this API, contact me.
Small Node.js application that accesses the undocumented API of the Modem provided by Wingo (Internet Box) and exports DSL Sync metrics for consumption with Prometheus.GitHub
Small Home Assistant Integration which uses the Paperless-NG API to export interesting stats as a Home Assistant Sensor.GitHub
A React app and Python backend built at HackZurich 2021 with my team mates for the SRF challenge. The webapps aim is to offer a unique way of discovering news articles. For this purpose the backend uses AI techniques to generate interesting "topics" from raw article texts. The user can then select a topic he's interested in and browse all the articles that belong to that topic.Devpost ・ GitHub
Written in Node.js, this application acts as a HTTP reverse proxy and stops Docker containers which haven't been accessed recently and starts them again when a new request comes in. The aim is to save RAM by automatically stopping containers which are only used rarely.
To improve the user experience a loading page is presented, which automatically reloads when the containers webserver is ready.
This is the bachelor thesis of Cyril Wanner and myself and was created based on the preliminary work of the PA Real-Stereo project. This system uses multiple Raspberry-Pis with fisheye camera modules to detect and locate a person in a room. This location data is then used to balance multiple Sonos speakers in a way, where the perceived volume for the listener is the same at all positions in the room. The system can be controlled and calibrated with a React webapp which can be run on the smartphone or pc of the user. The backend has been rewritten in Python for better OpenCV performance on the Raspberry Pi.
More information can be found in the linked paper (mostly german).Paper ・ GitHub
This is the personal website created for my brother. It's built specifically for his needs using Next.js for a blazing fast frontend and Strapi for the custom CMS and API.TarasBerchtold.ch
This project was created together with Cyril Wanner for the ZHAW PA (project work) module and is the preliminary work for my bachelor thesis. This C# program for Windows detects and locates a person in a room using two webcams. This position data is then used to balance multiple speakers in a way, where the perceived volume for the listener is the same at all positions in the room. The calibration for a room is achieved by combining the positioning data with the perceived volume of a testtone, which is measured using a microphone. More information can be found in the linked paper (mostly german).Paper ・ GitHub
A React Native app and REST API built at HackZurich 2020 with my teammates, which reached the finalist stage (and somehow won the Siemens Smart Infrastructure workshop on Devpost for a few weeks ¯\_(ツ)_/¯).
The app uses Migros APIs to allow scanning barcodes of products. Product details as well as the CO2 amount in grams, using the Eaternity API is displayed. This way the consumer can make an educated decision on which products to buy to reduce his own environmental impact. There is also a map where the average CO2 amount is displayed per municipal is displayed, thus incentivising some competition in reducing the environmental impact using the "Kantönligeist" of the swiss population.
Browser based, multiplayer card game with animals as the heroes. Also contains a computer opponent of varying difficulty. Realized with React, Socket.io, Mongoose, TypeScript & Node.js. Created in a team for the PSIT3 course and continued and improved in the PSIT4 course at Zurich University of Applied Sciences (ZHAW).Play Online ・ Architecture Documentation PSIT3 ・ Project Vision PSIT4 ・ Technical Report PSIT4
This website in it's current iterration. This time using the Bolt CMS. Design and graphics all by me.GitHub
Cordova plugin that allows passing native stylus touch events to the webapp. Currently only supports the Android platform.GitHub
Created for AdventureRooms Basel. A complete signage system based on MQTT to display adventure room clues, the countdown timer and play sound effects & music.
- Completly configuration free client software that searches for the backend on it's own. To be run on embedded systems connected to the signage screens.
- A dashboard software, to easily control all screens and check what each screen is currently playing or displaying, and present video / text clues and sound effects
- Simple backend server software that enables easily adding and organizing clue media by the way of directory structure.
A project for AdventureRooms Oftringen. Combination of a small C# program that interacts with an external hardware fingerprint scanner and a webapp that displays a thematically matching interface and provides the next steps to solve the puzzle.GitHub ・ AdventureRooms Oftringen
Node-RED node that enables workflows which should be triggered based on incoming SNMP Traps.GitHub
A Node-RED node that scrapes swiss weather data from Meteoblue.GitHub
Created with a group of other students at my senior high school (NKSA) to recognize handwritten digits using a dl4j neural network.GitHub
This was built for my matura paper. The aim was to code and build a quadrocopter from scratch that is entirely controlled by an Arduino which talks to the Afro ESCs. In addition the MPU-9150 was used for 9-axis motion tracking.GitHub
Crudely programmed PHP website for creating and displaying map strategies for the video game CS:GO. Users could sign up, draw their strategies and write descriptions.
PHP application using a MySQL database. Was created while in secondary school to manage grades for all school subjects and automatically calculate the average according to the school regulations.
My love for technology has led me to create and work on a lot of different projects. After finishing senior high school I worked for a year as an IT intern for the canton of Aargau writing software to monitor the status of multiple systems and refactoring several old applications.
I finished my Bachelor of Science ZFH in Computer Science in July 2021 at the Zurich University of Applied Sciences (ZHAW).
After I finished my Zivildienst in 2022, I started my first Job at Sitrox and am now working full time as a Software Engineer.
Created with Bolt