Projects

Fifty-seven things I have built & shipped

Most of these started as a question I could not answer, or a task I was tired of doing by hand. Security work comes first, then the machine learning & agent work I do both at SQL VIEW & on my own time, then the tooling & coursework that taught me how the pieces fit together. Every entry links to the source.

Live GitHub Activity & Contribution Metrics
GitHub Streak
Snake animation

har-sanitize

0

Strip authorization tokens, cookies, API keys and personal data out of HTTP Archive captures before attaching them to bug reports or sharing them for triage. Built to ensure raw browser debugging logs do not leak active session credentials.

Security Python HAR Privacy

View source

docstring-guard

0

Find Python docstrings across a codebase and rewrite them as hash comments at the same indentation level. Built for workflows that prefer comments placed above code blocks rather than docstrings sitting below function and class signatures.

Systems Python AST Linting

View source

pool-odds

0

Compute exact probability distributions for complex dice pools including keep highest, keep lowest, advantage and exploding dice. Built with rational fraction arithmetic instead of simulation so table game mechanics can be evaluated without random seed variance.

Systems Python Probability Math

View source

md-anchor-lint

0

Scan Markdown documentation trees for broken relative file paths and broken header fragment links. Built to catch documentation rot where renaming a header breaks deep links into the page without failing standard build steps.

Systems Python Markdown Linting

View source

glyph-audit

0

Report invisible, reordering and confusable characters in text files to ensure text displayed on screen matches underlying content. Built to detect homoglyphs, zero width spaces and direction overrides before files are processed or executed.

Security Python Unicode Forensics

View source

url-redirect-tracer

0

Trace HTTP redirect chains hop by hop and flag protocol downgrades, infinite loops and cross domain jumps. Built for web forensics, security audits and link hygiene checks where understanding intermediate hops prevents phishing and open redirect vulnerabilities.

Security Python HTTP Web

View source

env-audit

1

Scans source code against reference environment files to detect undocumented reads, unused configuration keys and exposed environment files before deployment. Built to catch missing configuration variables before services fail at import time.

Systems Python Environment DevOps auditclicode-qualityconfigurationdotenvenvironment-variableslintersecrets-managementstatic-analysis

View source

ignore-drift

1

Reports files that git continues to track even after matching a gitignore rule. Built to uncover hidden tracked secrets, build artifacts and editor junk that linger in repositories despite exclusion patterns.

Systems Python Git DevOps clicode-qualitygitignorelinterrepository-hygienesecuritystatic-analysisversion-controltracked-files

View source

mftparse-cpp

1

C++20 port of NTFS MFT parser that reads raw $MFT dumps and extracts standard information and file name timestamps with high performance memory mapping. Built for fast digital forensics analysis with byte-identical output to Python tooling.

Security C++20 Forensics NTFS cppcpp20dfirdigital-forensicsfile-systemmftparsertimelinetimestampswindows

View source

cron-lint

1

Checks crontab schedule files for syntax errors, reversed ranges, impossible calendar dates and conflicting schedule restrictions before deployment. Built to catch silent failures and misconfigured automation jobs before they quietly drop or misfire.

Systems Python Cron Automation clicrontabdevopslinterlinuxscheduleschedulingstatic-analysissysadminvalidation

View source

mcp-config-audit

1

Audits Model Context Protocol configuration files for risky settings, unpinned packages and unauthorized shell wrappers. Built to verify agent permissions before granting local execution access.

Security Python MCP Auditing ai-agentsauditcliconfigurationcredential-scanningdevsecopsmodel-context-protocolshellstatic-analysis

View source

sift-agent

1

Investigates Windows memory images using read-only Volatility plugins driven by a language model, with every claim verified against raw tool output logs. Built to combine forensic analysis with automated verification.

AI & ML Python Forensics Gemini ai-agentsclaim-verificationdfirincident-responsellm-agentmemory-forensicsread-onlyvolatilityvolatility3

View source

sqlite-carve

1

