[ ⊥ TEXT ]
I’m a computer science PhD candidate at Columbia University, advised by Stephen Edwards. I previously graduated from Columbia College in 2018 with a BA in computer science and music.
I completed my thesis proposal in December 2023 and am aiming to defend sometime mid-2024. I’m on the job market for industry positions that will engage my research experience and interests.
You can reach me via email at .
Research
My interests broadly revolve around the use of high-level programming languages to configure and extend interactive, low-level systems. Such systems include embedded systems, operating systems, browsers, game engines, and text editors.
My current research focuses on extending such languages to support building temporal abstractions for reactive real-time computing. I am working with Stephen Edwards on the Sparse Synchronous Model, a programming model for microcontroller platforms with precise timing prescriptions and deterministic concurrency.
In Summer 2023, I interned at Roblox Research, where I worked with Alan Jeffrey on a research prototype of the Roblox game engine.
Publications
- John Hui, Kyle J. Edwards, and Stephen A. Edwards. Timestamp Peripherals for Precise Real-Time Programming. In Formal Methods and Models for Codesign (MEMOCODE), Hamburg, Germany, September 2023.
- John Hui and Stephen A. Edwards. Towards Sparse Synchronous Programming in Lua. In Workshop on Time-Centric Reactive Software (TCRS), San Antonio, TX, USA, May 2023.
- John Hui and Stephen A. Edwards. The Sparse Synchronous Model on Real Hardware. ACM Transactions on Embedded Computing Systems, December 2022.
- Robert Krook, John Hui, Bo Joel Svensson, Stephen A. Edwards and Koen Claessen. Creating a Language for Writing Real-Time Applications for the Internet of Things. In the 20th ACM-IEEE International Conference on Formal Methods and Models for System Design (MEMOCODE), Shanghai, China, October 2022.
- Shih-Wei Li, Xupeng Li, Ronghui Gu, Jason Nieh, and John Hui. Formally Verified Memory Protection for a Commodity Multiprocessor Hypervisor. In the 30th USENIX Security Symposium, virtual, August 2021.
- Runzhou Tao, Yunong Shi, John Hui, Jianan Yao, Fred Chong, Ronghui Gu. Gleipnir: Toward Practical Error Analysis for Quantum Programs. In the 42nd ACM SIGPLAN Conference on Programming Language Design and Implementation (PLDI), virtual, June 2021.
- Shih-Wei Li, Xupeng Li, Ronghui Gu, Jason Nieh, and John Hui. A Secure and Formally Verified Linux KVM Hypervisor. In the 42nd IEEE Symposium on Security and Privacy (S&P), virtual, May 2021.
- Stephen A. Edwards and John Hui. The Sparse Synchronous Model. In the Forum on Specification and Design Languages (FDL), Kiel, Germany, September 2020.
Teaching
In Fall 2022, I taught COMS 3157: Advanced Programming, an introduction to systems programming with a narrative.
I’ve also been a teaching assistant for the following classes at Columbia:
- COMS 4118: Operating Systems (Linux kernel hacking)
- COMS 3157: Advanced Programming (in C and UNIX)
- COMS 4115: Programming Languages and Translators (in OCaml)
- COMS 4995: Parallel Functional Programming (in Haskell)
- CSEE 4840: Embedded System Design (with FPGAs)
- CSOR 4231: Analysis of Algorithms (exactly as advertised)
Service
- SPLASH 2023: Video Chair
- ICFP 2023: Video Chair
- FARM 2023: Program Committee
- PLDI 2023: Video Chair
- POPL 2023: Student Volunteer
- VMCAI 2022: Artifact Evaluation Committee Member
- PLDI 2021: Student Volunteer
Personal
I love tinkering with terminals and text editors, and am the author of fidget.nvim, an extensible UI for Neovim notifications and LSP progress messages.
Once upon a time, I composed music for humans, but nowadays I primarily produce music for computers when I have time. I was also Music Director for my college a cappella group, the Columbia Kingsmen. Some day, I’ll build programming languages for music production.