I am actively looking for outstanding students to join my research group at HKUST, which I joined as an Assistant Professor in February 2021. I have several positions available for prospective PhD and MPhil candidates.
Broadly speaking, I’m interested in PL and FP, type systems, compiler optimization, domain-specific languages, as well as their applications to domains such as data management and machine learning. You can read more about my PL philosophy here.
Here are some example projects on which I’d like to supervise students (I’m also open to suggestions):
Optimization of functional programs using a graph-based intermediate representation. This approach, inspired by optimal graph reduction in the lambda calculus, is halfway between partial evaluation and supercompilation. It will allow performing a general form of deforestation on many types of recursive programs, which could have a significant effect on their performance. I am currently focusing on optimizing Haskell programs, but in the long run this technique should be applicable to strict languages as well.
Designing a Pure Subtyping-inspired dependent type system, with the goal of making dependent types more approachable and easier to use. A major goal is to support excellent type inference capabilities while displaying friendly error messages. Here is an example of the kind of error messages I am targeting (where
/ stands for
$), from a current prototype. I have already started working on global type inference in the presence of subtyping, and I have a good idea on how to integrate dependent types with it.
Realizing a synthesis of program specialization and type-safe compile-time metaprogramming, enabling very powerful zero-cost abstractions.
Exploring new ways of enabling unobtrusive memory management for functional programming — designing more fine-grained compilation techniques for managing the memory of functional programs, and giving some control to users on specific memory management strategies.
I also have strong interests in domain-specific language design for various concrete application domains, including:
I have been working on DSLs for performance-sensitive systems such as databases. The idea is to synthesize efficient embedded database management engines from high-level modular specifications, using advanced metaprogramming techniques, typically in Scala (using my Squid framework).
I am looking into ways of leveraging proper multi-level domain-specific language techniques to improve the design of machine learning systems. Such approaches could enable more efficient implementations (and therefore much reduced training times), as well as new avenues for explainable and verifiable AI.
If you are interested, please contact me first, and apply to the HKUST CSE PhD program. The deadline is June 1st HKT for Fall intake (to start in September 2021). There will also be a Spring 2022 intake with a later deadline.
You will have to be accepted by the CSE department, but I may vouch for you if I think you are a good fit.
Feel free to contact me privately (first-name dot last-name at gmail.com) to ask me any questions you may have, and to figure out if you are a good fit for my group.
PhDs at HKUST normally last 3 to 4 years. The teaching language is English, which is also an official language in Hong Kong. We offer competitive salaries of about 216,360 HKD per year, with no or very little government taxation, and several attractive scholarships available to top students.
HKUST has been consistently ranked a top world university in Computer Science; for instance:
Hong Kong is a very nice place to study in, at the intersection of Asian and Western cultures, with particularly great cuisine. Being a special administrative region (SAR) of China, most institutions in Hong Kong are still separate from the mainland. For instance, Hong Kong has a highly developed free-market economy, and its internet is free (not under the Great Firewall).