Hello there!

I'm David Zhao, a compiler engineer, programming languages researcher, and Datalog enthusiast

Introduction

I'm currently a compiler engineer in the language team at RelationalAI, where we build an awesome relational knowledge graph management system. On the language team, we develop Rel, a concise yet expressive declarative query and modelling language.

I graduated in 2022 from the University of Sydney with a PhD in programming languages. My research work focused on the declarative logic programming language, Datalog, culminating in my thesis Provenance, Incremental Evaluation, and Debugging in Datalog. As part of my research, I was a major contributor to the Soufflé Datalog engine, adding important debugging and incremental evaluation features.

Away from the computer, you can usually find me playing tennis, ultimate frisbee, doing (attempting) pottery, or behind a camera trying to find cool things to take pictures of.

Experience
RelationalAI May 2022 - Present
Compiler Engineer
RelationalAI Mar - Jun 2021
Software Engineer Intern
University of Sydney Jun 2016 - Nov 2021
Tutor / Teaching Assistant
Oracle Labs Jan - Mar 2018
Research Intern
Optiver Dec 2016 - Feb 2017
Software Developer Intern
Publications 2023
Automatic Rollback Suggestions for Incremental Datalog Evaluation [pdf] David Zhao, Pavle Subotić, Mukund Raghothaman, Bernhard Scholz PADL
2022
Building a Join Optimizer for Soufflé [pdf] Samuel Arch, Xiaowen Hu, David Zhao, Pavle Subotić, Bernhard Scholz LOPSTR
2021
An efficient interpreter for Datalog by de-specializing relations [pdf] Xiaowen Hu, David Zhao, Herbert Jordan, Bernhard Scholz PLDI
Towards Elastic Incrementalization for Datalog [pdf] David Zhao, Pavle Subotić, Mukund Raghothaman, Bernhard Scholz PPDP
The Choice Construct in the Soufflé Language [pdf] Xiaowen Hu, Joshua Karp, David Zhao, Abdul Zreika, Xi Wu, Bernhard Scholz APLAS
2020
Provenance-guided synthesis of Datalog programs [pdf] Mukund Raghothaman, Jonathan Mendelson, David Zhao, Mayur Naik, Bernhard Scholz POPL
Debugging large-scale Datalog: A scalable provenance evaluation strategy [pdf] David Zhao, Pavle Subotić, Bernhard Scholz TOPLAS
2019
A specialized B-tree for concurrent datalog evaluation [pdf] Herbert Jordan, Pavle Subotić, David Zhao, Bernhard Scholz PPOPP
Brie: A specialized trie for concurrent Datalog [pdf] Herbert Jordan, Pavle Subotić, David Zhao, Bernhard Scholz PMAM
Fast parallel equivalence relations in a Datalog compiler [pdf] Patrick Nappa, David Zhao, Pavle Subotić, Bernhard Scholz PACT
Unacceptable behavior: Robust pdf malware detection using abstract interpretation Alexander Jordan, François Gauthier, Behnaz Hassanshahi, David Zhao PLAS