Projects

One commercially shipped product. Here's what it took — and what I can replicate for your stack.

Selected case studies in AI systems, automation, and agents — each framed as Problem → Solution → Architecture → Outcome.

I build a mix of production AI systems and experimental agent prototypes. Only production-ready systems are shipped and maintained.

Production Systems

Shipped

Deployed, maintained AI systems with real users.

Agent SystemsCommercially launched

Profesor Abelton — AI Copilot for Ableton Live

A standalone desktop AI that turns natural language into Ableton Live actions — built to feel like a friend who actually knows Ableton.

Problem

Ableton Live has a steep learning curve and most learning resources are cold, slow, and abstract — beginners get stuck Googling basics and watching 45-minute tutorials for 30-second questions.

Solution

A local desktop copilot connected to Ableton via an official Control Surface Remote Script. It streams full session state (tracks, clips, devices, tempo) to a dual-LLM engine (Claude with a custom MCP of 35 schema-validated tools, plus Groq for sub-second responses). A hardened command pipeline enforces a 40-action allowlist, parameter sanitization, and a 12-command batch limit. A 5-step First Launch Wizard auto-installs the Remote Script, encrypts API keys (Fernet), and activates a machine-bound Gumroad license.

Architecture

A desktop app (PyInstaller) talks to a local FastAPI + WebSocket engine, which connects to Ableton through an official Control Surface Remote Script. A dual-LLM router sends complex reasoning to Claude — over a custom MCP of 35 schema-validated tools — and quick queries to Groq for sub-second responses. Every requested action passes a hardened command pipeline before it ever reaches Ableton.

Engineering challenges

  • Streaming full Ableton session state (tracks, clips, devices, tempo) in real time without blocking the UI.
  • Designing 35 schema-validated MCP tools so the LLM can act safely and predictably.
  • Hardening the command pipeline: a 40-action allowlist, parameter sanitization, and a 12-command batch limit.
  • Making it a real product: Fernet-encrypted API keys, machine-bound Gumroad licensing, and a 5-step first-launch wizard.

Outcome

A commercially launched (v2.0.1) desktop product on Windows and macOS. Static analysis via Bandit (zero medium/high findings) plus a structured security audit before release.

In production

Shipped to paying users in less than 3 months from first line of code — music producers running it inside their day-to-day Ableton Live sessions.

The users are music producers who keep Profesor Abelton open next to Ableton Live while they work. Instead of pausing to search forums or watch tutorials, they ask it in plain language — “add a MIDI track”, “how do I add a device”, “analyse my session” — and it reads the live session state and either answers or performs the action directly in the project. The assistant sits inside the creative loop rather than in a separate tab.

Engineering impact

  • Real-time session sync: full Ableton state (tracks, clips, devices, tempo) streams over WebSockets, so answers reflect the project as it is right now — not a stale snapshot.
  • Stays usable mid-session: a Groq fast-path answers quick queries in under a second while Claude handles complex reasoning.
  • Safe to run in a live project: a 40-action allowlist, parameter sanitization, and a 12-command batch limit stop the AI from damaging a producer's work.
  • Resilient in real use: failures from Ableton, the LLM APIs, or the network are caught and surfaced instead of crashing the session.
  • Local-first and private: it runs on the user's machine with Fernet-encrypted API keys — nothing about their projects leaves the device except the LLM calls they trigger.

Iteration loop

The product is shaped by how this small group actually uses it. Real sessions surface edge cases demos never do — unusual project layouts, unexpected phrasings, device combinations — and those drive the fixes and new tools in each release. It evolves through live usage feedback, not a roadmap written in isolation.

Tech stack

PythonMCPClaudeGroqWebSocketsFernetPyInstaller
v2.0.1
Commercially launched
35
Schema-validated MCP tools
2 LLMs
Claude + Groq routing
Passed
Structured security audit
Win + macOS
Distributed via Gumroad
0
Bandit medium/high findings

Static analysis via Bandit (0 medium/high findings) + structured security audit. Supplementary LLM-assisted review checks were also run as part of the audit methodology (GPT-4o: 88/100, Grok: 80/100).

AIProduction · Live

AI Career Assistant (this site)

