Hi, I am Bluz Lan

"Simple can be harder than complex." — Steve Jobs

About Me

Portrait of Bluz Lan

I am Bluz Lan, a software engineer with hands-on experience across backend, frontend, cloud platform engineering, DevOps, and ML-related work.

I currently work on Wistron Chthonia/AIDC initiatives focused on OpenStack, Kubernetes, GPU node onboarding, and storage access control.

I am also actively researching and prototyping AI Agent solutions, with a focus on workflow automation, multi-step task collaboration, and practical use cases.

Professional Summary

  • Cross-domain experience in backend, frontend, cloud infrastructure, DevOps, and ML workflows.
  • Delivered Wistron AIDC initiatives across OpenStack, Kubernetes, GPU node setup, and storage permission design.
  • Built and maintained enterprise systems (DPOM, SPOS), mobile applications, ERP modules, and research projects in smart manufacturing / IIoT.
  • Strong Scrum execution experience: sprint planning, daily stand-ups, reviews, and retrospectives.

Work Experience

Software Development Engineer

Wistron · Chthonia / AIDC Team

Full-time

Sep 2025 - Present

  • Developed a Go/Gin middleware API layer integrating OpenStack (Keystone, Ironic, Nova) to provide unified multi-cluster management APIs.
  • Built a Next.js + TypeScript frontend monorepo (Turborepo + pnpm) for both the Admin Portal and Service Portal.
  • Implemented a WebSocket BMC console (VNC/Serial) for real-time remote bare-metal operations and troubleshooting.
  • Designed a GitHub Actions CI/CD pipeline covering linting, unit tests, E2E tests, security scanning, multi-arch Docker builds, and Helm-based GitOps deployments.

Software Development Engineer · DPOM

Wistron

Full-time

Dec 2024 - Sep 2025

  • Developed and maintained an internal digital purchasing/order management platform.
  • Built React + TypeScript frontend features and Node.js + TypeScript backend APIs.
  • Designed and optimized PostgreSQL schemas, queries, and indexes for orders, transactions, and reporting.
  • Implemented role-based permissions and page-level access control.
  • Introduced BullMQ-based asynchronous processing to improve synchronization and report-generation performance.

Software Development Engineer · SPOS

Wistron

Full-time

Aug 2024 - Dec 2025

  • Contributed to the development of the Supply Planning Optimization Solution (SPOS).
  • Built features for material data query, integration, and automated reporting.
  • Implemented frontend modules in React + TypeScript and backend APIs in Node.js + TypeScript.
  • Used PostgreSQL for transaction and reporting workloads.
  • Delivered features through Scrum-based iterative development.

Engineer

Kaohsiung Rapid Transit Corporation

Full-time

Jul 2023 - Aug 2024 · 1 yr 2 mos

  • Developed ERP access-control modules with Vue.js frontend and Java Spring MVC / Spring Boot backend on DB2.
  • Integrated MOXA NPort serial device servers with existing systems.
  • Contributed to the Kaohsiung Metro Commuter Assistant app using Xamarin (.NET Framework).
  • Implemented OCR use cases and data processing workflows (pandas / NumPy) for internal operational scenarios.

Skills

Languages and Core Skills

  • JavaScript
  • TypeScript
  • Golang (Go)
  • Python
  • Java
  • C#
  • SQL

Backend Development

  • Node.js (TypeScript)
  • Express.js
  • Golang + Gin API development
  • Gophercloud (OpenStack SDK) integration
  • RESTful APIs
  • WebSocket
  • BullMQ job queues
  • FastAPI
  • Java Spring MVC / Spring Boot
  • Django / Flask

Frontend Development

  • React (TypeScript)
  • Next.js
  • Turborepo + pnpm monorepos
  • Tailwind CSS
  • Vue.js
  • Xamarin (.NET Framework)
  • Enterprise UI development

Cloud, Container, and DevOps

  • Docker / Podman
  • Kubernetes
  • Kubernetes Operators (Kubebuilder)
  • Helm + GitOps deployment
  • OpenStack
  • GitHub Actions
  • Azure DevOps Pipeline
  • GitLab CI/CD
  • Multi-arch container builds
  • GPU Node Management
  • Tailscale

Database

  • PostgreSQL
  • MySQL
  • MariaDB
  • MS-SQL
  • DB2
  • Schema and Index Optimization

AI / LLM Applications

  • Local inference with Ollama / llama.cpp / MLX
  • Retrieval-augmented generation (RAG)
  • Embedding-based semantic search (pgvector)
  • MCP (Model Context Protocol) servers
  • diffusers (FLUX.1 / SDXL)
  • LLM evaluation (MMLU / GSM8K)

ML and Data

  • PyTorch
  • TensorFlow
  • Scikit-Learn
  • Pandas
  • NumPy
  • paddleOCR

