The full catalog, grouped by year.
Every meaningful repo or tool I wanted to keep around: products, internal systems, OSS, experiments, automation utilities, and game mods. Projects are grouped by start year, and each entry keeps its actual year range when work spanned multiple years.
2026
- Mobile app 2026
DarkSpark
A private Expo / React Native pass-and-play game for couples, with escalating phases, content libraries, haptics, audio cues, timers, anatomy-aware templating, and a Zustand-powered game engine.
why it mattersIt shows product sensibility on a completely different surface area: mobile interaction design, game-state modeling, content systems, and emotionally specific UX.
React Native Expo TypeScript Zustand Moti Haptics Speechrepos / related codeDarkSparkui snapshotDarkSpark - Web app 2026
DNADuck
A local face identity extraction, clustering, and LoRA dataset-prep system. It scans image libraries, embeds faces with InsightFace, groups identities with SQLite-backed persistence, and supports review, merge, export, and training workflows via CLI, API, and WebbDuck plugin UI.
why it mattersIt ties ML pipeline work, persistent data modeling, and operator UX together in a way that makes dataset curation feel like a usable product instead of a pile of scripts.
Python FastAPI InsightFace SQLite scikit-learn OpenCVrepos / related codeDNADuckchallengePreparing image datasets for LoRA training is usually a messy manual process: identify subjects, de-duplicate, cluster, label, export, and keep track of what changed. DNADuck turns that into a repeatable workflow.
approachI combined recursive scanning, face embedding, DBSCAN clustering, SQLite-backed persistence, moderation actions, export tooling, and training hooks into one local system with CLI, API, and WebbDuck plugin interfaces.
system slicedataset pipelineingestImage Scan→InsightFace EmbeddingsgroupingDBSCAN+Assignment Logic→SQLite StateopsCLI / Plugin UI→Review / Merge / Search→LoRA ExporttrainFastAPI Service→Kohya Training Handoffarchitecture- ▸ InsightFace embeddings and clustering pipeline for identity grouping
- ▸ SQLite persistence for scans, images, identities, and training state
- ▸ FastAPI service for review/search/export/training endpoints
- ▸ WebbDuck plugin UI for character review and operator workflows
- ▸ Kohya-oriented export and training handoff
constraints- ▸ Everything needed to stay local and offline-friendly
- ▸ Image libraries are messy, incremental, and constantly changing
- ▸ The tool had to support both technical CLI usage and less technical review workflows
outcomes- ◆ A local identity pipeline that goes beyond clustering into dataset operations
- ◆ Search, merge, moderation, and export workflows that reduce manual curation friction
- ◆ A stronger bridge between CV/ML infrastructure and usable app design
what I would do nextI would push further into richer review ergonomics, better active-learning style prioritization, and cleaner training experiment tracking.
ui snapshotDNADuckStudioCharacterscharacters · 12 identities - Web app 2026
DuckMotion
A WebbDuck plugin for local Wan 2.2 image-to-video generation. It handles staging, model discovery, runtime compatibility, queue management, cancellation, and a plugin-local gallery in a multi-tab browser UI.
why it mattersIt solves the messy part of local video generation: real GPU constraints, model-path ambiguity, runtime coordination, and a workflow people can actually use.
Python FastAPI Diffusers Transformers ImageIO Vanilla JSrepos / related codeDuckMotionui snapshotDuckMotion · Wan 2.2SetupCreateJobsGalleryjobs - ML system 2026
IntelliClean
A GPU-backed image-cleaning pipeline composed of WD14 tagging, SAM2 masking, CLIP mask ranking, LaMa inpainting, and Stable Diffusion inpainting, orchestrated through Docker Compose services.
why it mattersThis is systems-oriented ML engineering: multiple models, containerized services, image-processing handoffs, and practical cleanup workflows rather than just inference in isolation.
Python Docker Compose SAM2 LaMa CLIP Stable Diffusionrepos / related codeIntelliCleanproject surfacesystem viewNo dedicated browser UI.This project was primarily a pipeline, service, mod, infrastructure layer, or research workspace rather than a standalone web app. The value is in the workflow, orchestration, and implementation details.
- Infra 2026
llm-stack
A local LLM/dev-assistant stack using Nix Flakes, process-compose, Ollama, and Open WebUI. One command brings up a usable model environment with auto-detected hardware mode and curated model pulls.
why it mattersIt reflects the reproducibility thread across a lot of my work: get a useful local AI environment running quickly, consistently, and without snowflake setup steps.
Nix Shell Docker Ollama Open WebUIrepos / related codellm-stackproject surfacesystem viewNo dedicated browser UI.This project was primarily a pipeline, service, mod, infrastructure layer, or research workspace rather than a standalone web app. The value is in the workflow, orchestration, and implementation details.
- AI platform 2026
OpenDuck
A secure cloud-hosted agentic outbound platform: FastAPI control plane, LangGraph orchestration, PostgreSQL + pgvector, Redis-backed workers, scheduler, and a React operations UI deployed on a DigitalOcean droplet with private Tailscale access to local Ollama.
why it mattersThis is the clearest expression of my current thinking about agentic systems: human approvals where they matter, autonomy where learning loops need it, and infrastructure that is auditable instead of magical.
Python FastAPI LangGraph PostgreSQL pgvector Redis React Vite Docker TailscalechallengeMost agent demos stop at “the model can do the task.” OpenDuck tackles the harder problem: how do you safely run autonomous outbound workflows in a production environment with approvals, auditability, queueing, and private model access?
approachI split the system into a control plane, orchestration services, worker processes, scheduler, and a dedicated operator UI. The cloud-hosted stack runs on a locked-down DigitalOcean droplet, while local Ollama stays on a private machine reachable only over Tailscale.
system slicecontrol flowoperatorReact Ops UI→Approvals / Campaigns / RepliescontrolFastAPI Control Plane→LangGraph OrchestratorexecutionScheduler→Workers→RedisstatePostgres+pgvector→Private Tailscale path to Ollamaarchitecture- ▸ FastAPI API for control, health, and operator workflows
- ▸ LangGraph-based orchestration layer for agent behavior
- ▸ PostgreSQL + pgvector for state and retrieval-ready storage
- ▸ Redis-backed workers and scheduler for background execution
- ▸ React/Vite glassmorphism UI for campaigns, approvals, replies, monitoring, and integrations
constraints- ▸ Keep model inference private without co-locating everything on one machine
- ▸ Allow autonomous action inside approved bounds without losing human oversight
- ▸ Make the whole system auditable and reproducible instead of opaque
outcomes- ◆ A real agent operations stack instead of a single-script automation demo
- ◆ Explicit approval and review surfaces for high-risk actions
- ◆ A foundation for experimentation with campaign learning loops, reply handling, and governed autonomy
what I would do nextI would keep deepening evaluation, campaign learning, and observability so the system can prove its behavior over time rather than just appear smart in the moment.
ui snapshotOpenDuckMorning, operator. - Web app 2026
PhoenixDraw
A FastAPI + Alpine.js after-dark sandbox card-draw game that builds prompts for WebbDuck. Thirteen themed decks combine into prompts, send generations to WebbDuck, and let players frame, burn, or reroll results while tracking unlocks and collection progress in SQLite.
why it mattersIt combines product design, content systems, prompt composition, live generation state, and gallery mechanics into a coherent game loop rather than a one-off image generator.
Python FastAPI Alpine.js SQLite WebSocketsrepos / related codePhoenixDrawchallengePrompting can be powerful but tedious. PhoenixDraw reframes that workflow as a game: use constraints, randomness, and unlocks to make image generation feel playful and generative instead of blank-page-driven.
approachI built a thin game layer over WebbDuck with deck-based prompt composition, mode-aware card pools, stateful collection tracking, gallery decisions, and live progress relay. The system treats the underlying model stack as a creative engine and the frontend as the game surface.
system slicegame loopfront-endAlpine Game UI→Round / Gallery / Collectiongame layerFastAPI Game Layer→Deck Library→Game Session LogicgenerationWebbDuck Client↔WS Progress Relay→SQLite Unlocks / Galleryarchitecture- ▸ FastAPI server for game state, collection, gallery, and proxy/model APIs
- ▸ Alpine.js frontend for the round loop and card interactions
- ▸ SQLite for unlocks, framed images, and progression state
- ▸ WebSocket relay to WebbDuck progress events
- ▸ Mode-aware content system for realistic, anime, hentai, cartoon, and furry sessions
constraints- ▸ The experience needed to stay lightweight while talking to a heavier generation backend
- ▸ Prompt randomness had to feel curated rather than chaotic
- ▸ The game needed to support multiple visual styles without becoming a UI mess
outcomes- ◆ A genuinely differentiated interface for image generation
- ◆ A reusable content/deck model that can expand without code changes
- ◆ A project that shows product design, content systems, and AI tooling can live in the same build
what I would do nextI would deepen the collection/progression loop and add stronger model-aware recommendations so the game gets smarter as the media stack expands.
ui snapshotPhoenixDrawRoundGalleryCollection - Web app 2026
WebbDuck
A local-first SDXL studio built on FastAPI and Hugging Face Diffusers, with text-to-image, img2img, inpainting, smart extend, second-pass refinement, upscaling, LoRA and embedding management, and a searchable gallery backed by local files.
why it mattersIt moves beyond “AI demo UI” territory into a real creative workstation: queue-based GPU orchestration, persistent asset history, plugin hooks, and workflows built for actual iteration.
Python FastAPI Diffusers PyTorch WebSockets Vanilla JSrepos / related codeWebbDuckchallengeMost local image-generation tools are either heavy, inflexible, or oriented around raw inference instead of iterative creative work. I wanted a local-first studio that felt practical to use every day.
approachI built WebbDuck around a queue-first GPU worker, a lightweight FastAPI backend, and a zero-build browser UI. Instead of treating generation as a one-shot request, the system centers on repeatable workflows: generate, edit, extend, upscale, compare, and search outputs later.
system slicegeneration flowstudioBrowser Studio↔FastAPI App↔WebSocket ProgressruntimeQueue→GPU Worker→Pipeline ManagerassetsModels / LoRAs→Outputs + Metadata→Pluginsarchitecture- ▸ FastAPI app with generation, queue, gallery, thumbnail, and health endpoints
- ▸ Central GPU worker and pipeline lifecycle management for predictable VRAM usage
- ▸ Filesystem-backed outputs with metadata sidecars and manifest-backed search
- ▸ WebSocket updates for queue/progress state
- ▸ Plugin hooks for captioners and companion web apps like DuckMotion and DNADuck
constraints- ▸ Local GPU memory is finite and unpredictable across workflows
- ▸ Creative iteration needs history, not just a latest image
- ▸ The UI had to stay lightweight and hackable without a heavy frontend toolchain
outcomes- ◆ A practical SDXL workstation with text-to-image, img2img, inpaint, smart extend, second pass, and upscaling
- ◆ A foundation for multiple follow-on tools and plugins
- ◆ A stronger local-first alternative to “just run a script” experimentation
what I would do nextI would continue investing in evaluation loops for generation settings, richer metadata exploration, and tighter multi-app coordination across the plugin ecosystem.
ui snapshotWebbDuck · Local SDXL StudioStudioGalleryqueue · 2 pending
2025
- ML system 2025
ATS Simulator
A lightweight Flask API that compares resumes against job text, extracts keywords, and returns relevance scores plus missing terms using spaCy, scikit-learn, and KeyBERT-style keyword overlap.
why it mattersSmall but useful: it turns the black-box feeling of ATS screening into an inspectable system and sits naturally next to the broader resume tooling work.
Python Flask spaCy scikit-learn pdfminer python-docxrepos / related codeats-simulatorproject surfacesystem viewNo dedicated browser UI.This project was primarily a pipeline, service, mod, infrastructure layer, or research workspace rather than a standalone web app. The value is in the workflow, orchestration, and implementation details.
- ML system 2025
Concrete
A media-processing pipeline for construction-themed photo/video analysis and AI-generated summaries, using OpenCV, Whisper, Ultralytics, ffmpeg, and OpenAI-backed summarization flows.
why it mattersIt shows applied multimodal work: take unstructured media, process it, summarize it, and turn it into something usable for a business workflow.
Python OpenCV Whisper Ultralytics ffmpeg OpenAI APIrepos / related codeconcreteproject surfacesystem viewNo dedicated browser UI.This project was primarily a pipeline, service, mod, infrastructure layer, or research workspace rather than a standalone web app. The value is in the workflow, orchestration, and implementation details.
- Automation 2025
Lead Generation Toolkit
A Python lead-generation utility that uses Google Places and Knowledge Graph APIs to gather businesses, enrich details, and filter leads by lightweight heuristics such as employee-count signals.
why it mattersThis is practical automation work: aggregating messy external data into something a person can actually sell from.
Python Requests Google Places API Knowledge Graph APIrepos / related codelead_generationproject surfacesystem viewNo dedicated browser UI.This project was primarily a pipeline, service, mod, infrastructure layer, or research workspace rather than a standalone web app. The value is in the workflow, orchestration, and implementation details.
- Game mod 2025
TCG CustomTextureReplacer
A Unity/BepInEx mod for TCG Card Shop Simulator that live-replaces textures, sprites, meshes, materials, and card metadata with folder watchers, JSON overrides, hot reload, and debug dump tools.
why it mattersIt shows low-level runtime engineering in a completely different context: patching a live game, preserving state, and building a modder-friendly authoring workflow.
C# Unity BepInEx Harmonyrepos / related codeTCG_CustomTextureReplacerproject surfacesystem viewNo dedicated browser UI.This project was primarily a pipeline, service, mod, infrastructure layer, or research workspace rather than a standalone web app. The value is in the workflow, orchestration, and implementation details.
- Game mod 2025
TCG GameSpeedController
A Unity/BepInEx mod that changes game pace while keeping physics, player controls, and NavMesh-driven NPCs stable through careful timescale compensation.
why it mattersIt is a compact example of systems thinking: global speed changes are easy, preserving believable behavior across the whole simulation is the hard part.
C# Unity BepInExrepos / related codeTCG_GameSpeedControllerproject surfacesystem viewNo dedicated browser UI.This project was primarily a pipeline, service, mod, infrastructure layer, or research workspace rather than a standalone web app. The value is in the workflow, orchestration, and implementation details.
2024
- Automation 2024
Animal of the Day
An Azure Functions app that picks a random animal from Fandom, fetches supporting context from Wikipedia, cleans the text, and avoids repeats via SQLite tracking.
why it mattersA small but complete automation loop: scrape, enrich, normalize, persist state, and publish a reusable output.
Python Azure Functions SQLite Requests BeautifulSouprepos / related codeanimal-of-the-dayproject surfacesystem viewNo dedicated browser UI.This project was primarily a pipeline, service, mod, infrastructure layer, or research workspace rather than a standalone web app. The value is in the workflow, orchestration, and implementation details.
- Web app 2024-2025
IntellePrep
An AI-assisted job-search product spanning a WordPress application, FastAPI generation services, PDF rendering, infrastructure, Chrome auto-fill extension, and job-search aggregation. It handled resumes, cover letters, interview prep, profile management, application tracking, and billing flows.
why it mattersIt is one of the broadest product builds in the set: full-stack app work, AI generation, workflow automation, extensions, infra, and user-facing SaaS concerns all in one system.
PHP WordPress Python FastAPI Playwright Docker Kubernetes JavaScriptrepos / related codeintelleprep-site intelleprep-generator intelleprep-pdf intelleprep-infra intelleprep-chrome neuroprepaichallengeJob search is full of repeated, demoralizing work: profile entry, resume tailoring, cover letters, tracking, and application form filling. IntellePrep was built to compress that loop into a usable product.
approachI treated it as a real platform, not just a generator endpoint: a WordPress application for user experience and billing, Python services for content generation and PDF rendering, a Chrome extension for form fill, infra for deployment, and supporting job-search automation behind the scenes.
system sliceproduct stackproductWordPress App→Profile / Billing / DashboardservicesGenerator Services→Resume / Cover Letter→Interview PrepautomationChrome Extension→Application Autofill→Tracking LoopdeliveryPlaywright PDF→Infra / Deploy→Job Search Dataarchitecture- ▸ WordPress/PHP app for accounts, dashboards, profile management, and billing surfaces
- ▸ FastAPI-style generation services for resumes, cover letters, interview prep, and async task status
- ▸ Playwright PDF service for document rendering and scraping support
- ▸ Chrome extension for one-click application auto-fill
- ▸ Supporting infra and job-search aggregation services across multiple repos
constraints- ▸ Needed to feel like a product, not a pile of disconnected AI endpoints
- ▸ Document generation had to be fast, personalized, and exportable
- ▸ The workflow crossed multiple surfaces: web app, backend services, browser extension, and infrastructure
outcomes- ◆ A broad AI-assisted job-search platform with profile, document, and application workflows
- ◆ A concrete example of combining SaaS product design with AI generation services
- ◆ A foundation that later informed later automation and agentic product ideas
what I would do nextGiven more time, I would further unify the service boundaries, reduce WordPress-specific complexity, and push more of the experience into a purpose-built app shell.
ui snapshotIntellePrepProfileDocumentsApplicationsUpgrade
2023
- Web app 2023
Autogration Site
A static Eleventy-based marketing site adapted from a Bootstrap landing-page theme and turned into a deployable branded company site.
why it mattersIt reflects the product-marketing side of building: landing pages, positioning, and getting an idea legible to non-engineers.
Eleventy Node.js Bootstraprepos / related codeautogration-siteui snapshotAutogrationServices · AI · Contact - Automation 2023-2024
Codename Avenger - Precursor to IntellePrep
An Azure Functions backend for job-application automation: scrapes job descriptions, prompts OpenAI for optimized resume and cover-letter JSON, generates interview prep, and formats outputs into documents. This was the earlier product direction that later evolved into IntellePrep.
why it mattersIt is the clearest precursor to IntellePrep: an early attempt at turning repeated application work into structured AI-assisted workflows before the broader product matured.
Python Azure Functions OpenAI API BeautifulSoup DOCX/PDF toolingrepos / related codeAvengerproject surfacesystem viewNo dedicated browser UI.This project was primarily a pipeline, service, mod, infrastructure layer, or research workspace rather than a standalone web app. The value is in the workflow, orchestration, and implementation details.
- Utility 2023
IMDb Lookup
A Python/Azure Functions tool that scrapes IMDb actor data and uses lightweight NLP to infer whether the user is asking for age, height, death info, or known-for content.
why it mattersA good example of taking a narrow scraping problem and making the interface feel a little smarter than raw lookup-by-name.
Python Azure Functions BeautifulSoup spaCy NLTKrepos / related codeimdb_lookupproject surfacesystem viewNo dedicated browser UI.This project was primarily a pipeline, service, mod, infrastructure layer, or research workspace rather than a standalone web app. The value is in the workflow, orchestration, and implementation details.
- R&D 2023
Spaceship Titanic
A Kaggle competition environment with a containerized notebook stack and the usual EDA/modeling toolkit around pandas, scikit-learn, and visualization libraries.
why it mattersIt captures the data-science side of the journey and the discipline of packaging exploratory work into a reproducible environment.
Python Jupyter pandas scikit-learn Dockerrepos / related codespaceship-titanicproject surfacesystem viewNo dedicated browser UI.This project was primarily a pipeline, service, mod, infrastructure layer, or research workspace rather than a standalone web app. The value is in the workflow, orchestration, and implementation details.
2022
- Utility 2022
Advent of Code
A small personal repo of Advent of Code solutions in Python, focused on parsing, transformation, and puzzle-solving loops.
why it mattersThese are compact exercises, but they sharpen the parts of engineering that show up everywhere else: input handling, algorithmic thinking, and clean transformation steps.
Pythonrepos / related codeAdvent_of_Codeproject surfacesystem viewNo dedicated browser UI.This project was primarily a pipeline, service, mod, infrastructure layer, or research workspace rather than a standalone web app. The value is in the workflow, orchestration, and implementation details.
- Utility 2022
Parse_Pom
An experimental Python utility for parsing Maven `pom.xml` files and extracting dependency metadata such as `groupId`, `artifactId`, and `version`.
why it mattersIt is a small repo, but it shows the habit of turning repeated parsing problems into code instead of manual inspection.
Python XMLrepos / related codeParse_Pomproject surfacesystem viewNo dedicated browser UI.This project was primarily a pipeline, service, mod, infrastructure layer, or research workspace rather than a standalone web app. The value is in the workflow, orchestration, and implementation details.
2014
- Web app 2014-2026
Wallaby Roasters
A long-running coffee-roasting business system spanning e-commerce, roast logging, order-queue ingestion, and operations tracking. The current stack includes a roast log web app and a Supabase backend that turns Squarespace order payloads into roasting-queue entries.
why it mattersIt shows the operational side of software: not just building an app, but creating tooling around a real product workflow with inventory, roast timing, fulfillment, and business process constraints.
HTML JavaScript Supabase TypeScript Squarespacerepos / related coderoast.github.io supabase_roastui snapshotWallaby RoastersActive RoastRoast LogOrders