Selected work

Projects I can walk you through.

These are some of the projects I am most proud of. Each one started with something I wanted to understand better, so I built it, tested it, and wrote down what I learned.

01
LiveInfrastructure case study

Project Citadel

My home lab started with an old gaming laptop and a long list of things I wanted to learn.

Citadel now runs Nextcloud, a modded Minecraft server, my websites, and remote access through WireGuard. I use Docker and Caddy to keep the services organized, route traffic, and manage HTTPS.

Running it has taught me that getting a service online is only the beginning. I also have to handle backups, monitoring, DNS, updates, troubleshooting, security, and documentation without sharing anything sensitive.

What I learned

Linux administrationDocker + ComposeReverse proxyingDNS + HTTPSWireGuardSecurity hardeningDocumentation
citadel / services
01
NextcloudFiles + sharing
online
02
WireGuardPrivate access
secure
03
CaddyHTTPS + routing
active
04
ContainersService isolation
healthy
$ docker compose ps
02
Interactive machine learning

Web Perceptron

I made a small browser demo so people could see a perceptron make a prediction.

The project trains a simple perceptron in JavaScript to tell the difference between 5×5 drawings of an L and a T. It creates 120 slightly noisy training samples and updates the prediction as someone changes the grid.

Building it helped me connect the math behind weights and thresholds to front end code. It also made me think more carefully about how to explain machine learning without making it sound harder than it is.

What I learned

Perceptron logicBinary classificationTraining dataJavaScriptDOM interactionUI feedbackTechnical explanation
DRAW A LETTERPrediction: L
model confidence
03
Security demonstration

John the Ripper

I demonstrated John the Ripper to show what weak passwords look like from an attacker's point of view.

I used a controlled lab to explain how password hashes are audited, how wordlists and rules work, and why reused or predictable passwords can fail quickly.

I finished the presentation with practical advice: use long unique passphrases, modern salted password hashing, multi factor authentication, rate limiting, and only test systems you are authorized to test. Presenting it also helped me get more comfortable explaining a command line tool to people with different levels of experience.

What I learned

Password auditingHash formatsWordlists + rulesEthical boundariesCLI workflowLive demonstrationAudience communication
authorized-audit.sh

julian@lab:~$ john --wordlist=training.txt demo.hashes

Loaded 3 password hashes for demonstration

Press 'q' or Ctrl-C to abort, any other key for status

3g 0:00:00:02 DONE (2026-03-19)

julian@lab:~$ john --show demo.hashes

3 password hashes audited, 0 left

DEFENSIVE TAKEAWAYLength + uniqueness + MFA