Recovers deleted rows and leftover text fragments directly from SQLite database files without relying on database engine recovery functions. Built for low-level data recovery and forensic artifact extraction.

Security Python Forensics SQLite

View source

workflow-pin-audit

1

Scans GitHub Actions workflow files for mutable action tags, unpinned container digests and excessive token permissions. Built to harden CI/CD pipelines against supply chain compromise.

Security Python CI/CD Supply chain auditci-cdcontainer-securitydevsecopsgithub-actionspinningstatic-analysissupply-chain-securityworkflowsyaml

View source

wyn-cmd

1

Personal profile repository hosting GitHub configuration entry points, contribution widgets and profile metadata. Built as the central hub for public repository management.

Systems GitHub Config

View source

Security & forensics

evtx-triage

1

Reads Windows event logs straight out of their binary form, checks structural integrity, parses every record, & runs detection rules without needing any heavy framework or live Windows host. Built to inspect forensic evidence safely using only the Python standard library.

Security Python Forensics EVTX dfirevent-logincident-responsemitre-attackwindows

View source

incident-timeline

1

Correlates network packet triage outputs with host authentication logs by IP address to unify scattered forensic artifacts into a single chronological view. Built to connect what happened on the wire with what happened on the login prompt.

Security Python Incident response Analysis auth-logclicorrelationdfirforensicsincident-responseinvestigationpcapreportingthreat-huntingtimeline

View source

port-sentinel

1

A high-performance network connection anomaly detector & triage tool that audits listening sockets & flags suspicious or unexpected port activity. Built in C++ to provide fast telemetry analysis without heavy external dependencies.

Security C++ Networking IDS anomaly-detectionblue-teamcliconnectionscppcpp20high-performanceintrusion-detectionnetwork-monitoringnetwork-securitytriage

View source

pyvault

4

An AES-256 file encryptor that asks for two separate passwords before it will open anything, so a single leaked secret is not enough to walk away with the contents. Built to understand key derivation & why one factor is rarely the right number.

Security Python AES-256 Key derivation file-encryption-pythonpython-file-encryptionfile-encryptionfile-encryptor

View source

senitel

3

A secure AES-256 vault in Python where the key handling is kept simple enough to read end to end & audit. The point was a vault I could explain line by line rather than one that leaned on a library for everything.

Security Python AES-256 python3file-encryption-pythonfile-encryptorclicryptographyencryptionpassword-based-encryptionsecure-storagevault

View source

authlog-sessions

Reads Linux authentication logs & rebuilds the sequence of events behind them: which addresses tried, which one succeeded, & what ran afterwards. Reconstructing the story is usually slower than noticing the alert, so this automates the slow part.

Forensics Python Log analysis Threat hunting auth-logauthenticationbrute-forceclidfirincident-responselinux-securitylog-analysissessionsssh

View source

net-pulse

Watches active network connections in real time, resolves the process behind each one, & writes a structured JSON event the first time a connection appears. Small enough to leave running on a laptop.

Security Python psutil Monitoring alertinganomaly-detectionblue-teamcliconnection-monitordfirlinuxnetwork-monitoringnetwork-security

View source

GuardAIn

A lightweight intrusion detection system for Linux that analyses live network traffic, pairing anomaly detection with behavioural rules so it can flag what looks wrong even when it does not match a known signature.

Security Python IDS Anomaly detection aianomaly-detectionbehavioral-analysisintrusion-detectionlinuxmachine-learningnetwork-monitoringnetwork-securitytraffic-analysis

View source

Honeypotplusplus

An SSH deception system built on Python & Paramiko that safely captures attacker credentials, commands & behaviour. Written for SOC & DFIR labs that want to study real attack techniques without putting production systems anywhere near the blast radius.

Security Paramiko Deception DFIR

View source

LLM-SSH-Honeypot

1

Puts a language model behind the shell prompt of an SSH honeypot, so an attacker gets a plausible back & forth instead of a scripted response, while every command & reply is recorded for later analysis.

