Portfolio

Projects I've built

Security tools, automation scripts, and networking projects I build while learning and working. Each one links to its code — more get added as I ship them.

100 Days of Code

Daily practice log — small scripts building up core Python skills. Code for each day lives in the 100DaysOfCode repo.

Day 008 — Caesar Cipher

Python

A terminal Caesar cipher encoder/decoder: the user types a message and a shift amount, and the script encrypts or decrypts it by shifting each letter through the alphabet. Practicing custom functions with keyword arguments and the modulo operator to wrap around the alphabet.

Terminal demo of the Caesar Cipher tool encoding and decoding a message using a letter shift

Day 007 — Hangman

Python

A terminal Hangman game: the player guesses letters one at a time against a randomly chosen word, with ASCII art updating as lives run out. Split across multiple files (word list, ASCII art, and game logic), practicing lists, loops, and importing from other Python modules.

Terminal demo of the Hangman game, showing letters being guessed and the ASCII art updating as lives are lost

Day 006 — Maze Solver (Reeborg's World)

Python

A maze-solving robot built in Reeborg's World: the robot follows the right-hand wall, checking right_is_clear() and front_is_clear() before turning, to navigate to the goal. Practicing custom functions and while loops in Python.

Demo of a robot navigating a maze in Reeborg's World by following the right-hand wall until it reaches the goal

Day 005 — Password Generator

Python

A random password generator: the user picks how many letters, symbols, and numbers to include, and the script shuffles them into a password. Practicing lists, for loops, and the random module in Python.

Terminal demo of the Password Generator asking for the number of letters, symbols, and numbers, then printing the generated password

Day 004 — Rock, Paper, Scissors

Python

A terminal version of Rock, Paper, Scissors against the computer, with ASCII art for each choice. Practicing the random module for the computer's pick and comparing outcomes with nested if/elif conditions.

Terminal demo of Rock, Paper, Scissors showing the player's choice, the computer's random choice, and the result

Day 003 — Treasure Island Game

Python

A text-based adventure game in the terminal: the player's choices at each input() prompt branch through a nested tree of if/elif/else statements, leading to different endings — win the treasure, or meet one of a few unfortunate fates.

Terminal demo of the Treasure Island game, showing the player choosing paths at each prompt until reaching an ending

Day 002 — Tip Calculator

Python

A terminal script that splits a restaurant bill: it asks for the total, the tip percentage, and the number of people, then calculates how much each person owes. Practicing float()/int() type conversion and arithmetic with input() in Python.

Terminal demo of the Tip Calculator asking for the bill total, tip percentage, and number of people, then printing how much each person should pay

Day 001 — Band Name Generator

Python

A terminal script that asks for the city you grew up in and your pet's name, then combines them into a band name. First script practicing print() and input() in Python.

Terminal demo of the Band Name Generator asking for a city and a pet name, then printing the resulting band name