joseph@homelab:~ — zsh
guest@homelab:~$ whoami

Joseph Diaz 

Senior Workplace Technology Lead: AI & ML. Building things during the day, running a homelab and an autonomous ops agent after hours.

uptime: 39d on this build
shell: zsh
host: homelab.local
$ cat about.md

A technology enthusiast driven by where things are headed. I build and ship AI and ML systems as part of Major League Baseball Technology, and outside of work I run the same kind of experiments at home — most recently a homelab that mostly runs itself.

based
New York, NY
focus
AI/ML enablement, workplace technology, platform engineering
stack
Python Datadog Machine Learning Claude Code Prompt Engineering
education
B.S. Computer Information Systems, Lehman College
// certifications
aug 2026Okta for AI Agents — Okta
jun 2026Prompt Engineering — Vanderbilt University
jun 2026ChatGPT Advanced Data Analysis — Vanderbilt University
jun 2026Prompt Engineering for ChatGPT — Vanderbilt University
may 2026Machine Learning Specialization — Stanford Online
may 2026Machine Learning — DeepLearning.AI
may 2026Advanced Learning Algorithms — DeepLearning.AI
may 2026Supervised Machine Learning: Regression and Classification — DeepLearning.AI
$ history
Service Desk & Technical Analyst Major League Baseball Nov 2020 — present
  • Engineered an end-to-end observability pipeline in Datadog, aggregating metrics from distributed hardware assets into real-time dashboards that cut response times to critical events.
  • Used Python and data analysis to turn raw ticketing logs into recurring-incident insight reports for cross-functional engineering teams.
  • Applied foundational ML (linear/logistic regression, clustering) to historical operations data, exploring predictive models for system downtime.
  • Maintained technical documentation and data schemas across the incident management ecosystem to keep automated reporting accurate.
IT Service Desk & Data Analyst Major League Baseball Oct 2019 — Oct 2020
  • Parsed, cleaned, and analyzed historical account-provisioning logs with Python to optimize access management workflows.
  • Used AI platforms (ChatGPT, Claude, Gemini) to accelerate script development, draft technical documentation, and troubleshoot network connectivity logs.
  • Managed asset and inventory datasets, tracking hardware/software lifecycles through structured database management.
Information Security Intern Major League Baseball Jun 2017 — Aug 2017
  • Conducted social media vetting and background analysis for candidates under strict confidentiality standards.
  • Supported database management and cross-functional coordination for onboarding review.
$ ls -la ~/projects
An AI wardrobe app: photograph your closet, AI tags every item, and it builds full outfits from what you already own for any "vibe" you ask for — each paired with a matching Spotify track. React Native mobile app, Fastify API, Postgres, and a self-hosted GPU service I built to cut the app's dominant per-image cost.
react native · fastify · postgres · ai/llm
A home server running a Docker media/ops stack, maintained by a Claude-based agent that health-checks, diagnoses, and fixes things on its own.
docker · claude · macos
Turned an existing PrinterLogic install into a full monitoring system: a live Datadog dashboard, automatic Slack alerts and reports, and a Slack bot IT can just ask.
snmp · datadog · slack
This site itself — a terminal-styled archive plus "Nexus," an AI interface on the gate page that answers questions about Joseph, grounded only in what's actually on the site.
github pages · cloudflare · claude code
/more to come…
still building — check back soon.
$ cat fashionvibes/README.md

FashionVibes is an AI wardrobe app: photograph your closet, AI tags every item (category, color, style, season), and it builds full outfits entirely from what you already own for any "vibe" you ask for — Y2K, streetwear, business casual — each with a written rationale and a matching Spotify track that autoplays. Free/Pro subscription via Apple In-App Purchase.

