man joe
JOE(1)                          User Commands                          JOE(1)

NAME
       joe - developer marketing engineer

SYNOPSIS
       joe [OPTIONS...] [PROJECT]

DESCRIPTION
       Joe Karlsson is an engineer who does developer marketing and has
       spent the last decade working on databases, real-time data, IoT, and
       developer tools. He has spoken at over 100 conferences, given a TEDx
       talk, and built an IoT-connected cat litter box that he is probably
       too proud of.

       Currently leads developer marketing at CData, growing the managed MCP
       platform that connects AI agents to live enterprise data. Previously
       built DevRel from scratch at CloudQuery; before that Tinybird,
       SingleStore, and MongoDB. Before DevRel, was a front-end technical
       lead at Best Buy and a full-stack JavaScript instructor.

OPTIONS
       --verbose
              Enable long-form storytelling about homelabs and databases.
              Warning: may not shut up about Proxmox.

       --homelab
              Activate homelab mode. Deploys 40+ containers, sets up
              Proxmox cluster, configures Home Assistant, and wonders
              why the electricity bill is so high.

       --cats
              Enable IoT cat monitoring. Connects litter box to Raspberry
              Pi. Generates conference talk material.

       --film
              Activate Letterboxd integration. Will have opinions about
              every movie you mention.

       --debug
              Increases coffee intake. Decreases sleep. Standard
              engineering tradeoff.

ENVIRONMENT
       EDITOR=neovim
       SHELL=/bin/zsh
       CONTAINER_RUNTIME=docker
       HOMELAB_STATUS=always-tinkering
       CATS=2
       COFFEE_LEVEL=critical

FILES
       ~/.config/homelab/docker-compose.yml
              The file that started it all. Now 847 lines long.

       /var/log/3am-decisions.log
              A growing record of questionable infrastructure choices
              made after midnight.

       /etc/cron.d/gpu-transcode
              Automated GPU transcoding jobs. Yes, at 2am. On purpose.

BUGS
       Buys too many hard drives. Cannot stop adding containers.
       Occasionally mass-assigns GPU transcoding jobs at 2am.
       Has mass-reassigned a variable name in production and called
       it "refactoring." Will talk about homelabs unprompted.

HISTORY
       2015-2017    Full-Stack JavaScript Instructor, DevLeague
       2017-2019    Front-end Technical Lead, Best Buy
       2019-2021    Developer Advocate, MongoDB
       2021-2023    Senior Developer Advocate, SingleStore
       2023-2024    Senior Developer Advocate, Tinybird
       2024-2026    Head of Developer Relations, CloudQuery
       2026-present Principal Developer Marketing Manager, CData

SEE ALSO
       joekarlsson.com/about, joekarlsson.com/work, joekarlsson.com/blog
       GitHub: github.com/JoeKarlsson
       Bluesky: @joekarlsson.com

AUTHOR
       Written by Joe Karlsson, with mass-assistance from mass-caffeine.

JOE(1)                          March 2026                          JOE(1)