DevOps
& Infrastructure

Enterprise deployments, network reliability, security and maintenance, bespoke web apps, and local AI implementation.

From web applications to network infrastructure — networks deployed across homes and small businesses up to 1,000 m².

About Me

Eric Li

I design, deploy, and maintain real infrastructure. My homelab runs five isolated VLANs, 32 containerised services on a three-node Proxmox VE cluster with 2-of-3 quorum, and a full monitoring stack 24/7, with guests spread across all three nodes so one machine failing is not an outage — every piece built and documented from scratch. I'm moving into tech full-time by 2027, focused on networking and data science, and I'd rather prove it with systems that run than a job title I don't hold yet.

10Projects

Portfolio builds plus four production networks deployed

4Certifications

Industry credentials, in progress

3Years Hands-On

Self-directed, building and breaking real systems

Portfolio Showcase

Work that ships and runs.

Real projects across web, mobile, and network infrastructure — each one solving an actual problem, not following a tutorial.

Completed

Shipped projects that are live and running — battle-tested in the real world.

01

HomeLab Maintained

Production-grade self-hosted infrastructure running 24/7 — networking, compute, storage, monitoring, smart home, and a full Linux ISO stack, all built from scratch.

Details
UniFiDockerLinuxGrafanaHome AssistantVLANsProxmox
Networking
UniFi Cloud Gateway Fiber with five isolated VLANs, inter-VLAN firewall policies, split-horizon DNS and DHCP from the gateway, and 50+ connected clients across bonded 2.5GbE links
Containers & Services
32 containerised services on a three-node Proxmox VE cluster of Dell OptiPlex nodes — Immich, Grafana, Prometheus, Loki, Forgejo, n8n and more, managed via Portainer
Observability
Prometheus metrics, Grafana dashboards, and Loki log aggregation — custom overview dashboard built via the Grafana API
Virtualisation & Redundancy
A three-node Proxmox VE cluster with 2-of-3 quorum — the main server, Home Assistant, and LXC guests for monitoring, ingress and staging spread across all three nodes, so one machine failing is not an outage
Automated Ops
Nightly update pipeline that reads changelogs, judges risk, and requests approval over Discord; restore-verified backups; self-hosted Forgejo mirroring to GitHub
Smart Home
Matter and Thread over Matter for local device control, HomeKit, Philips Hue, and Meross unified through Home Assistant
View full details →
02

Disclaude Sesh Maintained

An open-source Discord bridge for running Claude Code on a headless server — start, drive, and supervise AI sessions from a phone, published with full docs and versioned releases.

DetailsGitHub
GitHubOpen SourceDiscordTypeScriptBunsystemdClaude Code
The gap
Claude Code's remote interfaces can only attach to a session that's already running — on a headless server there's no native way to start one remotely. This closes that gap from Discord
Architecture
Two bots with deliberately split jobs: the official channel plugin carries conversation and tool-approval buttons; a minimal supervisor maps four commands to systemd — no shell passthrough, zero inbound ports
Resilience
systemd user units and linger survive reboots, tmux survives dropped connections, a restart loop survives crashes — proven with an unattended reboot test before release
Shipped
MIT-licensed with semver releases, a full manual install tutorial plus an AI-assisted install path, and an auto-repatcher that keeps an optional plugin patch alive across updates
View full details →
03

Stream Deck Usage Meter Maintained

A fork of an open-source Stream Deck plugin that reports live Claude usage limits and local token and cost totals — extended with dial support, a vendored dependency, and a release gate.

Details
TypeScriptNode.jsStream Deck SDKCI
Dial support
Stream Deck+ encoders, which the original does not handle — rotate cycles the metric, push forces a refresh, a touch tap advances one metric, and the choice persists per dial
Supply chain
The settings panel loaded a component library from a third-party domain at runtime, with no integrity check, into a view showing account details. That library is now vendored and audited in-tree
Upstream bug
The original's per-key profile feature could not work: an optional chain referenced a property that does not exist in the pinned SDK version, so it silently returned instead of sending, and the dropdown never received its options
Release gate
Typecheck, tests, a reproducible-bundle check and manifest validation run before any push — each one proven able to fail before being trusted to pass
04

FileIt Maintained

A Windows tool that keeps the Downloads folder sorted on its own — files land, get classified by type, and move to where they belong without being touched.

Details
PythonWindowsAutomation
Shipped
v1.1.0 released and frozen, with the next revision in progress alongside it rather than on top of it
Release scheme
One folder per version, released versions immutable — so a shipped build cannot be edited by accident while the next one is being worked on
Install
A single generated installer script with everything embedded, rebuilt from source by a build step so the distributed file is never hand-edited
In Progress

Active projects currently being developed and refined.

05

Family Home Dashboard

A wall-mounted touchscreen that keeps the household in sync — shared calendar, live weather, and event countdowns at a glance.

Details
Raspberry Pi 5DockerHome AssistantTouchscreenCalendar SyncWeather API
Hardware
Raspberry Pi 5 running the dashboard as a containerised service, with a touchscreen display for interaction
Architecture
Containerised deployment allows Home Assistant to run alongside the dashboard on the same device — enabling smart device control directly from the screen
Integrations
Custom calendar sync keeping shared family events up to date; weather API for live local forecast data
06

Caddy Rating App

A mobile app for submitting and tracking caddy ratings, with 5-star submissions syncing live to a provider dashboard.

Details
React NativeExpoTypeScriptFirebaseFirestoreCloud FunctionsMobile
Frontend
React Native with Expo SDK 51, TypeScript, and Expo Router — tab-based navigation between a Rating screen and a Provider Dashboard
Backend
Firebase Firestore for real-time data storage, Cloud Functions v2 for server-side logic, and EAS Build for deployment
Real-Time Sync
Ratings submitted by clients appear instantly on the provider dashboard — no refresh required, synchronised live across all connected devices
Upcoming

Projects that are scoped, planned, and queued up — real work coming down the line.

07

Hotel IPTV System — 100+ Rooms

End-to-end overhaul of a hotel's network and TV across 100+ rooms — new topology, an IPTV headend, and automated recovery.

Details
IPTVVLANsFirewallNetwork DesignDockerAutomation100+ Rooms
Network Redesign
Reconfiguring the existing network to a clean VLAN and firewall architecture — a healthier, more maintainable topology across the property
IPTV Headend
A dedicated IPTV headend with encoders distributing live TV to all 100+ rooms over the network — replacing legacy coax infrastructure
Automated Recovery
Containerised services continuously monitor network health, troubleshoot issues automatically, and restore connectivity without manual intervention
08

Multi-Site Network Unification

Three separate sites joined into one network so remote devices feel local, with a unified camera network and consistent cross-site access.

Details
Multi-SiteNetwork DesignSite-to-SiteSurveillanceVLANsRouting
Site Unification
Three separate physical locations operating as a single logical network — transparent "local" access to devices regardless of site
Camera Network
A unified surveillance camera network spanning all three sites, accessible and manageable from a single interface
Cross-Site Access
Users on any site can reach printers, servers, and devices on any other site without VPN friction — same network, different locations
Connect With Me

Let's talk.

Open to roles and projects in networking, infrastructure, and full-stack development. I usually reply within a day.