// services
fashionvibes.cc/ ├── mobile/ Expo · React Native · iOS │ ├── closet camera capture → AI tagging pipeline │ ├── ai-stylist vibe → generated outfit + rationale │ └── sharing Instagram Stories share sheet ├── api/ Fastify · TypeScript · Fly.io │ ├── vision + outfit-llm swappable Claude / OpenAI / Gemini providers │ ├── bg-removal self-hosted GPU service + paid-API fallback │ ├── spotify OAuth + vibe→track matching + native playback │ └── billing RevenueCat webhook → Apple IAP ├── database/ Postgres via Prisma (Neon) ├── storage/ S3-compatible object storage (R2) └── web/ marketing site + account portal · Cloudflare Workers
// my build: cost-optimized background removal

Background removal on every closet photo was the app's single largest per-image cost, run through a paid third-party API. I built a self-hosted replacement: an open-source segmentation model accelerated on a home Mac Mini's GPU, served persistently and exposed securely over a Cloudflare Tunnel — no ports opened, no exposed home IP. The backend tries it first and falls back automatically to the paid API on any failure, so reliability doesn't change even though the primary cost does.

Auth is email/password with rotating refresh tokens; both AI steps (clothing tagging and outfit reasoning) run through a swappable provider interface, so the model behind either one can change without touching the rest of the pipeline. Source: github.com/origine33/fashionvibes-cc (private repo).

$ ssh homelab.local
// architecture
homelab/ ├── host-01/ Apple Silicon · 16GB RAM · macOS │ └── docker/media-network │ ├── media-stack :8080 webui │ └── sync-service :5030 webui ├── drive1/ APFS · 1TB · USB → media_data ├── drive2/ USB → media_data2 └── homelab-agent claude-powered · autonomous ops
// live status
servicestateup
media-stack up 4d
sync-service up 4d
homelab-agent up 39d
// loading live status…

The stack runs on a small home server instead of a dedicated NAS OS — Apple Silicon rules out the usual x86 bare-metal options, so everything lives in Docker on macOS instead. Config and secrets stay on the internal disk; bulk media sits on external APFS drives.

Since July 2026 it's been looked after by an autonomous agent built on Claude: it runs from a set of runbooks (health check, diagnose, restart, backup), reads and writes its own memory of what it's learned about the system, and fixes routine problems without being asked — it only pauses for anything destructive.

$ ./printer-agent status

Built on top of an existing PrinterLogic install for a printer fleet at work — no new hardware, no new paid software, just automation layered on data the fleet was already producing.

// build log
  1. 01
    Found the local monitoring source
    Located the PrinterLogic desktop client already running and its SNMP log, which tracks whether each printer on the network is reachable.
  2. 02
    Polled for live detail
    Went beyond up/down status by polling each printer directly for toner level per color, paper tray level and size, and error codes.
  3. 03
    Built a Datadog dashboard
    Shipped the metrics to Datadog: total healthy printers, toner by printer/color, paper by tray, and a breakdown of error types across the fleet.
  4. 04
    Added an automatic alert
    A Datadog monitor flags any printer the moment a cartridge hits empty or drops below a low threshold.
  5. 05
    Automated a daily report
    A scheduled script checks every printer each morning and posts a PDF report to Slack listing what needs toner or paper.
  6. 06
    Built a Slack bot for on-demand answers
    IT staff can message it directly — "toner", "status", a printer's name — and get a live answer instead of opening a console.
  7. 07
    Automated weekly maintenance
    The fleet power-cycles automatically every Sunday morning, with a Slack summary confirming how many printers rebooted successfully.
  8. 08
    Documented everything
    A reference guide covers every script, schedule, and setting, so the system can be maintained or extended without starting from scratch.

None of it required new infrastructure — it reused data the fleet was already producing. The same pattern (parse what already exists, automate the repetitive checks, add a simple way to ask) applies to almost any recurring IT task: server health, license renewals, backup checks, ticket triage.

$ ./contact.sh

Open to new roles in AI/ML and platform engineering.

$ cat ~/.hobbies
runescape
voldimordt →
basketball
guard · 3-point shooter
pokémon
water type · squirtle