Projects

Chthonia

Built APIs with Golang and Gin, integrated OpenStack services via Gophercloud, and combined Kubernetes with GPU nodes to support internal AI/ML workloads with tenant-aware storage access control.

GolangGinGophercloudOpenStackKubernetesGPUStorage ACLScrum

DPOM Enterprise System

Built React/Node/PostgreSQL workflows and improved performance by introducing asynchronous job processing with BullMQ.

ReactNode.jsPostgreSQLBullMQTypeScript

SPOS Supply Planning Platform

Delivered material query/integration/reporting features with React, Node.js, and PostgreSQL in Scrum iterations.

ReactNode.jsPostgreSQLREST APIScrum

KRTC ERP and Mobile App

Developed ERP modules, integrated industrial serial device servers, and contributed to a commuter mobile app.

Vue.jsSpring BootDB2XamarinMOXA NPort

Side Projects

CoCo

Expense splitting for trips and everyday life

CoCo desktop home: balances, spending by category, and monthly spendingCoCo trip ledger: daily expenses with their TWD amounts

Friends, roommates, and travel groups each log expenses on their own phones; the app converts everything to TWD, works out who owes whom, and settles up in one go. Sign in with LINE and join from an invite link in the group chat. Frontend and API ship together on Cloudflare Workers and are live in production.

  • Each expense is converted at that day's exchange rate (market rate by default, or pasted Bank of Taiwan rates before settling); split evenly, by shares, by exact amounts, or among just a few people.
  • Settlement finds the fewest transfers, can group families and couples into one household, and records repayments; a ledger cannot be deleted while anyone still owes money.
  • The home page sums up balances, spending by category, and monthly trends across every ledger; an activity feed shows who added, edited, or deleted what; expenses logged offline abroad upload once the phone is back online.
  • Every invite and settlement link gets its own share image (drawn on Canvas and stored in R2); separate phone, tablet, and desktop layouts, and installable to the iPhone / Android home screen.
  • LINE Login (OpenID Connect + PKCE) with only session-token hashes stored and sign-out from all devices, plus rate limiting, CSP, and security headers.
ReactTypeScriptViteCloudflare WorkersD1R2LINE LoginOpenID ConnectCanvasPWAVitest

Retail Management System

Quotes, orders, inventory, and revenue in one place

Covers the full retail flow from quoting and deal tracking to stock pulls, pre-delivery inspection, and revenue reporting. Self-hosted and used in live daily operations.

  • Quotes for new builds, used PCs, laptops, and repairs, with live preview and PDF / JPG export.
  • Inventory with stock movements, stock-take records, average cost, and low-stock alerts; stock is pulled automatically when an order enters assembly.
  • Revenue dashboard by month and year with profit, customer-source, and region breakdowns; customers are tiered by lifetime spend.
  • Admin / staff roles with Passkey (Touch ID / Face ID) sign-in; pushes to master deploy automatically through a self-hosted runner.
GoGinGORMPostgreSQLNext.jsReactTypeScriptTailwind CSSPodmanKubernetesTailscaleGitHub Actions

mneme

Personal knowledge base with local LLMs and AI agent access

A Notion-style app for notes, databases, to-dos, and a journal, self-hosted and reached over Tailscale at home and through Cloudflare Tunnel when I am out. Semantic search and Q&A run on local models, so notes never leave the machine.

  • Semantic search: Ollama bge-m3 embeddings stored in PostgreSQL pgvector find notes even when the wording differs; pg_trgm handles Chinese keyword search.
  • Ask mneme (RAG): ask a question in plain language; the most relevant passages go to a local LLM, which answers with [1], [2] citations back to the notes.
  • MCP server: lets Claude Code search and read notes and append to work logs and dev logs, limited to chosen categories and to read and append only.
  • Block editor, nested pages, databases (table / board / calendar), version history, and two-way sync with Google Calendar.
  • Remote access: Cloudflare Tunnel opens no inbound ports and Cloudflare Access admits only listed emails; the backend verifies the Access JWT itself (RS256 signature, issuer, audience, expiry, email allow-list), and MCP stays Tailscale-only.
GoGinPostgreSQLpgvectorOllamaRAGMCPReactTypeScriptTailwind CSSPodmanTailscaleCloudflare TunnelCloudflare Access

llm-operator

Kubernetes operator for serving local LLMs

Describe a model in one LLMService custom resource; the operator fetches the model, runs the inference server, and exposes an OpenAI-compatible API inside the cluster.

  • Two engines, Ollama and llama.cpp, behind the same Service port and OpenAI-compatible /v1 path.
  • A StatefulSet gives each replica its own model cache volume, so models download once and survive restarts; changing the model rolls the pods.
  • GPU scheduling: setting gpus requests nvidia.com/gpu, and llama.cpp switches to the CUDA image and offloads every layer to the GPU.
  • Status phases and conditions explain why a service is not ready (model download, image pull, or no free GPU); supports the scale subresource and HPA, with CEL validation at the API.
