I learn by building real systems end to end — edge sensors, secured services, real-time backends, and analytical tools. The pipeline above isn't a metaphor; it's the shape of most things in here.
AppSec · DevSecOps · IoT / OT security — secure by design, from the sensor to the dashboard.
~/projects
├── os/ # emberwall — hardened IoT/OT linux distro (buildroot + rust)
├── cybersecurity/ # secrets vault, zero-trust auth, scanners, hardening
├── iot/ # esp32, lora, edge-ml, secured telemetry pipelines
├── quant/ # backtesting engines, trading analytics
├── backend/ # real-time services, tamper-evident blockchain
└── games/ # because why notA whole Linux distribution, built from source — where my scanner and my vault become one native Rust binary.
A from-scratch Linux distribution built with Buildroot — its own cross-toolchain, a hardened kernel, and a few-MB immutable userland: no package manager, PIE / RELRO / SSP / FORTIFY, KASLR, lockdown + yama LSMs, and an nftables default-deny firewall. It ships sentinel, a native Rust tool that unifies my pyscan scanner and the AegisVault crypto core into a single static binary: concurrent TCP/UDP scanning with OT/ICS + IoT recognition (Modbus, S7comm, IEC-104, CoAP, LoRaWAN) plus an argon2id + XChaCha20-Poly1305 secrets vault. Designed to run as the secure MQTT edge gateway feeding the IoT pipelines below. Live ISO, workstation and locked-appliance variants for x86-64 and ARM64.
|
Local-first, zero-knowledge secrets manager built on DDD + hexagonal architecture: a Python domain core with a native Rust crypto engine (Argon2id + XChaCha20-Poly1305 + zeroize via PyO3). Envelope encryption with Shamir K-of-N recovery, master-password rotation, TOTP/2FA, a tamper-evident hash-chained audit ledger with SIEM export (CEF/syslog/JSON), HIBP breach checks via k-anonymity, X25519 public-key team sharing with revocation, secret injection for DevOps (
|
Ground-up zero-trust identity provider in Rust/Axum with a built-in Security Operations Console. RS256 JWTs with refresh rotation & JTI replay detection, mandatory TOTP MFA for admins, a per-request risk engine with GeoIP impossible-travel detection, RBAC, and a hash-chained (tamper-evident) audit trail. A React SOC console streams events live (SSE) with WebSocket alert popups and a geo-map, plus a built-in attack range — 10 scenarios + storm — to launch attacks and watch detections fire. |
|
Zero-trust auth backend: JWT access/refresh with rotation & replay (JTI) protection, mandatory TOTP MFA for admins, a per-request risk engine with GeoIP impossible-travel detection, RBAC and a security-event audit trail. Fronted by an Astro SOC dashboard behind a Caddy TLS proxy, with a defensive attack simulator that CI-verifies the defenses. Optional HashiCorp Vault layer for secrets & dynamic DB credentials. |
A tiny modular network scanner in Python: async TCP connect scanning, banner grabbing, service/version fingerprinting, CIDR host discovery, JSON/table output, and read-only OT protocol identification for Modbus/TCP lab environments. Built on a clean hexagonal architecture so new scan strategies, discovery methods, and output formats drop in without touching the core engine.
|
|
Security-focused Arch Linux setup: system hardening, reduced attack surface, and production-ready configuration practices, documented end to end. |
▸ Live demos — attack ranges catching attacks in real time
Simulation-first IoT. I build each pipeline against a coherent virtual world before any hardware exists — so the full edge → broker → TSDB → dashboard path is testable on day one, and the ESP32/LoRa integration stays isolated to adapter swaps. Hexagonal cores, MicroPython-ready, enforced by architecture fitness tests. Three end-to-end pipelines so far, 123 tests between them, security built in.
🔥 They all ingest through Emberwall — my hardened MQTT edge gateway.
| Pipeline | Domain | Security | Tests | Status |
|---|---|---|---|---|
| 🌾 agrisentinel | crops · water · livestock | HMAC + anti-replay + anomaly detection | 33 |
sim-ready |
| 🛡️ sentinel-node | air · presence · edge ML | on-device ML, raw media never leaves | 45 |
sim-ready |
| ☀️ solar-weather-station | weather · solar power | self-powered edge, LoRa link | 43 |
sim-ready |
|
Solar-powered weather-station architecture developed simulation first. A coherent virtual weather world drives simulated BME280, BH1750, PMS5003 and rain sensors, reproducing daylight cycles, pressure fronts, rainfall, humidity changes, particulate scrubbing, solar charging and battery behavior. Telemetry flows over MQTT through Node-RED into InfluxDB and Grafana, while the hexagonal, MicroPython-ready core keeps the future ESP32 + LoRa hardware integration isolated to adapter changes. Ingest is handled by my Emberwall MQTT edge gateway. |
Why simulation-first? Building against a virtual world means the whole pipeline — sensors, broker, storage, dashboards, and the security layer — is verified in CI before a single wire is soldered. The domain and application layers are MicroPython-safe, so the move to real ESP32 hardware is a mechanical adapter swap, not a rewrite. Same discipline I apply to backend work: test the contract, isolate the I/O.
▸ Live demos — dashboards & a security layer catching an attack
▸ More IoT — earlier hardware & LoRaWAN projects
▸ Live demos — real-time terminal & a chain breaking in cascade
> build small systems, not isolated scripts
> measure what you build
> keep security in mind from line one
> ship something that actually works
From edge devices to secured data — still learning, still building.









