Hi, I'm

    Jason

    I write software and run networks for a small ISP. Internal tools, Python that talks to routers, and the servers underneath all of it. Everything I build for myself, I host myself.

    About

    Who I am

    I'm not 100% a web developer and I'm not 100% an IT guy. I'm somewhere in the middle. I write TypeScript, I vibe code my way to solutions for our customers and our business, and I've leaned all the way into the AI age. This site is proof, Claude and I built it together lol.

    At Sun Valley Broadband, if something needs to be built, automated, or explained to a human, it usually lands on me. Over the past year that's been internal tools, a pipeline that documents our whole network, and dashboards our support team uses.

    Off the clock I run Linux on everything I own. Gentoo compiled from source with a custom kernel on a ThinkPad T420, Arch and Fedora on other machines, FreeBSD on a Raspberry Pi. My homelab has its own CI/CD and I self-host nearly every service I depend on, including this site.

    I care about open source and I mean it. If a thing has a self-hosted version, I'm running that one.

    zsh

    ~ neofetch --whoami

                -/oyddmdhs+:.                
          -odNMMMMMMMMNNmhy+-`             
        -yNMMMMMMMMMMMNNNmmdhy+-           
      `omMMMMMMMMMMMMNmdmmmmddhhy/`        
      omMMMMMMMMMMMNhhyyyohmdddhhhdo`      
     .ydMMMMMMMMMMdhs++so/smdddhhhhdm+`    
      oyhdmNMMMMMMMNdyooydmddddhhhhyhNd.   
       :oyhhdNNMMMMMMMNNNmmdddhhhhhyymMh   
         .:+sydNMMMMMNNNmmmdddhhhhhhmMmy   
            /mMMMMMMNNNmmmdddhhhhhmMNhs:   
         `oNMMMMMMMNNNmmmddddhhdmMNhs+`    
       `sNMMMMMMMMNNNmmmdddddmNMmhs/.      
      /NMMMMMMMMNNNNmmmdddmNMNdso:`        
     +MMMMMMMNNNNNmmmmdmNMNdso/-           
     yMMNNNNNNNmmmmmNNMmhs+/-`             
     /hMMNNNNNNNNMNdhs++/-`                
     `/ohdmmddhys+++/:.                   
       `-//////:--.                       
    ┌─────────────────────Developer Stats─────────────────────┐
    Commits this year: Loading...
    Languages: Loading...
    └─────────────────────────────────────────────────────────┘
    ┌─────────────────Entertainment/Social─────────────────┐
    Music: Loading...
    💬Discord: Loading...
    🎮Steam: Loading...
    📅Recently played: Loading...Loading hours in the last 2 weeks
    └─────────────────────────────────────────────────────┘
    ┌─────────────────────Top Repos─────────────────────┐
    Loading repositories...
    Loading repositories...
    Loading repositories...
    └─────────────────────────────────────────────────────┘
    ┌───────────────────────────────────Uptime / Age / DT─┐
    Age: 23 Years
    Uptime: 0s
    DateTime: Loading...
    └─────────────────────────────────────────────────────┘
    ~/whoisjason
    on main
    2s
    00:00
    _
    Web Development

    Things I've built

    Work tools, client sites, and the apps I build for myself. Most of these are running in production right now.

    ISP work

    Public IP → customer tracing

    Give it a public IP and it walks core router ARP, CPE and OLT MAC tables, and the NMS until it lands on the account responsible.

    Next.jsSSHMSSQL
    ISP work

    Support dashboards

    I turn raw NMS data into screens tech support can read at a glance. Throughput, signal, and device details for every customer.

    Next.jsRechartsUISP API
    ISP work

    Front-desk CRM

    Customer management app I built for our reception staff. Customizable fields, role-based access, runs in Docker.

    Next.jsPrismaDocker
    ISP work

    ISP customer website

    I built and maintain Sun Valley Broadband's public-facing website.

    Next.jsKubernetes
    ISP work

    FCC broadband labels

    Generates the FCC-mandated broadband consumer labels, the nutrition-facts-style disclosure every US ISP now has to publish. I open-sourced it.

    Next.jsFCC compliance
    Personal

    Notes App

    A self-hosted notes app that works like Google Docs. Real-time sync across devices, offline support, image uploads, 2FA.

    Next.jsPocketBaseTanStack Query
    Personal

    BGP Looking Glass

    Shows how the rest of the internet sees any IP. Live routes from RIPE collectors worldwide, and I explain what the BGP communities mean so you don't have to go look them up.

    Next.jsRIPE Stat API
    Personal

    Bee Blog

    My blog. I wrote the platform too: Prisma on SQLite, an RSS feed, and self-hosted Rybbit for analytics.

    Next.jsPrismaSQLite
    Personal

    Docker Manager

    A web UI for running my containers from the browser instead of SSHing in every time.

    Next.jsDocker API
    Personal

    MP3 Stem Extractor

    Splits a song into separate audio stems using an AI model running on my own hardware. I built it for my music producer friends.

    Next.jsLocal AI
    Personal

    P2Pool Observer

    Dashboard for Monero P2Pool Mini mining stats. I run the node it watches.

    Next.jsMonero
    Client work

    Small-business sites & hosting

    Local businesses hire me to design, build, and host their sites. A contracting company, a chiropractor, an auto-injury clinic, and a few others.

    Next.jsWeb hosting
    Networking & Systems

    Networks and systems

    A year of automating, documenting, and physically maintaining a real ISP network, plus the homelab where I try things before they touch production.

    ISP work

    Network source of truth

    I wrote a Python pipeline that documents our entire network in NetBox. 370+ devices across 76 sites, imported and kept current without anyone touching it.

    PythonNetBoxREST APIsSSH
    ISP work

    Fiber & wireless fleet automation

    Containerized services I wrote that provision, name, rate-limit, and set access control on every Ubiquiti fiber ONU and wireless CPE we own.

    PythonDockerUISP API
    ISP work

    Ansible fleet automation

    I manage our server fleet with Ansible over SSH. Playbooks and roles bootstrap a new box, deploy apps, and keep configs identical across every host. One of them generates our BGP filters straight from inventory.

    AnsibleBGPConfig management
    ISP work

    Regulatory data pipelines

    Raw billing records go in, FCC and CPUC broadband filings come out. The pipeline handles geocoding, deduplication, and whatever format each agency wants this year.

    PythonMSSQLGeocoding
    ISP work

    Billing data & Platypus

    I know the Platypus billing system and the MS SQL behind it: how the data is laid out and how client-side apps talk to it. Most of my internal tools read from there.

    PlatypusMS SQL ServerPython
    ISP work

    Phone system (FreePBX)

    I run the phones on Asterisk and FreePBX. Call queues, extensions, voicemail, and the IVR menu that routes callers to the right place. I script the config through the API and generate the voice prompts with text-to-speech.

    FreePBXAsteriskVoIPIVR
    ISP work

    Switch & router CLI

    I live on the switch command line. Cisco and Brocade: VLANs, trunking, interface config, and chasing a MAC through ARP tables when something is broken.

    Cisco IOSBrocadeMikroTikVLANs
    ISP work

    The physical network

    Our customers get online over GPON fiber, fixed wireless, and DOCSIS, and I work across all three. When a cable needs re-tipping or a radio on a tower needs swapping, I drive out and do it.

    GPONDOCSISFixed wirelessField work
    Personal

    Public recursive DNS + DoT

    I run my own recursive resolver instead of trusting someone else's. Unbound looks up every name from the root servers down, Pi-hole filters ads in front of it, and the whole thing answers over DNS-over-TLS so nobody on the wire sees what I'm resolving. It's reachable from anywhere through a Pangolin tunnel.

    UnboundPi-holeDNS-over-TLSPangolin
    Personal

    Homelab

    Every site linked on this page runs on hardware I own. Gitea Actions for CI/CD, Portainer, a reverse proxy, a LibreSpeed speedtest server, an Emby media server, and a Monero node. It's all one git repo of compose files.

    DockerGitea ActionsPortainer
    Personal

    Fleet security monitoring

    Wazuh runs across my machines and watches for the things that matter: file changes, failed logins, anything that looks off. Every endpoint reports in real time, and when something trips I have a place to actually respond. I think about security as a defender first. Thinking like an attacker is just how you find the holes before someone else does.

    WazuhEndpoint monitoringIncident responseBlue team
    Personal

    SNMP monitoring & alerting

    A monitoring app I built that polls devices over SNMP and tells me when one goes quiet. Rate-limited to one notification per device per half hour so it doesn't blow up my phone.

    Next.jsSNMP
    Personal

    Virtualization & AD lab

    I stood up a full Microsoft Active Directory domain on KVM/QEMU. Domain controller, users, Group Policy, passwords and privilege access, all virtualized.

    KVM/QEMUActive Directory
    Personal

    Community LoRa mesh

    I'm building a Meshtastic LoRa mesh across my area. Long-range radio that keeps working with no internet and no cell signal behind it. The router nodes run on solar, so I build each one from a RAK3401 radio, a panel, and a battery, put it up on a tower, then keep it alive from its telemetry. Reading the voltage curve tells me whether a node is charging enough to make it through the night or slowly starving.

    MeshtasticLoRaSolarOff-grid
    Personal

    Linux as a daily driver

    Gentoo compiled from source with a custom kernel on a ThinkPad T420. Arch and Fedora elsewhere, FreeBSD on a Raspberry Pi, a heavily customized Hyprland desktop. I'm at home in any UNIX shell.

    GentooArchHyprlandFreeBSD
    Artificial Intelligence

    AI on my own hardware

    Open-source models running on hardware I control. Whatever I feed them stays here.

    ISP work

    Company-specific AI

    I set up self-hosted open-source models with our own company context loaded in, so staff can ask internal questions without any of it leaving the building.

    Self-hosted LLMsCompany knowledgePrivacy-first
    Personal

    Self-hosted AI portal

    My own Open WebUI instance serving local open-source models. No subscription, and nothing I type goes to somebody else's server.

    Open WebUILocal models
    Personal

    Agentic dev workflow

    I wire AI coding agents to a persistent Obsidian vault so project context carries across machines and sessions instead of starting from zero every time.

    Claude CodeMCPObsidian
    Hardware & Field IT

    Hands-on work

    The jobs that need a screwdriver and a drive out to the site.

    Client work

    Hotel-wide Omada network

    I set up a TP-Link Omada network covering a whole hotel. Controller-managed access points across the property.

    TP-Link OmadaWi-Fi deployment
    Client work

    Custom AI servers

    Customers who want to run models locally hire me to spec and build the box. GPU selection through OS install and inference setup.

    GPU buildsLocal AI
    Client work

    Hard drive data recovery

    I pull data off failing drives. Image the disk first, then get what matters out before the hardware quits for good.

    Data recoveryDisk imaging
    Client work

    IP camera systems

    Camera systems for small businesses around town. I handle the cameras, the cabling, and setting up remote viewing so they can check in from their phone.

    IP camerasNetworking
    Personal

    PC & server building

    10+ years of custom builds. Gaming rigs, water-cooled machines, and a few servers that ended up in production.

    Custom buildsWater cooling
    Skills

    What I work with

    Jack of all trades, on purpose. I'd rather be useful across all of it than expert at exactly one thing.

    Languages & Data

    TypeScriptJavaScriptPythonSQLBashPostgreSQLMS SQL ServerMySQLSQLite

    Web

    Next.jsReactTailwind CSSPrismaPocketBaseTanStack Queryshadcn/uiNode.jsElectron

    Linux & Systems

    Gentoo (source-built, custom kernel)ArchFedoraFreeBSDsystemdShell scriptingHyprland / WaylandKVM / QEMUActive Directory

    Self-hosting & DevOps

    Docker & ComposeDocker SwarmGitea Actions CI/CDPortainerReverse proxiesAnsiblePi-hole + Unbound DNSDNS-over-TLSPangolinLibreSpeedSNMP monitoringWazuh

    Networking

    BGPRecursive DNSFreeRADIUSDHCPDOCSISGPON / FTTHFixed wirelessVLANs & trunkingCisco IOS CLIBrocadeMikroTikUbiquiti UISPTP-Link OmadaLoRa / MeshtasticAsterisk / FreePBX

    AI & Hardware

    Self-hosted LLMsOpen WebUIClaude Code & MCPAI server buildsPC & server buildingData recoveryIP camera systems

    Certifications

    ❯ claude

    Claude Code in Action — Certified

    Anthropic's certification on agentic software development with Claude Code.

    View Certificate

    Google IT Fundamentals Certified

    Successfully completed the Google IT Fundamentals course, gaining essential skills in IT support and operations.

    View Certificate

    Google AI Essentials Certified

    Completed Google's AI Essentials course, mastering generative AI tools, prompt engineering, and responsible AI practices.

    View Certificate
    For fun

    VOIDFALL

    VOIDFALL — a floating-island Minecraft network

    A floating-island network where losing your bed, or your hearts, means losing everything.

    VOIDFALL is my Minecraft server, and it's where I get to over-engineer something with no customer waiting on it. Six game modes on one network. I wrote the plugins behind it, built out the ranks and the store, and put up the site that fronts it.

    BedWarsSkyWarsLifestealDuelsSkyblockPrison
    Visit VOIDFALL ↗mc.whoisjason.me
    Blog

    My blog

    I write about whatever I'm currently rabbit-holed on.