Experience
I work on Unity and Android applications, client performance, native hooks, and developer tools, along with earlier embedded firmware work and personal projects.
Work experience
-
- Designed and built an asynchronous asset-loading pipeline and texture cache in Unity, cutting load time for one large textured 3D model on the same hardware from 46.92 s (uncached) to 1.54 s (cached).
- Used Unity Profiler to find off-screen image loads and full-list rebuilds, then rebuilt the list UI shared across three panels; observed scrolling frame rates rise from 30-39 FPS to around 60 FPS, with occasional dips.
- Designed multiplayer asset synchronization using Mirror RPCs, a TCP asset-transfer protocol, and versioned operation queues, and tested client recovery across temporary disconnections and packet drops.
- Connected third-party BlazeFaceBarracuda tracking with off-axis projection in Unity so head movement controls the desktop camera; added interpolation and moved selected vector and distance math to compute shaders.
- Built an internal GitHub Actions workflow that sends pull-request diffs to the Copilot API and posts inline review comments or line links.
-
- Built list views, asynchronous loading, and Java bridge code for a floating game toolkit using the company's Android UI library.
- Developed an Android NDK library for a released game integration feature, embedding it with shadowhook in APKs to hook Unity IL2CPP text and image symbols and verifying that game text could be replaced with placeholders.
- Wrote IL2CPP base-address lookup, mapped Unity object layouts with pointers and offsets, and converted C# strings from UTF-16 to UTF-8 for native text handling.
- Built an Android OPUS-MT translation pipeline with the ONNX Java library and an NDK tokenizer bridge to process captured game text through iterative token generation; the integration was still in development when I left.
-
- Wrote C software and firmware for a C2000 MCU to transfer Manchester-coded data between two devices over two communication pins.
- Built the Manchester encoder and decoder with CLB logic gates because software processing lacked enough CPU time, and used DMA to transfer and store data.
Education
-
- Second Class Upper Division honours; CGPA 3.25/4.00.
Projects
-
- Built a bilingual (English and Traditional Chinese) Eleventy website with AI coding agents, with three 12-second HD2D background video loops for day, dusk, and night.
- Generated concept images with Gemini, then switched to building a 3D scene in Blender after AI-generated images showed noise and implausible lighting, and asked an agent to create normal maps.
- Created and refined HD2D and pixel-art animation skills by reviewing generated images, requiring agents to draw perspective guides and check vanishing points when people and objects did not fit the scene's perspective.
- Wrote and tested an agent cooperation skill as the Blender workflow needed more reference images, so Claude Code could call Codex for help instead of copying prompts manually between agents.
-
Code
- Built a personal desktop toolbox with AI coding agents in Tauri, Rust, React, and TypeScript, including offline-by-default OCR for private documents and local agent-session inspection.
- Split the original OCR-only app into separate utility modules so new features could be developed in parallel across separate agent chats or worktrees.
- Defined use cases and local-processing requirements, reviewed agent plans and test cases, and tested the toolbox offline myself.
- Applied the "Refactoring UI Design System" skill to fix hard-to-click buttons and font sizing issues in agent-generated interfaces.
-
Read the blog
- Published work summaries and technical posts on a personal blog built with Hugo, GitHub Pages, and Codespaces.
- Wrote a guide to translating built games that compares OCR, memory scanning, asset editing, and runtime hooking with Unity examples, and covers font, UI layout, and update-compatibility limits.
-
Code
- Integrated Inworld AI into NPCs for a team Unity detective game prototype, so players could ask questions and get replies generated from each character's background and game context.
- Implemented C# WebSocket communication for in-game chat with cloud AI agents.
- Designed a non-linear storyline with defined investigation rules and win/loss conditions, and observed different NPC dialogue when restarting the game.
-
Code
- Built an Android AR prototype in Unity ARFoundation to place a 3D model on a plane in the phone camera view, though results varied across devices.
- Added controls to move, rotate, and scale the model, switch poses through BlendShapes, and save images with the UI hidden.
Other experience
-
Jam entry
- Built and published a Unity/C# browser game about short-video recommendations for the "Loop" theme; I implemented the gameplay and UI while a teammate supplied the artwork.
- Pooled and reused two objects for the scrolling reel loop, and shuffled video order with Fisher-Yates.
- Handled UI feedback with C# events and
Actioncallbacks, including outlines on selected options. - Tuned category balance with expected-value calculations and Excel simulations, adjusting difficulty and speed based on the player's current score.
- Ranked #796 in Creativity out of 9,378 rated entries, scoring 4.071 in Creativity from 14 ratings.