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.
[S-02] — Some Projects
A gallery of things I’ve built.
A selection of projects I’ve worked on, spanning research, open source, and personal stuff.
Rally Room
Drill library for Tennis, Beach Tennis, Pickleball, and Padel — with a visual court diagram editor.
Americano
Round-robin tournament scheduler for Padel, Tennis, and Pickleball — runs offline in the browser, no install needed.
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.
KASLD
A framework and collection of KASLR breaks for Linux, with support for multiple architectures and benchmarking.
[P-01]
Rally Room
Drill library for Tennis, Beach Tennis, Pickleball, and Padel — with a visual court diagram editor.
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.
[P-02]
Americano
Round-robin tournament scheduler for Padel, Tennis, and Pickleball — runs offline in the browser, no install needed.
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.
[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.
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.
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.
[P-04]
KASLD
A framework and collection of KASLR breaks for Linux, with support for multiple architectures and benchmarking.
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.