GoKubebuildercontroller-runtimeKubernetesCRDOllamallama.cppGPUenvtestkind

llm-bench

Local LLM speed and capability benchmark

Benchmarks the same model across three inference engines (Ollama, llama.cpp, and MLX) with one consistent method, producing an interactive HTML report and a PDF while keeping every run for comparison.

  • Speed: time to first token (TTFT), output and prompt-processing throughput, load time, and peak memory.
  • Capability: MMLU (57 subjects) and GSM8K at temperature 0 with a fixed seed, keeping every answer for review.
  • Built on the Python standard library only; datasets are verified by sha256 after download.
  • ECharts report with a sortable, filterable summary table, speed-vs-accuracy scatter plot, and run history.
PythonOllamallama.cppMLXEChartsMMLUGSM8K

Atum

Local AI image generation web app

Generates images on your own machine from the browser with FLUX.1-dev (NF4 quantized) and WAI Illustrious SDXL; images never leave the device.

  • FastAPI backend and React + TypeScript frontend with a job queue, live progress, and time-remaining estimates.
  • Detects hardware automatically: Apple Silicon (MPS) and NVIDIA GPUs (CUDA) on macOS, Windows, and Linux.
  • One-click install and in-app updates with automatic backup and rollback, plus amd64 / arm64 container images.
  • Prompt builder with an editable tag library and content-safety checks before generation.
PythonFastAPIReactTypeScriptPyTorchdiffusersFLUX.1SDXLDocker

Convenience Store Cocktail Slots

Pixel-art drinking game kit for parties

Cocktail slot machine with three reels, a lever, and the devil switch

Pull the lever and the slot machine mixes a cocktail from drinks you can buy at any convenience store, alongside party games that everyone plays on one phone. A static frontend on Cloudflare Pages that opens straight from a LINE group chat.

  • Three reels (base spirit, mixer, extra) land on 27 ready-made recipes with ratios, flavor notes, and estimated strength, sweetness, and fizz; lock a reel to the bottle you already have.
  • Devil switch: the machine turns dark red and only spins high-ABV combos (about 19–26%), each with a note on why it hits hard.
  • 20 one-phone drinking games plus 2 party tools; losers can jump straight to the slot machine or log a drink on the scoreboard, which feeds an end-of-party summary.
  • Shopping lists by group size that buy the fewest items for the most recipes; cookie-free visit counts with GoatCounter.
ReactTypeScriptViteCanvasCloudflare PagesGitHub ActionsVitest

Taiwan Random Trip

Spin the wheel, take the train

Taiwan Random Trip: the region wheel for local trains

Spin three times: region, county, then station, and go wherever it lands. Two versions cover local trains (240 stations) and EMU3000 express trains (76 stations), built from Taiwan Railway open data.

  • A pixel-art wheel drawn pixel by pixel on Canvas and redrawn every frame at the new angle, so pixels stay square while it spins; set in the Cubic 11 pixel font.
  • Landing on a station prints a "ticket" with its address, roughly how many trains stop each day, and Google Maps and Wikipedia links, with a warning to check the way back when service is sparse.
  • Exclude counties you do not want and the wheels and station counts shrink to match; a level with only one option left is picked automatically.
  • A script pulls a week of timetables from the open data to count stops per station, spotting EMU3000 services by their premium car and warning when the railway changes its train-type codes.
ReactTypeScriptViteCanvasNode.jsTRA Open DataVitest

Resume Highlights

Performance

  • Wistron Mid-Year Performance 2025: Grade A
  • Wistron Year-End Performance 2025: Grade A

Research Projects

  • MOST 111-2218-E-194-007 (Smart Manufacturing and Secure IIoT) · 2022-06 to 2023-05
  • MOST 110-2218-E-194-010 (Smart Manufacturing and Secure IIoT) · 2021-11 to 2022-05
  • National Applied Research Labs project · 2020-12 to 2021-05

Education

  • B.S., Department of Computer Science and Information Engineering, National Chin-Yi University of Technology (2020)
  • M.S., Graduate Institute of Computer Science and Information Engineering, National Chin-Yi University of Technology (2022)

Publications

  • AII 2021: Face-image de-identification based on computer-vision feature detection
  • ITAOI 2021: A low-latency contactless human-computer interaction approach
  • AII 2022: NFT-based housing rental contract platform
  • ILT 2022: NFT technology applied to membership community platform

Thesis and Projects

  • Master Thesis: Intrusion Detection System for Autonomous Vehicles under Communication Network Attacks
  • University Project: Single-camera live-face recognition system based on machine learning

Contact Me

Reach out using the methods below