Open to software roles · [email protected]

Alan Gaudet. Software Developer.
I troubleshoot, plan, and oversee, whatever the system runs on.

I work on the plant floor and build systems and tools on nights and weekends. What I build changes, but the approach stays the same: trace the failure, plan the next move, and keep eyes on what the system is actually doing.

The tools change. The approach doesn't. Trace the failure, plan the next move, watch what the system is doing in production.

Independent

LangGraph, RAG, evals, and output guards. Agents that fail loudly, log honestly, and stay debuggable.

Supply Chain Multi-Agent System

Three habits that survive the domain change.

01

Troubleshoot

Start at the failed output and walk back through every condition until the cause is in hand. Years of doing this on real PLCs taught me to make the LLM narrate what a deterministic walker already found, so it never reasons about ladder semantics from scratch.

Rung Reader L5X AST walker · hardware-free CI
02

Plan

Break the work into shippable milestones with typed state and clear gates. Real-LLM integration tests run in CI, so a regression shows up before merge instead of after.

Supply Chain Agents LangGraph StateGraph · interrupt() approval
03

Oversee

Output guards with deterministic rules first and an LLM judge second. Self-hosted Langfuse for traces. Nothing ships as a black box.

M12 Output Guardrails PII refusal · fabrication judge · Langfuse traces

Every project here proves a different thing.

Shipped systems and tools across Rust, Python, Kotlin, and one production API written entirely in COBOL.

irontide

IronTide

A from-scratch Rust BitTorrent engine, published to crates.io and daily-driven as my torrent client.

Rust 2024tokioio_uringSlintaxumHTMX
StatusParity roadmap complete; published to crates.io
ShapeEngine library plus a separate gui/cli/web client
ProtocolsBitTorrent v1 + v2, DHT, PEX, uTP, MSE/PE
In useReplaced qBittorrent on my home server
avatarr

Avatarr

One Rust core behind a desktop app, a web UI, and a CLI. A single-binary Sonarr and Radarr replacement.

RustSlintReactaxumSQLitesqlx
ArchitectureOne Rust core, three front ends
DistributionSingle self-contained binary
PersistenceSQLite with sha256-pinned migrations
ScopeUnified Sonarr + Radarr replacement
inboxly

Inboxly

Google Inbox, rebuilt as a native Rust desktop email client I use every day.

RustDioxusIMAPSMTPOAuth2SQLite
ProtocolsIMAP + SMTP; OAuth2 for Gmail + Outlook
UIState-machine Dioxus, signal-split rendering
ThreadingJWZ threads, rule-layered bundling
AttachmentsPure-Rust PDF text + image OCR
cobweb

cobweb

A production HTTP/JSON API written entirely in COBOL, live on the public internet.

GnuCOBOLCOBOLsocatPodmanTraefikHTTP/JSON
Language100% GnuCOBOL; HTTP parsed by hand
StatusLive in production behind Traefik
Endpointshealth, fortune, time, upcase, rot13, echo
ErrorsCorrect JSON 400 / 404 / 405 / 413
supply-chain-agents

Supply Chain Multi-Agent System

Three specialist agents coordinating through a typed LangGraph state machine

PythonLangGraphLlamaIndexFAISSFastAPIStreamlitLangfuseOllama
TestsUnit + real-LLM integration tests in CI
EndpointsREST API with SSE streaming
ObservabilitySelf-hosted Langfuse topology
GuardrailsRegex hard-block + LLM judge, fail-open
rung-reader

Rung Reader

AI-powered Allen-Bradley PLC ladder logic troubleshooter

PythonLangGraphFAISSsentence-transformersFastAPIpycomm3Allen-Bradley L5XOllama
TestsUnit + integration tests in CI
DependenciesZero cloud dependencies
ResilienceGraceful degradation without LLM/PLC/Redis
TestingMock-swappable pycomm3 driver
lumen

Lumen

A terminal emulator built from the core up in Rust. An honest, in-progress build.

Rustwinitwgpuglyphonportable-pty
CoreHand-written VT state machine (Paul Williams DEC)
RenderingGPU text via glyphon on wgpu
ConcurrencyPTY reader thread, no async runtime
StatusEarly, in-progress build
debt-tracker

Debt Tracker

Offline-first Android debt tracker, published on Google Play

KotlinJetpack ComposeMaterial 3RoomWorkManagerCoroutines
DistributionPublished on Google Play
ArchitectureMVVM with Repository pattern
PersistenceRoom DB with atomic transactions
BackupAutomatic retention, Snapper-style pruning
claude-code-telegram-rs

Claude Code Telegram Bridge

Single-binary Rust service bridging Telegram to Claude Code sessions

Rusttokioteloxidecomraksystemdserde
RuntimeSingle-binary Rust + tokio async
PerformanceLarge startup + memory win over the Python predecessor
Deploymentsystemd notify with watchdog
FormattingMarkdown to Telegram HTML, smart splitting
// get in touch

Building things that have to keep working after the demo? Let's talk.

Production constraints, real users, and the boring parts that decide whether software survives contact with the world. That is the work I care about.