<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"><channel><title>SouthernSky Engineering Blog</title><description>Practical tech education from the SouthernSky engineering team. Project-based tutorials, certification study tracks, and real-world infrastructure insights.</description><link>https://blog.southernsky.cloud/</link><item><title>Building a Professional Demo Site for a School in One Weekend</title><link>https://blog.southernsky.cloud/blog/applied/fra-demo-site-build/</link><guid isPermaLink="true">https://blog.southernsky.cloud/blog/applied/fra-demo-site-build/</guid><description>I rebuilt a school&apos;s outdated website as a polished React demo — photo gallery, video montage, and GitHub Pages deploy. Here&apos;s the full build.</description><pubDate>Wed, 29 Apr 2026 00:00:00 GMT</pubDate><category>applied</category><category>web-development</category><category>react</category><category>vite</category><category>tailwind</category><category>github-pages</category><category>demo</category><category>ffmpeg</category></item><item><title>Building a Video Intelligence Pipeline: Scene Detection + Audio + Face Recognition</title><link>https://blog.southernsky.cloud/blog/professional/video-intelligence-pipeline/</link><guid isPermaLink="true">https://blog.southernsky.cloud/blog/professional/video-intelligence-pipeline/</guid><description>Three standalone tools — SaySee, Cairn, and Tactical ID — combine into a full video intelligence pipeline. Here&apos;s how they fit together.</description><pubDate>Mon, 20 Apr 2026 00:00:00 GMT</pubDate><category>professional</category><category>ai-ml</category><category>video-intelligence</category><category>scene-detection</category><category>audio-classification</category><category>face-recognition</category><category>pipeline</category><category>documentary</category></item><item><title>Backups Are Boring Until You Lose Everything — Here&apos;s My 5-Tier System</title><link>https://blog.southernsky.cloud/blog/foundations/backups-5-tier-system/</link><guid isPermaLink="true">https://blog.southernsky.cloud/blog/foundations/backups-5-tier-system/</guid><description>I built a 5-tier backup system for my workstation: project files, AI config, API tools, system config, and evidentiary archives. Here&apos;s the architecture.</description><pubDate>Thu, 16 Apr 2026 00:00:00 GMT</pubDate><category>foundations</category><category>linux</category><category>backups</category><category>bash</category><category>rsync</category><category>disaster-recovery</category><category>sysadmin</category></item><item><title>Documentary Beat Indexing — 17-Class Scene Taxonomy with FCP XML</title><link>https://blog.southernsky.cloud/blog/professional/scorsai-beat-indexing-taxonomy/</link><guid isPermaLink="true">https://blog.southernsky.cloud/blog/professional/scorsai-beat-indexing-taxonomy/</guid><description>ScorsAI classifies documentary footage into 17 scene types and generates Final Cut Pro XML markers — turning hours of raw footage into a searchable beat sheet.</description><pubDate>Thu, 16 Apr 2026 00:00:00 GMT</pubDate><category>professional</category><category>ai-ml</category><category>documentary</category><category>scene-classification</category><category>fcp</category><category>xml</category><category>ai</category><category>video-production</category></item><item><title>Audio Fingerprinting at Scale: Building a 5-Second Ambient Sound Classifier</title><link>https://blog.southernsky.cloud/blog/applied/cairn-ambient-sound-classifier/</link><guid isPermaLink="true">https://blog.southernsky.cloud/blog/applied/cairn-ambient-sound-classifier/</guid><description>Cairn classifies ambient sounds in 5 seconds using PANNs Cnn14 — what took Shazam years of R&amp;D, we built as a CLI tool. Here&apos;s the architecture.</description><pubDate>Sat, 11 Apr 2026 00:00:00 GMT</pubDate><category>applied</category><category>ai-ml</category><category>audio</category><category>machine-learning</category><category>panns</category><category>pytorch</category><category>cli</category><category>sound-classification</category></item><item><title>SaaS Billing with Stripe — Checkout, Webhooks, Tier Sync</title><link>https://blog.southernsky.cloud/blog/professional/stripe-saas-billing/</link><guid isPermaLink="true">https://blog.southernsky.cloud/blog/professional/stripe-saas-billing/</guid><description>I wired Stripe into a market data service: checkout sessions, webhook handlers, and tier synchronization with Supabase. Here&apos;s the production setup.</description><pubDate>Mon, 30 Mar 2026 00:00:00 GMT</pubDate><category>professional</category><category>web-development</category><category>stripe</category><category>saas</category><category>billing</category><category>webhooks</category><category>supabase</category><category>payments</category></item><item><title>5-Stage AI Prompt Engine: Building an Automated Newsletter System</title><link>https://blog.southernsky.cloud/blog/applied/agent-newsletters-prompt-engine/</link><guid isPermaLink="true">https://blog.southernsky.cloud/blog/applied/agent-newsletters-prompt-engine/</guid><description>I built a 5-stage prompt pipeline that generates, formats, and publishes AI newsletters automatically — from topic research to final HTML.</description><pubDate>Sun, 29 Mar 2026 00:00:00 GMT</pubDate><category>applied</category><category>ai-ml</category><category>ai</category><category>newsletters</category><category>prompt-engineering</category><category>n8n</category><category>automation</category><category>grok</category></item><item><title>How I Deployed 90+ AI Agents with Zero Repetitive Clicking</title><link>https://blog.southernsky.cloud/blog/applied/deploying-90-ai-agents/</link><guid isPermaLink="true">https://blog.southernsky.cloud/blog/applied/deploying-90-ai-agents/</guid><description>I built 90+ specialized AI agents on Open WebUI. A bash script handles auth, knowledge upload, profile image, and model creation — no manual UI work.</description><pubDate>Sun, 29 Mar 2026 00:00:00 GMT</pubDate><category>applied</category><category>ai-ml</category><category>open-webui</category><category>ai-agents</category><category>automation</category><category>bash</category><category>api</category></item><item><title>Building a Home Lab Dashboard with Preact, Express 5, and SQLite</title><link>https://blog.southernsky.cloud/blog/applied/dankmire-home-lab-dashboard/</link><guid isPermaLink="true">https://blog.southernsky.cloud/blog/applied/dankmire-home-lab-dashboard/</guid><description>dankMire is my personal command center — a lightweight dashboard for tracking projects, managing media assets, and monitoring my home lab.</description><pubDate>Fri, 20 Mar 2026 00:00:00 GMT</pubDate><category>applied</category><category>web-development</category><category>preact</category><category>express</category><category>sqlite</category><category>dashboard</category><category>home-lab</category><category>cli</category></item><item><title>Selective Face Recognition for Documentary Privacy</title><link>https://blog.southernsky.cloud/blog/applied/tactical-id-face-recognition/</link><guid isPermaLink="true">https://blog.southernsky.cloud/blog/applied/tactical-id-face-recognition/</guid><description>I built a face recognition system that identifies specific people and blurs everyone else — protecting documentary subjects&apos; privacy in real-time.</description><pubDate>Wed, 18 Mar 2026 00:00:00 GMT</pubDate><category>applied</category><category>ai-ml</category><category>face-recognition</category><category>privacy</category><category>dlib</category><category>opencv</category><category>python</category><category>documentary</category></item><item><title>Multi-Stage Dockerfile: From 1.2GB to 180MB</title><link>https://blog.southernsky.cloud/blog/professional/multi-stage-dockerfile/</link><guid isPermaLink="true">https://blog.southernsky.cloud/blog/professional/multi-stage-dockerfile/</guid><description>OMNI&apos;s Docker image was 1.2GB. Three stages — deps, build, runtime — brought it to 180MB. Here&apos;s the exact Dockerfile with annotations.</description><pubDate>Wed, 18 Mar 2026 00:00:00 GMT</pubDate><category>professional</category><category>devops</category><category>docker</category><category>dockerfile</category><category>optimization</category><category>nextjs</category><category>deployment</category><category>containers</category></item><item><title>Real-Time AI Typing Coach — Building ZenoType</title><link>https://blog.southernsky.cloud/blog/applied/zenotype-ai-typing-coach/</link><guid isPermaLink="true">https://blog.southernsky.cloud/blog/applied/zenotype-ai-typing-coach/</guid><description>ZenoType is a typing practice app that uses a local AI model to generate custom prompts — including a Scripture mode. Built with vanilla TypeScript and Ollama.</description><pubDate>Mon, 16 Mar 2026 00:00:00 GMT</pubDate><category>applied</category><category>javascript-typescript</category><category>typescript</category><category>ollama</category><category>typing</category><category>education</category><category>vanilla-js</category><category>vite</category></item><item><title>What Is a Reverse Proxy and Why Does Every Developer Need One?</title><link>https://blog.southernsky.cloud/blog/foundations/reverse-proxy-every-developer-needs/</link><guid isPermaLink="true">https://blog.southernsky.cloud/blog/foundations/reverse-proxy-every-developer-needs/</guid><description>A reverse proxy sits between the internet and your servers. I use Caddy to route traffic to 5+ services on a single VPS — here&apos;s how it works.</description><pubDate>Sun, 15 Mar 2026 00:00:00 GMT</pubDate><category>foundations</category><category>networking</category><category>caddy</category><category>reverse-proxy</category><category>https</category><category>tls</category><category>web-server</category><category>nginx</category></item><item><title>Fusing 25 Live Data Feeds on a 3D Globe — Layer Pipeline Architecture</title><link>https://blog.southernsky.cloud/blog/professional/omni-layer-pipeline-architecture/</link><guid isPermaLink="true">https://blog.southernsky.cloud/blog/professional/omni-layer-pipeline-architecture/</guid><description>OMNI renders 25 real-time data layers on a CesiumJS globe — AIS ships, aircraft, weather, earthquakes, wildfires. Here&apos;s the layer pipeline that makes it work without melting the browser.</description><pubDate>Sun, 15 Mar 2026 00:00:00 GMT</pubDate><category>professional</category><category>web-development</category><category>cesium</category><category>geospatial</category><category>real-time</category><category>data-pipeline</category><category>performance</category><category>react</category></item><item><title>Natural Language Commanding: Building an NLP Action Dispatcher</title><link>https://blog.southernsky.cloud/blog/professional/lens-nlp-action-dispatcher/</link><guid isPermaLink="true">https://blog.southernsky.cloud/blog/professional/lens-nlp-action-dispatcher/</guid><description>OMNI&apos;s LENS command palette lets users type natural language to control 84 platform actions — fly to locations, toggle layers, run queries. Here&apos;s how the dispatcher works.</description><pubDate>Sat, 14 Mar 2026 00:00:00 GMT</pubDate><category>professional</category><category>ai-ml</category><category>nlp</category><category>command-palette</category><category>ai</category><category>typescript</category><category>ux</category><category>search</category></item><item><title>Bandwidth Monitoring with vnstat and systemd Timers</title><link>https://blog.southernsky.cloud/blog/applied/bandwidth-monitoring-vnstat-systemd/</link><guid isPermaLink="true">https://blog.southernsky.cloud/blog/applied/bandwidth-monitoring-vnstat-systemd/</guid><description>I built a bandwidth alerting system that warns me before I blow through my ISP&apos;s data cap. vnstat tracks usage, a Python script checks thresholds, and systemd fires it every hour.</description><pubDate>Thu, 12 Mar 2026 00:00:00 GMT</pubDate><category>applied</category><category>linux</category><category>vnstat</category><category>systemd</category><category>bandwidth</category><category>monitoring</category><category>python</category><category>alerting</category></item><item><title>Building a Production API Proxy: Rate Limiting, Caching, and SSRF Protection</title><link>https://blog.southernsky.cloud/blog/professional/production-api-proxy/</link><guid isPermaLink="true">https://blog.southernsky.cloud/blog/professional/production-api-proxy/</guid><description>OMNI proxies 13+ external APIs through Next.js API routes. Here&apos;s how I built rate limiting, response caching, and SSRF protection into the proxy layer.</description><pubDate>Thu, 12 Mar 2026 00:00:00 GMT</pubDate><category>professional</category><category>cybersecurity</category><category>api-proxy</category><category>security</category><category>rate-limiting</category><category>caching</category><category>ssrf</category><category>nextjs</category></item><item><title>What Is GPU Power Management and Why Should You Care?</title><link>https://blog.southernsky.cloud/blog/foundations/gpu-power-management/</link><guid isPermaLink="true">https://blog.southernsky.cloud/blog/foundations/gpu-power-management/</guid><description>My RTX 3080 Ti ran at 350W by default. I wrote a systemd service to lock it at 300W — here&apos;s exactly how.</description><pubDate>Tue, 10 Mar 2026 00:00:00 GMT</pubDate><category>foundations</category><category>linux</category><category>nvidia</category><category>systemd</category><category>gpu</category><category>power-management</category><category>rtx-3080-ti</category></item><item><title>Zustand at Scale: 4-Slice Architecture for a Real-Time Platform</title><link>https://blog.southernsky.cloud/blog/professional/zustand-4-slice-architecture/</link><guid isPermaLink="true">https://blog.southernsky.cloud/blog/professional/zustand-4-slice-architecture/</guid><description>OMNI manages globe state, layer toggles, panel visibility, and user preferences across 25+ data sources. Here&apos;s the 4-slice Zustand architecture that keeps it sane.</description><pubDate>Tue, 10 Mar 2026 00:00:00 GMT</pubDate><category>professional</category><category>web-development</category><category>zustand</category><category>state-management</category><category>react</category><category>architecture</category><category>typescript</category></item><item><title>Race Conditions in Cesium Click Handlers — A Three-Week Bug Story</title><link>https://blog.southernsky.cloud/blog/professional/cesium-click-handler-race-conditions/</link><guid isPermaLink="true">https://blog.southernsky.cloud/blog/professional/cesium-click-handler-race-conditions/</guid><description>Clicking an entity on the OMNI globe sometimes selected the wrong one. The bug lived in a closure over stale state. It took three weeks to find.</description><pubDate>Thu, 05 Mar 2026 00:00:00 GMT</pubDate><category>professional</category><category>web-development</category><category>cesium</category><category>race-condition</category><category>debugging</category><category>closures</category><category>react</category><category>state-management</category></item><item><title>Imperative vs Declarative 3D: Why CesiumJS Crashes at Scale</title><link>https://blog.southernsky.cloud/blog/professional/cesiumjs-imperative-vs-declarative/</link><guid isPermaLink="true">https://blog.southernsky.cloud/blog/professional/cesiumjs-imperative-vs-declarative/</guid><description>CesiumJS has a React wrapper called Resium. It works fine for demos. It will destroy your production app. Here&apos;s why I went fully imperative.</description><pubDate>Sun, 01 Mar 2026 00:00:00 GMT</pubDate><category>professional</category><category>web-development</category><category>cesium</category><category>resium</category><category>react</category><category>performance</category><category>3d-rendering</category><category>imperative</category></item><item><title>You Don&apos;t Need the Cloud: Building a Personal AI Lab on a Single Machine</title><link>https://blog.southernsky.cloud/blog/foundations/personal-ai-lab/</link><guid isPermaLink="true">https://blog.southernsky.cloud/blog/foundations/personal-ai-lab/</guid><description>I run 69 AI models locally on a single workstation with zero cloud dependencies. Here&apos;s the exact hardware, software, and setup.</description><pubDate>Sat, 28 Feb 2026 00:00:00 GMT</pubDate><category>foundations</category><category>ai-ml</category><category>ollama</category><category>ai</category><category>local-llm</category><category>gpu</category><category>home-lab</category><category>privacy</category></item><item><title>What Is the Internet, Really? A Tour of the Cables Under Your Feet</title><link>https://blog.southernsky.cloud/blog/foundations/what-is-the-internet-really/</link><guid isPermaLink="true">https://blog.southernsky.cloud/blog/foundations/what-is-the-internet-really/</guid><description>The internet isn&apos;t a cloud — it&apos;s undersea cables, copper wires, and routers in your neighbor&apos;s yard. Here&apos;s what actually happens when you load a webpage.</description><pubDate>Wed, 25 Feb 2026 00:00:00 GMT</pubDate><category>foundations</category><category>networking</category><category>networking</category><category>dns</category><category>tcp-ip</category><category>infrastructure</category><category>how-the-internet-works</category></item></channel></rss>