2012 — 2019

Origins

55+ projects. 30,000+ lines of code. Seven years of self-taught development from 2012 to 2019 — one developer's journey through Python 2.7 and Tkinter GUIs.

What began as simple scripts in 2012 evolved into multi-threaded applications with encryption pipelines, distributed architectures, and Windows COM integrations by 2019. The breadth was deliberate — each project was a vehicle for learning a new domain. This is not a curated “best of” — it includes abandoned stubs alongside polished tools. That honesty is the point.

55+
Projects Built
30k+
Lines of Code
10
Domains Explored
7
Years of Tinkering
Deep Dives

The Standouts

The most sophisticated projects from the early years — each one a stepping stone to where I am now.

VoiceRec

Windows Voice Assistant

Home automation before Alexa existed

2013-2017 5,350+ lines 7 modules

A fully functional Windows voice assistant built years before consumer smart assistants were mainstream. Accepts text commands with voice synthesis output via Windows SAPI, controls media playback, queries Wikipedia, posts to Twitter and Facebook, monitors idle state, and controls Raspberry Pi GPIO pins over SSH.

Architecture
voice.py (1,341 LOC) — Main app, GUI, 59+ command routing
ConfigFile.py — First-run setup wizard, persistent config
ai.py — Wikipedia Q&A with 1.5MB learned cache
musicPlayer.py — PyMedia audio with playlist management
vlcmovie.py — VLC Python bindings for video
MoppleMods.py (3,500+ LOC) — Shared utility library
6+ API integrations: Windows SAPI (COM), Twitter, Facebook, Wikipedia, Translator, SSH
Multi-threaded: mouse tracking, command processing, music status — coordinated via global BREAKER flag
AI learning module: caching Q&A triggered by 28 W5 keywords with pickle persistence
Iteratively developed over 4+ years with config versioning
Python 2.7 Windows SAPI COM Twitter API Paramiko SSH Tkinter

MoppleMods

The Shared Library

3,500+ lines powering 15+ projects

2013-2016 3,500+ lines 1 modules

The backbone of the entire project collection — a comprehensive utility library providing 40+ reusable classes and functions for GUI, cryptography, networking, audio, and system operations. Used across 15+ projects.

Architecture
Cryptography: AESCipher, HashAlgorithms (7 types), KeyBuilder
UI/Dialogs: PopUp, Balloon_Widget, ErrorCatcher, Timer
System: ScreenResolution, External_IP, Pcinfo, RAM stats
File Ops: get_size, zipper, Tempfiles, PickleConfig
Media: MusicPlayer (pygame), PygamePlayer
Remote: SendCommand (Paramiko SSH wrapper)
40+ reusable classes and functions across 6 domains
Graceful degradation: all optional imports wrapped in try/except
Used by 15+ projects across the entire collection
Shows early DRY principles and API design thinking
Python 2.7 PyCrypto Paramiko Pygame Win32 COM Tkinter

RPG Game Engine

Roguelike Dungeon Crawler

Complete game from architecture to audio

2013-2014 1,592 lines 5 modules

A complete text-based RPG with Tkinter GUI, turn-based combat, and procedural event generation. Features 4 balanced hero classes, 11 monster types across 4 difficulty levels, dice-based combat, and a 28x43 grid map with boss pathfinding AI.

Architecture
engine.py (688 LOC) — Core game loop, map, events
characters.py (309 LOC) — 4 hero classes, 11 monsters
items.py (297 LOC) — Equipment, inventory
battle.py (200 LOC) — 7-step combat animation
dice.py (98 LOC) — 2d6 + stat rolling
4 balanced hero classes: Mage, Barbarian, Thief, Paladin
7-step animated combat with 2d6 + base stat dice mechanics
1,176-square grid with pre-computed walkability and boss AI
Randomized events: encounters, treasure mini-games, riddles, stat changes
Python 2.7 Tkinter Canvas PIL pymedia Threading

Network Toolbox

7 Integrated Network Utilities

Port scanner, FTP cracker, subnet calculator, and more

2014 680+ lines 7 modules

A tabbed GUI application integrating seven distinct network utilities into a single interface: port scanner with 202KB port database, queue-based multi-threaded FTP cracker, CIDR subnet calculator, multi-format converter, ping scanner, and hash calculator.

