Disclaimer: This repository documents the architecture and problem-solving approach behind systems independently designed and built by the author. It contains no proprietary source code, API keys, credentials, employer branding, or real user/organizational data. Screenshots are illustrative proof-of-concept only. Systems built using employer infrastructure (Jamf Pro) are documented here as a record of skill and handover-ready design, not a claim of personal ownership over the deployed instance.
Wraps Apple’s own networkQuality binary in a branded UI — no third-party
CLI, no external server dependency beyond Apple’s own infrastructure.
| 📦 External Dependencies | ⏱️ Auto-Kill Timer | 🖥️ OS Requirement |
|---|---|---|
| 0 | 60 sec | Monterey+ |

One click, one native macOS binary, one branded progress UI. No install, no account, no third-party server round-trip beyond what Apple’s own test already requires.
networkQuality Over Ookla/CLI ToolsnetworkQuality gives no live progress feed — it’s a black box until it
returns. Rather than leave users staring at a frozen 0%, the test runs in the
background while a loop tracks the actual running process, not just
cosmetic timing:
networkQuality > /tmp/speedtest_output.txt &
nqPID=$!
currentProgress=5
while kill -0 $nqPID 2>/dev/null; do
((currentProgress++))
echo "progress: $currentProgress" >> "$commandFile"
sleep 0.3
done
Dead ends that shaped the final design:
| Problem | What broke | Fix |
|---|---|---|
| Apple renamed a metric mid-OS-cycle | Download capacity → Downlink capacity, breaking the parser |
Extended regex matches either label, OS-version-agnostic |
| Test window could get buried behind other apps | Silent orphaned process | --ontop + 60-second auto-kill safety timer |

SwiftDialog · bash · native macOS networkQuality
network-speedtest/
├── README.md
├── screenshots/
│ ├── Speedtest_Progress.png
│ └── Speedtest_Complete.png
└── scripts/
└── network_speedtest.sh