Software engineer who enjoys working on developer tooling, backend services, observability infrastructure, and distributed systems.
Self-hosted alternative to Last.fm with public profile pages:
- Built with Rust, Axum, and PostgreSQL
- Token-based authentication with bcrypt password hashing
- RESTful API for submitting scrobbles from music players
- Public profile pages showing listening history and stats
- Embedded migrations via sqlx
- Designed for single-user or small community deployment
Running personal infrastructure with systemd instead of Docker:
- Manages Gitea, Woodpecker CI, Scrob, GoatCounter (3 instances), Caddy, PostgreSQL
- Declarative config in git with simple bash scripts
- Bootstrap script for initial setup, deploy script for updates
- Automated binary updates via GitHub releases API
- Simple, explicit, debuggable - no container orchestration overhead
A TOML-based resume format with strict validation and static generation:
- JOBL: Structured resume specification with version-aware parsing
- Type-safe validation with comprehensive error reporting
- Portable
.joblfiles for version control and collaboration - SRG: Static generator converting JOBL to HTML and PDF
- Clean, professional templates optimized for screen and print
A Discourse plugin implementing spendable in-forum currency:
- Topic pinning, boosting, and custom flair purchases
- Background jobs for transaction processing
- Integration with Discourse's user system and permissions
- Custom admin interface for currency management
repo part 1 part 2 part 3 part 4
Lightweight terminal-based music player inspired by cmus:
- Smart metadata handling with directory-based album grouping
- Filename fallbacks for missing ID3 tags
- ZIP import for extracting albums from compressed files
- Search functionality with fuzzy matching
- Playback controls with autoplay and repeat modes
- macOS compatibility
Terminal-based podcast player with RSS/Atom feed support:
- Built with ratatui and crossterm
- Podcast discovery via gpodder.net integration
- Episode playback with ALSA/CPAL audio backend
- Feed refresh and episode tracking
- Pause/resume with proper state management
- Persistent library storage
- Rust (TUI development, audio processing, systems programming)
- TypeScript, Node.js
- Ruby on Rails & Discourse plugin development
- Systems design & distributed systems
- Observability & monitoring (Prometheus, metrics exporters)
- Infrastructure automation (Docker, CI/CD, Makefiles)
- Developer tooling & CLI applications
- Music metadata standards (ID3, RSS/Atom feeds)