A grounded RAG assistant that answers recruiter questions about my work.

Problem

Static CVs don't let recruiters ask questions or evaluate role fit — they have to infer everything from a flat document.

Solution

A retrieval-augmented assistant grounded strictly in my profile data: questions are embedded, relevant chunks are retrieved via vector search, and the LLM answers only from that context. A dedicated Job Fit mode analyzes a pasted job description and returns a fit score, experience mapping, gaps, and interview positioning.

Architecture

Next.js 15 App Router (TypeScript) with an API route that streams responses token by token. A provider-agnostic layer routes chat to Claude, Groq, or OpenAI; a retrieval layer either passes the full profile as context or runs vector search. Per-IP and global rate limits cap abuse and cost.

Engineering challenges

  • Keeping answers strictly grounded so the assistant never invents experience.
  • Streaming responses while rendering Markdown (tables, lists) incrementally.
  • Staying provider-agnostic so it runs on Claude, Groq, or OpenAI without code changes.

Outcome

A live, queryable career interface with a Q&A mode and a Job Fit mode that scores a pasted job description against real profile data.

Tech stack

Next.jsTypeScriptOpenAISupabasepgvector

Work in Progress

In development

Actively built and evolving — not yet shipped as products.

Agent SystemsIn development

Profesor David — AI Companion for Avid Pro Tools

The Profesor Abelton architecture, adapted for Pro Tools and xAI Grok.

Problem

Pro Tools users need contextual, conversational help without leaving their session — but no local, session-aware assistant existed.

Solution

A local AI companion using a FastAPI server (127.0.0.1:8766) and the Pro Tools PTSL gRPC connector, powered by the xAI Grok API. It receives live session state and answers conversationally, reusing the proven Profesor Abelton architecture.

Architecture

A local FastAPI server (127.0.0.1:8766) bridges the Pro Tools PTSL gRPC connector and the xAI Grok API, reusing the session-aware pattern proven in Profesor Abelton.

Engineering challenges

  • Adapting the MCP/session-aware architecture to a different DAW and a different LLM provider (xAI Grok).
  • Speaking Pro Tools' PTSL gRPC protocol to read live session state.

Outcome

Working v1.0.0 (read-only); write actions (inserts, plugin params, transport) are the next milestone.

Tech stack

PythonFastAPIxAI GrokPTSL (gRPC)Tkinter
Agent SystemsIn development

Profesorica Volca — AI Tutor for Korg Volca Hardware

Extending the agentic copilot concept from software to hardware synthesizers.

Problem

Hardware synths like the Korg Volca series have deep, non-obvious workflows and no interactive, guided tutor.

Solution

A desktop tutor for Volca Bass, Drum, and Sample with original vector panel renderers driven by JSON control maps and glow highlighting. It offers a deterministic recipe mode (no LLM) and an LLM-backed chat/explain mode bound by a strict JSON schema contract.

Architecture

A PySide6 desktop tutor with original vector panel renderers driven by JSON control maps. A deterministic recipe mode needs no LLM; an LLM-backed chat/explain mode is bound by a strict JSON schema contract.

Engineering challenges

  • Rendering accurate, interactive hardware panels from JSON control maps.
  • Constraining LLM output to a strict JSON schema so explanations map to real controls.

Outcome

An MVP showing the agentic-tutor pattern works for physical hardware via structured outputs.

Tech stack

PythonPySide6OpenAIAnthropic

Other Shipped Products

Completed

Finished, production-ready tools in blockchain and automation — solid work, but outside my core AI engineering focus.

AutomationShipped

Forex Automation System

Automated trading and risk-management tooling in C#.

C#cTrader / cAlgo
AutomationShipped

X Trending Monitor

A live dashboard for the top 30 trending topics on X (Twitter).

Node.jsWebSocketsX APIElectron
OtherShipped

Branksy — The Non-Artist

A tongue-in-cheek 'degen coin' website for an artist who makes no art.

HTMLCSSJavaScriptFirebase

Experiments & Prototypes

Exploration

Proof-of-concept and exploration work — not production systems.

OtherExperiment

Unimatrix — Modular Synthesizer (Rust)

A real-time modular synthesizer engine built in Rust. In active development.

RustCPALmidirrodio