operator @ akaylazy
uptime: … intel: … wx (you): … /cli

akaylazy.com · public-facing portfolio · pi 5 · smyrna ga

THIS WHOLE SITE
IS A RASPBERRY PI
IN A CLOSET.

ADS-B receiver, transit map, mesh node, learning game, intel engine, and the page you're reading. One operator. One Pi. Zero cloud bills. Refresh to see the numbers move.

Aircraft overhead -- via RTL-SDR
MARTA on the move -- vehicles · live GTFS
Mesh nodes -- Meshtastic LoRa
Pi uptime -- since last reboot
Intel cycles --
Weather (you) -- your location

project · 01

CircuitForge live

EE/SCADA learning game.

Why: Self-teach circuits → renewables → ICS security in one game. Earn XP for not breaking the grid.

What: Seven-phase electrical engineering curriculum, plus a SCADA security module that walks you through real-world incidents (Ukraine '15, Colonial Pipeline, the rest). Built progressively — basic circuits to industrial control system attack surfaces.

Play it
--
Progress events logged
modules 7 + SCADA
stack Flask · SQLite · vanilla JS
host nginx → :5099

project · 02

Observatory live · gated

Tactical overlay for a homelab.

Why: If you're going to watch one corner of the world, watch it well.

What: Live map with ADS-B aircraft (squawks 7500/7600/7700 alerted), MARTA vehicles, NWS weather + alerts, USGS quakes, GDOT traffic cameras, drone RemoteID, Meshtastic mesh, and three Broadcastify scanner streams. Behind nginx Basic Auth — operator only.

Knock (auth required)
--
aircraft tracked right now
sources readsb · GTFS · NWS · USGS · GDOT · 511GA
stack Python · MQTT · InfluxDB · Leaflet
home 33.88°N -84.54°W

project · 03

Intel Engine live

Correlation engine. No LLM.

Why: An "AI intel" engine that's actually deterministic Python is harder to build, easier to debug, and costs zero per cycle.

What: Polls four streams every 60s, computes rolling z-score baselines, evaluates four correlation rules (special-squawk crit · heat→traffic · weather→mesh dropout · rush-hour density). Publishes to MQTT. Renders human-readable reports from a Python template — no model in the loop.

Internal tool · paper coming
--
cycles since last restart
streams 4 (aircraft · weather · mesh · marta)
rules 4 (squawk · heat · storm · rush)
cost $0.00 / day

project · 04

Compass in progress

Anonymous spectrum chat.

Why: Pick a topic, take a 5-question quiz, get placed on its spectrum, then talk to someone close to you (or far). No accounts. No history. The match dies when the chat does.

What: Backend live (Express + Socket.io + Redis matchmaking + SQLite). 8 topic spectrums seeded. Quiz scoring works. Frontend SPA: not built yet — the next major lift.

See the static landing
--
sessions in DB · counting from zero
topics 8 seeded
stack Node · Express · Socket.io · Redis · SQLite
status backend live · SPA TBD

project · 05

Doors live

Two narratives. Same topic.

Why: The same data leads to opposite conclusions depending on who's framing it. Read both, then decide.

What: Pick Red Pill (unfiltered / contrarian) or Blue Pill (vetted / mainstream). Topics: drinking water, nutrition, privacy, energy. Researched primary sources behind every claim.

Pick a door
2
narratives · 4 topics · 0 mediation
stack static HTML · vanilla CSS
sources cited inline
tone narrate, don't argue

project · 06

OCC Saga live

Pentest as a saga.

Why: The Sec+ SY0-701 syllabus reads like a phone book. So I rewrote it as a 29-encounter dungeon — read the scene, claim the trophy, unlock the next gate.

What: Five acts, twenty-nine encounters, three deterministic multiple-choice questions per encounter, server-side answer validation (no DevTools cheese). Trophy codes follow the format OCC{NAME_HEX}. Mapped to MITRE ATT&CK + Sec+ domains. No accounts — anonymous UUID per browser.

Begin the saga
--
trophies claimed · across all operatives
encounters 29 · five acts
quizzes 87 server-validated
stack Flask · SQLite · vanilla JS

project · 07

akaylazy.com live · this page

The page you're reading.

Why: A portfolio that shows static screenshots of dead work tells you nothing. This one queries the rest of the stack and shows live state — variable rewards every visit.

What: Black, off-white, amber, and one pink stripe. Brutalist by intent. Live data via /api/now. Visitor weather via open-meteo, geolocated by your own browser (your IP never leaves it). Press / for a CLI.

Source · coming once it's in git
--
days served from a closet
edge Cloudflare Tunnel
origin nginx → static + Flask
assets two fonts · zero JS frameworks

tinker porn · 30 min audit-friendly

The stack.

host Pi 5 · 8GB · arm64 · Debian 12
edge Cloudflare Tunnel
fallback DuckDNS · ER605 NAT
tls Let's Encrypt
web nginx · lighttpd
api Flask · Express · Socket.io
queue Mosquitto MQTT
tsdb InfluxDB 2
flows Node-RED
dash Grafana
cache Redis
db SQLite × 4
sdr RTL-SDR Blog v4
adsb readsb · tar1090
mesh Meshtastic LoRa
scanner Broadcastify HLS
cams GDOT 511GA
storage 58GB SD · backup TBD
power Pironman 5 case
ai none — see Intel Engine
operator @ akaylazy · cli esc to close
akaylazy cli v0.1 · type help for commands
operator@akaylazy:~$