Architecture
toolbox.py — Main tabbed interface
portscan.py — TCP scanning, 202KB port DB
ftpcrack.py — Queue-based threaded brute-force
calcsubnet.py — CIDR parser, broadcast calc
converter.py — Bin/Hex/Dec + IP dotted-quad
FTP cracker: 1-100 configurable threads with real-time keys/second metrics
Port scanner: batches of 256 with throttling to prevent network saturation
Subnet calculator: network ID, broadcast, available hosts (2^n - 2)
Windows registry parsing for network adapter configuration
Python 2.7 Socket Tkinter Pmw ftplib Threading

SafeTalk

Encrypted P2P Chat

No central server, no trust required

2014-2015 802 lines 3 modules

A peer-to-peer encrypted messaging application with no central server. Three socket classes handle different communication patterns — basic TCP, file transfer with 1024-byte chunking, and reliable message length handling. Features AES-128 encryption with Base64 transport encoding.

Architecture
main.py (589 LOC) — GUI, chat logic, friend mgmt
socket_layer.py (213 LOC) — 3 socket classes:
  BasicTCP — Raw TCP wrapper
  FileTransfer — 1024-byte chunked transfers
  ReliableMsg — Message length framing
P2P architecture: peer discovery without a central server
AES-128 encryption → Base64 encoding for transport-safe messaging
Friend management with IP/port config and persistent chat history
Multi-step onboarding for first-run setup
Python 2.7 PyCrypto Socket Base64 Tkinter

Hash Cracker

Multi-Algorithm Cracking Suite

NTLM, SHA-1, MD5, WPA2 — three attack modes

2013-2015 1,288 lines 2 modules

A hash-cracking suite supporting NTLM (MD4+UTF-16LE), SHA-1, MD5, and WPA2 with three attack modes: rainbow table lookup via FTP, wordlist scanning, and character permutation brute-force. The progression from crack.py to newcrack.py shows growth from deprecated threading to proper OOP.

Architecture
crack.py (756 LOC) — Original: thread.start_new_thread()
newcrack.py (532 LOC) — Refactored: class hierarchy,
  OOP separation of UI and processing,
  proper widget lifecycle management
3 attack modes: rainbow table (FTP), wordlist, brute-force permutation
NTLM: UTF-16LE encoding before MD4 — non-trivial Windows auth knowledge
Visible code evolution: deprecated threading → proper OOP
Real-time metrics: keys/second, ETA, progress percentage
Python 2.7 hashlib PyCrypto ftplib Tkinter Threading
The Breadth

10 Domains, One Curiosity

Not depth-first. Not breadth-first. Curiosity-first.

GUI Utilities & Desktop Tools

12 projects · ~5,500 LOC

WordManipulator, FNFRenamer, IT Planner, Process Manager

External merge sort for files larger than RAM

Networking & Security

9 projects · ~4,200 LOC

Network Toolbox, MAC Changer, SSH Executor

Windows Registry manipulation for MAC spoofing

Cryptography & Encryption

4 projects · ~2,800 LOC

Hash Cracker, Crypter, SafeTalk, Password Manager

AES-256-CBC with random IV generation

Game Development

3 projects · ~2,200 LOC

RPG Engine, Text Adventure, Hearthstone Framework

Complete RPG with 4 classes and boss AI

Media & Entertainment

6 projects · ~1,800 LOC

Axxo Monitor, MovieDB Creator, Music Player

Monitoring daemon with SHA1 deduplication

Bitcoin & Cryptocurrency

3 projects · ~580 LOC

EazyWallet, Mining Pool Client, Wallet Recovery

Real-time Bitcoin dashboard with mining controls

IoT & Hardware

4 projects · ~720 LOC

Raspberry Pi Controller, 433MHz Radio, Sensor Reader

GPIO pin control with Dropbox cloud sync

Voice & AI

1 projects · ~5,350 LOC

VoiceRec

59+ voice commands, 6 API integrations

Libraries & Templates

8 projects · ~5,000 LOC

MoppleMods, Project Template, Progressbar Module

40+ reusable components with graceful degradation