Security LLM Honeypot ssh-server

View source

Incident-Narrator

Parses a PCAP file & writes a human-readable report of what happened on the wire, aimed at the people who need the conclusion rather than four thousand lines of packet detail.

Forensics Python PCAP Reporting

View source

NTFS-MFT-parser

An attempt at parsing MFT records directly out of an NTFS volume, which is where file creation, modification & deletion timestamps actually live & where a lot of timeline work begins.

Forensics Python NTFS Timeline dfirdigital-forensicsfile-systemmftmft-parserparserwindowssector-fixup

View source

pyAesBrute

A password brute forcer for AesCrypt & pyAesCrypt containers. The interesting part was never the speed, it was learning what makes a passphrase guessable & how much that costs an attacker per guess.

Offensive Python Password cracking pyaescrypt

View source

prime-keys

1

Builds a large base64 encoded key out of two large primes, with control over the seed needed to regenerate it. A hands-on look at why the randomness underneath a key matters as much as its length.

Cryptography Python Primes

View source

corrupter

A proof of concept that slowly reads & corrupts files on a system. Useful for studying how corruption spreads, what it looks like at the file system level, & how detection might catch it early.

Security Python File systems

View source

logsentinel

Scans system, authentication & application logs for the shapes that usually mean something is wrong: brute-force runs, error spikes, & behaviour that sits outside the normal pattern for a host. It reads the files it is pointed at & needs nothing installed first, so it runs on the machine where the logs already are.

Forensics Python Log analysis Anomaly detection anomaly-detectionblue-teamclidfirincident-responselog-analysislog-anomaly-detectionlogssecuritysyslogtriage

View source

dirguard

Hashes every file under a directory into a JSON manifest, then re-checks that tree later & reports exactly what was modified, added, removed or merely touched. Built for config folders & web roots, where the first useful question after a suspected change is which file moved rather than whether one did.

Security Python Integrity Hashing checksumclidevopsfile-integrityfile-monitoringintegrity-checkermanifestsha256zero-dependencies

View source

agent-skill-audit

Reads an agent skill folder or an MCP configuration tree & reports the capability grants worth arguing about: shell & destructive commands, network calls, credential reads, writes outside the workspace, unpinned launch commands, & text that tells the agent to disregard its instructions. It answers what an agent could do if nobody checked.

Security Python AI agents Static analysis

View source

agent-residue

Inventories what AI coding agents leave on a machine: full session transcripts, prompt history, cached indexes, & in several cases the API keys they authenticate with. That state survives an uninstall & gets swept into backups, so the tool exists to answer what is still sitting on the disk after the agent is gone.

Forensics Python DFIR Credential scanning ai-agentsclicredential-scanningsecurity

View source

pcap-triage

Reads a packet capture & prints a short report: who talked to whom, over which protocols, which names were asked for, & the handful of things worth a second look. It is aimed at the first ten minutes with a capture you did not take yourself, before opening a full protocol analyser on it.

Forensics Python Network analysis PCAP clidfirincident-responsenetwork-forensicsnetwork-securitypacket-capturepcap-analysistraffic-analysistriagewireshark

View source

AI & machine learning

miso-chat

1

Multi-account roleplay chat application featuring both a terminal interface and a web backend for interacting with language models. Built to manage chat histories, memory banks, persona choices, and administrative controls across local deployments.

AI & ML Python FastAPI Roleplay roleplay-airoleplay-managerai-characterschatbotgroup-chatllmmulti-userself-hostedweb-appai-roleplayai-roleplay-chat

View source

character-forge

1

A terminal roleplay engine for the Gemini API with folder-per-character personas, memory banks, group chats & free-tier budget tracking, so a long session does not quietly run into a quota wall.

AI / ML Python Gemini API LLM ai-characterschatbotcligemini-apigroup-chatmemory-bankroleplayroleplay-aiterminaltext-generation

View source

rag-from-scratch

