James Chang
Los Angeles, CA
Interests: LLM internals, inference on real hardware, predictive processing, and where philosophy of mind meets machine learning. My projects also cover security, OS internals, mathematical formal verification, embedded hardware, and self-hosted infrastructure. I like making hardware and software do things they weren't built for.
Personal Projects
as of Oct 2026-
Problem: The best known lower bound for the covering number C(24,14,4) was 19 (Schönheim, 1964; Mills, 1979). Now it's 20.
What I built: Created an AI agent swarm of 7 agents to create a machine-checked Lean proof of the new bound, which also raises C(25,15,5) to 34. Includes an interactive explainer website.
- Lean 4
- Combinatorics
-
Problem: Apple's AirPort Time Capsule only speaks AFP and SMB1. macOS 27 drops AFP, cutting owners off from their network backups.
What I built: Ported Samba 4.25 to the device's NetBSD firmware across five hardware generations, with Bonjour discovery, Time Machine support, and a macOS installer app.
- C
- Python
- Swift
- NetBSD
- Samba
-
Problem: How small can a neural network be and still play back an entire 3.5-minute music video from memory, with no timestamps or frames as input?
What I built: A model under 1M parameters that replays all 2,663 frames of Never Gonna Give You Up at 320×240 from one learned initial state, using learned oscillators and a convolutional decoder. Trained on an RTX 3090.
- PyTorch
- CUDA
- Neural video representation
-
Problem: I bought a SwitchBot smart lock, but it didn't work with the lock on the door of my new apartment.
What I built: A parametric adapter modeled in OpenSCAD and 3D-printed, published on Printables.
- OpenSCAD
- 3D printing
-
Problem: My China-market Mac was locked out of using Apple Intelligence because Apple does region checks.
What I built: A macOS kernel extension that temporarily changes the region the Mac reports, from CH/A to LL/A.
- C++
- macOS kernel extensions
-
Problem: Surprisingly, there was no free method to read a Canon EOS 5D camera's shutter count.
What I built: A Python tool that reads the counter in RAM, through the camera's diagnostic monitor over USB. Tested against recorded protocol traffic and validated on real hardware.
- Python
- USB
- PTP
Writing
SubstackI write about AI and the mind: how large language models are built, served, and priced, and what they share with brains. Grounded in public data and my own measurements.