Skip to content
View ducks's full-sized avatar

Block or report ducks

Block user

Prevent this user from interacting with your repositories and sending you notifications. Learn more about blocking users.

You must be logged in to block users.

Maximum 250 characters. Please don't include any personal information such as legal names or email addresses. Markdown supported. This note will be visible to only you.
Report abuse

Contact GitHub support about this user’s behavior. Learn more about reporting abuse.

Report abuse
ducks/README.md

whoami

Software engineer who enjoys working on developer tooling, backend services, observability infrastructure, and distributed systems.

tech

recent projects

Scrob - Self-Hosted Music Scrobbling

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

repo blog post

burrow-systemd - VPS Infrastructure Management

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

repo blog post

JOBL + SRG - Structured Resume Tooling

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 .jobl files for version control and collaboration
  • SRG: Static generator converting JOBL to HTML and PDF
  • Clean, professional templates optimized for screen and print

JOBL repo SRG repo

Yaks - Virtual Currency for Discourse

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

Shelltrax - TUI Music Player

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

repo blog post

Shellcast - TUI Podcast Player

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

repo

Interests

  • 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)

Pinned Loading

  1. dotfiles dotfiles Public

    Lua

  2. shelltrax shelltrax Public

    A cmus (terminal-based music player) clone written in Rust

    Rust

  3. node-postgres-exporter node-postgres-exporter Public

    A lightweight, configurable Prometheus exporter for PostgreSQL written in Node.js.

    JavaScript 1

  4. gitvote gitvote Public

    Git-based cryptographically verifiable voting system using signed commits, pull requests, and fully auditable blockchain-style block generation.

    Rust

  5. nvim-vandelay nvim-vandelay Public

    What does Art Vandelay import?

    Lua 1