Technologies: Next.js, Typescript, Terraform, AWS, OIDC
Description: This is a Twitter clone implemented completely in Typescript, using Next.js in the frontend and Express in the backend. To login, I implemented SSO with OpenID Connect. The app data including profile information, tweets and images are stored in DynamoDB and S3. The whole infrastructure including load balancing and autoscaling is written in Terraform.
Technologies: C++, Intel SGX, CMake
Description: My bachelor thesis, a centralized lock manager component inside a Trusted Execution Environment to enforce a locking-based concurrency control scheme that is Byzantine fault-tolerant. It is envisioned to be used within TrustDBle, a DBMS based on Blockchain that can be used for shared access by multiple parties.
Technologies: C++, Intel SGX, CMake
Description: Intel SGX is a hardware-based security technology that allows applications to create secure enclaves to protect sensitive data from being accessed by unauthorized processes. This project demonstrates several fundamental usages of the Intel SGX SDK: Initializing and destroying an enclave, creating ECALLs or OCALLs and using ECDSA from SGXs cryptographic API to sign and verify messages sent to the enclave.
Technologies: Go, Kernel Programming, RabbitMQ, Docker Compose
Description: A malicious kernel module written in C collects the keystrokes typed in by the user and sends it to a server. A master node receives the keystrokes and inserts them into a message queue, from which worker nodes can insert it into the database.
Technologies: Go
Description: This small Go program is a command line utility to demonstrate ARP spoofing. ARP is a protocol that is used to map IP addresses to MAC addresses. In an ARP spoofing attack, the attacker sends fake ARP messages with the aim of associating their own MAC address with the IP address of another device on the network. An attacker can use it to perform a man-in-the-middle attack, intercepting network traffic between two devices and viewing or modifying the data being transmitted.
Technologies: Spring Boot, React, MySQL
Description: The game of Go is a two-player abstract strategy board game in which players aim to surround more territory than their opponent. Players can host games of different board size and duration and play against each other to increase their rating!
Technologies: OpenCV
Description: This solves the CAPTCHAS from the library https://www.npmjs.com/package/nodejs-captcha automatically with a CNN!
Technologies: Python, K8s, redis
Description: The NAS Scheduler project aims to combine the advancements of deep learning and cloud computing to accelerate the training process and manage the training of several models at a time, using Docker and Kubernetes to streamline resource scaling. The final architecture consists of a scheduler, progressor, worker cluster, and command-line client.
Technologies: Spring Boot, React, MySQL
Description: A quiz-app, where you can add your own questions and play against a simple question answering system that googles the question and chooses the answer with most apearances within the search results.
Technologies: Node.js, React, Postgres
Description: This web application is designed to retrieve weather forecast data (both daily and hourly) for selected cities from the openweathermap API.
Technologies: Javascript, Tensorflow.js
Description: This program trains a Convolutional Neural Network (CNN) on the MNIST dataset to be able to classify handwritten digits from 0 to 9. Metrics like loss and accuracy are modeled live during the training phase. Then, a confusion matrix is shown that explains how well the model performs on the different digits. Finally, the user can draw their own number on the screen and view the model’s prediction.
Technologies: Python, Selenium
Description: This project involves web scraping using selenium, enabling the user to fully automate their search for a flat on the German flat search site immobilienscout24 via a CLI interface. By inputting specific details such as maximum rent and minimum living space, the program continuously monitors the listings and automatically sends a pre-defined message to landlords if their offering meets the search criteria. However, the program is no longer functional with the latest version of immobilienscout24.
Technologies: Javascript, HTML, CSS
Description: The Traveling Salesman Problem can be stated as follows: Given a list of cities and the distances between each pair of cities, find the shortest possible route that visits each city exactly once and returns to the starting city. It is a classic example of a combinatorial optimization problem that is known to be NP-hard.
Technologies: Javascript, HTML, CSS
Description: You can play Tic-Tac-Toe with against an unbeatable AI! The AI is implemented using the Minimax algorithm. It works by recursively evaluating all possible moves and choosing the move that maximizes the player’s chances of winning, while minimizing the opponent’s chances of winning.
Technologies: Javascript, HTML, CSS
Description: Sudoku is a logic-based puzzle that involves filling a 9x9 grid with digits from 1 to 9, such that each row, column, and 3x3 subgrid contains all the digits exactly once. It can be solved programatically using an algorithmic technique called backtracking.
Technologies: Javascript, HTML, CSS
Description: The Tower of Hanoi is a classic programming puzzle that involves moving a stack of disks of different sizes from one peg to another, while no disk may be placed on top of a smaller disk. It is solved using recursion.
Technologies: Javascript, HTML, CSS
Description: This is an implementation and visualization of the Convex Hull Algorithm. The convex hull of a set of points is defined as the smallest convex polygon that contains all the points in the set. It has applications in collision detection and computer graphics.