John Hui (
I'm a PhD student in the Computer Science department at Columbia University, working with Ronghui Gu and Stephen Edwards. I previously graduated from Columbia in 2018 with a BA in computer science and music, and again in 2019 with an MS in computer science.
I'm currently working on the specification and verification of real-time systems, using language-level programming abstractions. I previously worked on using type inference to optimize hardware synthesis from functional programs.
My general interests include formal methods, concurrent computing, and distributed systems. I'm fascinated by programming languages as an interface between human intuition and computer manifestation. I believe that by exploring their formal properties, we can use languages to build and reason about increasingly complex systems.
I've been a teaching assistant for the Computer Science department since 2016. Classes I've TAed include Operating Systems, Advanced Programming (the systems programming course with a narrative), Programming Languages and Translators, Embedded Systems, and Analysis of Algorithms. For Operating Systems, I helped Jae Woo Lee streamline students' Linux kernel hacking experience by designing assignments, writing tutorials, and using GitHub to manage their development and submission workflow (similar to GitHub Classroom).
I used to compose music for humans, but nowadays I primarily produce music for computers. I was also Music Director for my collegiate a cappella group, the Columbia Kingsmen.
You can reach me via email at email@example.com.