Skip to content
View tylerbcrawford's full-sized avatar

Block or report tylerbcrawford

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.

Content in all repositories owned by your account will be closed.
Maximum 250 characters. Please don’t include any personal information such as legal names or email addresses. Markdown is supported. This note will only be visible to you.
Report abuse

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

Report abuse
tylerbcrawford/README.md

Tyler Crawford

Fifteen years of customer-facing technical support, then infrastructure. I've done technical support at a small Montreal pro-audio company since 2009, as senior technician from 2021 (supervising and training two juniors) and, since late 2025, as its only technician: 4,000+ resolved tickets, mostly Mac-based creative professionals with a driver, firmware, licensing, or network problem standing between them and a session. Outside work I run a 57-service self-hosted environment on Ubuntu, joined to a six-node Tailscale fleet, and I'm CompTIA Security+ certified with Network+ in progress. Alongside the support work, I spent nine years tour-managing and running front-of-house for Juno- and Polaris-nominated artists: 300+ shows in nine countries, console networks and RF coordination under pressure, no helpdesk. That's where the instinct to stay calm and diagnose comes from.

Cross-platform by necessity: macOS daily since 2005 and the platform I support professionally · Linux servers and a Linux laptop at home · Windows for PC builds and the occasional user bug report · iOS as a tailnet node.

How I build: the infrastructure and tooling repos below were built with Claude Code under my direction. I own the architecture and run them in production; each repo says so at the top. The bootcamp write-ups were prepared the same way from 2024 lab work.

Support in the Open

  • Shipping a fix for a stranger's Windows bug. The first issue on Subgeneratorr was a Windows user whose containers wouldn't start. Diagnosed CRLF line endings on the entrypoint from the log they pasted, shipped a .gitattributes + Dockerfile fix on a branch, and gave them copy-paste steps to verify before merging. Issue #1PR #2.
  • Writing the runbook after the outage. A silently expired Tailscale node key took my home server off the tailnet. The postmortem became tailscale-fleet-watchdog: the incident, the two bugs the tests didn't catch, and why each design decision was made.
  • Docs that explain the why. The networking doc for my stack walks DNS layers, address spaces, firewall rules and traffic paths the way I'd explain them to a user, not a machine.

Production Infrastructure

A real, daily-driver environment, secured and automated end to end.

  • Infrastructure Showcase: Reference architecture for the full 57-service stack: Docker Compose, nginx reverse proxy, Google OAuth2 on every web UI, wildcard SSL via DNS-01, UFW + fail2ban, a 5-wave tiered startup, and a split access model where public services go through OAuth2 and private ones bind only to the Tailscale address.
  • Tailscale Fleet Watchdog: Per-node self-check plus a REST-API fleet audit for a six-node tailnet. Catches daemon logout, imminent or expired node keys, expiry-config drift, and offline always-on nodes. Bash, cron and launchd, 22 tests.
  • Server Monitoring Suite: Container health, resource-threshold alerts, SSL-expiry checks, and log-health auditing, all with Discord alerting and cooldown/dedup logic.
  • Restic Backup System: Modular, encrypted, versioned backups with offsite sync to Google Drive or Backblaze B2, retention pruning, and integrity verification.
  • Boo Bot: Production Discord bot for the server's community. Rebrands every notification under one identity, suppresses floods, handles requests, and pulls trailers.
  • Homelab Scripts: Tiered startup, inotify-driven file watchers, and a 6-source API fallback chain for metadata enrichment.

AI Orchestration & Evaluation

I direct AI agents to build software, and I evaluate those agents for capability and safety.

  • AI Agent Evaluation at Mindrift. I author and calibrate adversarial and capability test cases for LLM-powered agents: indirect prompt-injection red-teaming on one side, MCP-driven capability evals gated by a CI/CD pipeline and an LLM-as-judge review on the other.
  • Agent Dispatcher: Web dashboard for orchestrating headless AI coding agents (Claude, Gemini, Codex) against a queue of project tasks. I run it in production for my own projects.
  • llm-eval-harness: LLM-as-judge harness that scores model outputs against a rubric and gates CI on the result. Runs fully offline with recorded fixtures.
  • Subgeneratorr: Subtitle generator that orchestrates Deepgram Nova-3 or local Whisper with your choice of LLM for keyterm extraction and translation. Built to fill the gaps Bazarr can't cover.

Cybersecurity Projects (UofT, 2024)

  • Penetration Testing: 3-day pen test covering SQL injection, RCE on Struts/Tomcat, Shellshock, and credential cracking.
  • Splunk SIEM: Custom detection rules for brute-force, SQLi, and DoS, with incident-response writeups.
  • Azure Cloud Security: Multi-VM deployment with NSGs, Jump Box architecture, and Ansible automation.
  • IoT Vulnerability Analysis: TP-Link smart bulb security assessment, CVE reproduction, and MITM demonstration.

Certifications

  • CompTIA Security+ (SY0-701): earned 2026
  • CompTIA Network+ (N10-009): in progress

LinkedIn

Pinned Loading

  1. infrastructure-showcase infrastructure-showcase Public

    My homelab: 57 services on a home server, plus a VPS, on a 6-node Tailscale fleet. Docker Compose, nginx, OAuth2, tailnet-only private services, automated monitoring and backups on Ubuntu Server.

  2. tailscale-fleet-watchdog tailscale-fleet-watchdog Public

    Watchdog for small tailnets: catches silent Tailscale node-key expiry, daemon logout, and offline always-on nodes via the REST API — Bash, cron/launchd, Discord alerts, 22 tests

    Shell

  3. subgeneratorr subgeneratorr Public

    Generate and translate subtitles for Plex, Jellyfin, and Emby — Deepgram Nova-3 or fully local Whisper (offline, $0). Keyterm prompting for proper nouns, LLM translation into 54 languages (Claude/G…

    Python 10

  4. agent-dispatcher agent-dispatcher Public

    Web dashboard for orchestrating headless AI coding agents (Claude, Gemini, Codex)

    TypeScript

  5. restic-backup-system restic-backup-system Public

    Encrypted, verified backups for Docker volumes and hosts — offsite to any rclone remote (Google Drive, Backblaze B2), multi-host config, Discord notifications, built on restic.

    Shell

  6. server-monitoring-suite server-monitoring-suite Public

    An observability stack for self-hosted infrastructure — Docker container health monitoring, resource alerts, SSL expiry checks, and log auditing, with Discord notifications.

    Shell