A retrieval augmented generation pipeline with nothing hidden behind a framework: chunking, embeddings, cosine similarity search & prompt assembly each sit behind a small swappable interface, so you can see where retrieval quality is actually lost.

AI / ML Python Embeddings RAG chunkingcosine-similarityeducationfrom-scratchinformation-retrievalllmnlpretrieval-augmented-generationvector-search

View source

AITT-Assignment

Log-based behavioural anomaly detection on the HDFS dataset, built for an AI tools & techniques module. Decision tree classifiers compared against each other with precision, recall & F1 as the yardstick.

AI / ML Jupyter scikit-learn Anomaly detection

View source

To-Orpheus-Or-Not

Trains a model on a set of images & learns to sort them into classes, written as an exercise in the full training loop rather than a single library call: loading, splitting, fitting & checking.

AI / ML Python Computer vision

View source

Machine-Predictor

Predicts housing prices from a CSV using pandas, cleaning & shaping the data first. A useful reminder that most of the work in a model is the part that happens before the modelling.

AI / ML Python pandas Regression

View source

Systems & tooling

vnds-converter

Converts Ren'Py visual novels into the asset formats & scripting language VNDS expects, which is how a desktop game ends up playable on a DS flash card. Written because doing it by hand, title by title, stopped being fun about two games in.

Tooling Python Ren'Py File formats

View source

S.I.D

Firmware & detection logic for a device that attaches under a seat & looks for belongings left behind. Built with a team as a hardware project, from the sensor choice through to how the alert reaches staff.

C++ Hardware Sensors

View source

simple-http-webserver

1

A small HTTP server written in Python to see what a framework hides: request parsing, routing, status codes & response headers, all by hand.

Python HTTP Networking

View source

Web-Post-Scraper

Collects posts from a web endpoint that offers no API, then displays them in a readable list. Written for a site where checking for updates by hand was the only other option.

Python Scraping HTTP

View source

IDE_code

Code from a school project to build an integrated development environment, covering the editor side of the problem rather than the language side.

C++ Tooling

View source

PRG2-T08-09

A C# group project from the programming module, built around object-oriented design & a class structure the whole team could work against without stepping on each other.

C# OOP Team project

View source

Coursework & practice

PyDiary

1

A command line diary that stores entries on disk, with writing, reading & listing handled through a simple menu. One of the first programs I wrote that kept data between runs.

Python CLI File I/O encryption-decryption

View source

Classy-Hangman

Hangman in the terminal, used as an excuse to practise class design & to keep game state separate from the code that draws it.

Python OOP

View source

Classes-Quiz-Exercise

Loads a list of questions from a text file & quizzes the user on them, keeping score along the way. A small exercise in classes & reading structured input.

Python OOP File I/O

View source

Maze-Solver

Works through a maze using loops & grid traversal, written as a first pass at search logic before reaching for a proper algorithm.

Python Algorithms

View source

Streamer-CSV

Reads a CSV of streamer data & arranges it into a readable summary, which is mostly an exercise in sorting & shaping rows without losing any.

Python CSV Data handling

View source

Fuzzy-Movie-Exercise

Uses fuzzy matching to search a CSV of films, so a slightly misspelled title still finds the right one. A gentle introduction to string similarity & why exact matching is often the wrong tool.

Python Fuzzy matching

View source

Formalifier

Takes informal text & swaps it into a formal register using a CSV dictionary of replacements. Small, but the first time I saw a lookup table do the work of a paragraph of code.

Python Text processing

View source

Sunshine-Farm

A command line farming simulator with crops, days & money. Small but complete, & the first program I wrote where the game loop itself was the interesting problem.

Python CLI Game loop

View source

term-project

A cooking recipe website built with hand-written HTML & CSS for a term project, laid out before I knew what a framework was.

HTML CSS Web

View source

web

A small hand-written HTML site, kept around as a marker of where the web work started.

HTML Web

View source

Want the full account?

There are forks, half-finished experiments & older coursework repositories on GitHub that did not make the cut here.