I build the application and run the production infrastructure it lives on. Kuala Lumpur, Malaysia · remote (GMT+8).
10+ years delivering production web applications and business systems for SME, NGO and e-commerce clients — then deploying, securing, monitoring and supporting them on a three-host self-managed Docker platform. Most full-stack engineers stop at the application layer; running the platform underneath it is what keeps that layer honest.
| Project | What it is |
|---|---|
| traefik-botfilter | Dependency-free Traefik middleware in Go — rejects scanner and malformed-HTTP traffic using configurable request validation, heuristic scoring and temporary in-memory IP bans. |
| hoelee-webdav-server | Hardened WebDAV server (Apache httpd) in Docker — pinned base image, modern TLS, healthcheck, CI/CD. |
| Three-host production platform | 162 containers across 78+ compose stacks on Synology DSM, Unraid and an Ubuntu VPS, serving live public services — read the case study. Traefik reverse-proxy fleet with automated ACME TLS, Prometheus/Grafana monitoring on every host, authentik SSO, MySQL master/replica replication, CI/CD, and automated backup and restore. |
| email-sync-oauth2 | Dockerised multi-account IMAP sync with OAuth2 for Office 365, Outlook.com and Gmail — built for the Microsoft Basic-Auth retirement. |
| springboot-hoelee-demo | Modern Spring Boot showcase — Thymeleaf UI, JPA, Security, caching and tests. Live at spring.hoelee.com. |
| digikedai-bot | Production Telegram AI customer-support bot: Dockerised, LLM-backed, tunnel-only ingress (no inbound ports). TypeScript + LiteLLM. Running as @DigiKedaiBot. |
| universal-video-transcode | Any video in, one MP4 out that plays on both iPad and Android. Source-file-driven recipe selection (lossless copy where possible) and a header-only gate that catches the frame-timing defect no fps test can see. |
| hoelee-blog | Technical writing on real debugging, migrations and platform design. Astro 5 + Markdown, English-first with Chinese under /posts/zh/, deployed by self-hosted CI/CD. |
Languages PHP · Java · Python · JavaScript · TypeScript · SQL
Frameworks Spring Boot · CodeIgniter · WordPress · Node.js · REST APIs
Data PostgreSQL · MySQL/MariaDB (incl. replication) · Redis · SQLite · Elasticsearch
Platform Docker · Linux · Traefik · Nginx · Cloudflare · CI/CD (GitHub Actions, Gitea Actions)
Infra Self-hosted mail (Postfix/Dovecot/Rspamd) · Prometheus/Grafana · authentik SSO · restic backup
AI OpenAI API · LLM integration · OCR · n8n automation · local LLM inference (llama.cpp)
Beyond application work I take automation end-to-end: browser-automation and CDP tooling, marketplace and fulfilment workflows, and AI features shipped inside commercial products, including a WordPress plugin that generates furniture product photography with an image model.
- Writing — blog.hoelee.com
- Portfolio — me.hoelee.com
- LinkedIn — linkedin.com/in/hoelee
- Work with me — me@hoelee.com
Most of my day-to-day repositories live on a self-hosted Gitea instance; what is public here is what I can show.