Learning & Exploration

10 projects · ~2,000 LOC

Socket Programming, PyQt4 Examples, Pygame Tutorial

Methodical progression through new frameworks

Evolution

Visible Growth

Four tracks showing real technical progression across the project collection.

Threading

Early

Deprecated Threads

thread.start_new_thread()

Mid

Thread Subclassing

threading.Thread with daemons

Later

Queue-Based Pools

Work queues with metrics

Mature

Signal Handling

Daemon lifecycle + graceful shutdown

Cryptography

Early

Basic Hashing

MD5 — weak but functional

Mid

Key Derivation

SHA-256 with 4,096 rounds

Later

Symmetric Encryption

AES-128/256-CBC + random IV

Mature

Multi-Algorithm Suite

7 hash types, PBKDF2

Architecture

Early

Monolithic Scripts

Single-file utilities

Mid

Procedural Tools

Multi-file tool aggregation

Later

OOP Hierarchies

Class-based with inheritance

Mature

Distributed Systems

7-module apps, P2P networks

UI Sophistication

Early

Static Layouts

Basic Tkinter widgets

Mid

Dialog Workflows

Pmw megawidgets, multi-step forms

Later

Canvas Rendering

Animations, sprites, graphics

Mature

Responsive UIs

Multi-threaded, semi-transparent

Looking Back

Honest Reflections

Real learning is messy. Here's what I'd do differently — and what was genuinely good.

What I'd Do Differently

Hardcoded credentials everywhere

API keys, email passwords, SSH credentials scattered across source files in plain text. Today, this would be unthinkable. Then, it was how I learned why it matters.

Python 2 only

The entire collection is Python 2.7, which reached end-of-life in 2020. The print statements and urllib2 imports are clear markers of their era.

Global state overuse

Module-level global variables everywhere. Works for single-developer desktop tools but makes testing and refactoring difficult.

No tests (mostly)

Despite including tests/ directories in the project template, most test files are empty. The template showed awareness; the practice hadn't caught up yet.

Incomplete projects

At least 8-10 projects are stubs or skeletons. Each represents a burst of enthusiasm that shifted to the next idea. Finishing things is a skill too.

What Was Actually Good

Breadth of exploration

Touching networking, crypto, game dev, IoT, voice AI, media automation, Bitcoin, and system programming built a mental model of how systems connect.

Building real tools

These weren't academic exercises — they were tools I actually used. The MAC changer, file renamer, movie database builder solved real problems.

The shared library instinct

Creating MoppleMods (3,500+ lines) and using it across 15+ projects shows early understanding of DRY principles and code reuse.

Iterative improvement

Multiple projects exist in 2-3 versions (sort → sort2 → sort3, crack.py → newcrack.py). Each version shows clear improvements in architecture.

Distribution thinking

Several projects compiled to standalone .exe with py2exe, including bundled Tcl/Tk runtimes. Thinking beyond 'it works on my machine' toward actual delivery.

From Hobbyist to Platform Engineer

Every port scanner, every threaded daemon, every registry hack was building the intuition that makes platform engineering possible.

Then
Port scanning & subnet calculation

Network Toolbox

Now
Infrastructure networking

K3s HA, MetalLB, Ingress

Then
MAC spoofing & encryption tools

MAC Changer, Hash Cracker

Now
Security-first production systems

Vigil, MopPilot (OWASP)

Then
File renamers & backup tools

FNFRenamer, Sorter, Backup

Now
CI/CD and automation

ArgoCD, GitHub Actions

Then
Raspberry Pi GPIO control

GPIO Controller

Now
Kubernetes orchestration

Home Lab K3s, ArgoCD

Then
Windows Registry & COM objects

VoiceRec, MAC Changer

Now
Deep OS debugging in production

Enterprise Platform Engineering

Then
Work queues & daemon threads

FTP Cracker, SafeTalk

Now
Async processing & service meshes

Celery, Redis, Kubernetes

“The code is old. The patterns are outdated. The credentials are hardcoded. But the curiosity, the breadth, and the relentless building — that's still the foundation everything else stands on.”

Explore the Source Code

All 55+ projects are archived on GitHub. Browse the code, read the full technical report, and see where it all started.