Luis Wollenschneider

Security, Caches, Microcode / Student / Tennis & Pickleball coach / Kiwanis member

scroll

[S-01] — About

I study Cybersecurity at Saarland University and work as a research assistant (HiWi) in the RootSec group at CISPA, focused on low-level CPU security — privilege boundaries, microarchitectural attacks, and defenses.

Off the keyboard I play / coach Tennis or Pickleball, volunteer with / am a member of the Kiwanis Club Saarbrücken to support children's aid projects. Or practice Cardistry.

[P-01]

Rally Room

Drill library for Tennis, Beach Tennis, Pickleball, and Padel — with a visual court diagram editor.

2026 · shipped
  • HTML
  • JS
  • Node.js

Overview

Rally Room is a drill library for racket sports. Coaches and players browse exercises by sport, filter by skill level, can set a focus on what to train, and see each drill illustrated with a court diagram.

How it's built

Content lives in Markdown files with YAML frontmatter. A Node.js build script converts them into per-sport data.json files and injects them into shared HTML templates. The frontend is vanilla JS, served as static assets, hosted on GitHub Pages.

The court diagrams are SVGs generated at runtime from player positions, movement arrows, zones, and markers stored in the frontmatter. A drag-and-drop editor directly generates the Diagram-YAML, as well as all other parts of the exercise content.

↑ back to index

[P-02]

Americano

Round-robin tournament scheduler for Padel, Tennis, and Pickleball — runs offline in the browser, no install needed.

2026 · shipped
  • HTML
  • CSS
  • JS

Overview

Americano generates round-robin match schedules for small tournaments. Players can be grouped into fixed teams or rotated every round. You can track scores and standings, and with the in-play mode, it automatically shows which match-ups can start as soon as courts and players are available.

Modes

Singles pairs individuals each round using the circle method. Teams keeps fixed partnerships throughout. Mixer rotates partners every round so everyone plays with and against everyone else.

How it's built

A single HTML file with inline CSS and JS – no build step, no dependencies. The scheduling logic implements the standard circle algorithm with extra heuristics to minimize repeated byes and repeated team pairings across rounds. Scores feed a live standings table ranked by points (Win = 3, Draw = 1, Loss = 0), with goal difference as the tiebreaker.

The in-play mode watches for free courts and absent players, then auto-starts the next match as soon as a slot opens — useful for keeping a session moving without a dedicated organizer.

↑ back to index

[P-03]

StickyCounter

macOS counter app with floating always-on-top windows. Track anything related to running numbers, and organize with folders, to never lose count again.

2026 · shipped
  • Swift
  • SwiftUI
  • macOS

Overview

StickyCounter keeps counts for anything you need to track while you work — reps, inventory, events, scores. To streamline counting, counters can float over all other windows, and when increased, or decreased, they don't steal focus from whatever you're doing.

Keep working, and just tap the buttons whenever you need to update the count.

Bugs produced today 142

How it's built

It is a native macOS app built with Swift and SwiftUI. With small animations and a clean interface, for a delightful user experience.

↑ back to index

[P-04]

KASLD

A framework and collection of KASLR breaks for Linux, with support for multiple architectures and benchmarking.

2023 · private
  • C++
  • ASM
  • Python

Overview

KASLD is a framework and collection of KASLR breaks for Linux, with support for multiple architectures and benchmarking.

How it's built

The project is implemented in C++ and assembly, with Python scripts for evaluation of traces. It includes multiple KASLR break techniques, such as timing-based and cache-based methods, and supports both x86_64 and ARM64 architectures.

KASLR Breaks

↑ back to index