Hi, I'm Lee Teong Hoe.
A full-stack developer and DevOps engineer based in Malaysia. I build web apps (PHP/CodeIgniter, Java/Spring, TypeScript/React), self-host a ~140-container homelab, and run a website design & development business for Malaysian SMEs. I write here about what I learn and ship.
Latest posts
-
Loop Engineering Without a Coding Agent: The 11 Cron Jobs That Run My Business
Loop engineering is 2026's term for designing the system that prompts and checks an agent. I applied it to a business, not a codebase: 11 cron jobs, 8 with no AI at all.
-
Stop Writing Agent Prompts for Deterministic Work
One of my scheduled jobs failed 29 times in a row because I put a model in a loop that only needed a string comparison. Here is the rule I use now.
-
One Hostname for a Public Tracker and an SSO-Gated Dashboard
A web-analytics tracker has to be public and its dashboard must not be. How I put both on one hostname with an authentik proxy provider and path-based skip rules.
-
NocoDB SSO Is a Licensed Feature — and the Env Vars Won't Tell You
NocoDB's OIDC environment variables are real and validated at startup, so self-hosted SSO looks supported. On an unlicensed build, the first login attempt crashes the whole instance.
-
A Read-Only NocoDB Dashboard for a Database on Another Machine
Point NocoDB at a MySQL/MariaDB database on another machine without copying a single row — and avoid the Docker SNAT source-IP trap and two API traps I hit.
-
How I Vet an Open-Source Dependency Before Betting On It
Six checks that catch a repo which doesn't do what its docs claim — grep for the feature, read the doc's target branch, check the tier gate and the payment rail.
-
Why Chrome Forgets Its Tabs in a Container — And How I Fixed It
Chrome's "continue where you left off" never fires inside a Docker container. The three fixes that failed, the real root cause, and the 70-line keeper that works.
-
Verifying a 19-Page PDF Report Page by Page
Verify a PDF report page by page: print the same HTML from your browser as a baseline, compare the per-page geometry, and keep every deviation under 2pt.
-
Migrating a CodeIgniter 4 App From IIS to OpenLiteSpeed
I moved a 17,000-line CodeIgniter 4 app from Windows IIS to OpenLiteSpeed on CyberPanel. Two fatal errors appeared that IIS had been hiding behind SSO.
-
Upgrading CodeIgniter 4.6 to 4.7: The Breaking Changes the Guide Misses
The official CodeIgniter 4.7 upgrade guide lists eight breaking changes. The two that actually fataled my app weren't in it — and both are the same class of problem.