\documentclass[10pt,letterpaper]{article}

\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}
\usepackage[margin={2.0cm,1.5cm}]{geometry}
\usepackage{changepage}
\usepackage{libertine}
\usepackage{microtype}
\usepackage{titlesec}
\usepackage{enumitem}
\usepackage{xcolor}
\usepackage{relsize}
\usepackage{hyperref}

\titleformat*{\section}{\Large\bfseries\scshape}
\definecolor{myblue}{rgb}{0.18,0.31,0.65}
\hypersetup{colorlinks=true,urlcolor=myblue}
\pagestyle{empty}
\setlength{\parindent}{0pt}
\setlist{nolistsep}

\makeatletter
\newcommand\HUGE{\@setfontsize\Huge{30}{36}}
\makeatother

\newcommand{\indentleft}{1em}
\newcommand{\indentright}{0em}
\newcommand{\indenthang}{1.5em}
\newcommand{\interlist}{0.5em}
\newcommand{\postsubhead}{-0.7em}
\newcommand{\postsection}{-1em}
\newcommand{\hangingindent}{%
  \leftskip=\indentleft
  \hangindent=\indenthang
}

\begin{document}
\raggedright

  \begin{center}
    {\HUGE\textbf{Ming-Ho Yee}}

    \href{https://mhyee.com}{mhyee.com}
    \textbullet\
    \href{https://github.com/mhyee}{github.com/mhyee}
    \textbullet\
    \href{mailto:mh@mhyee.com}{mh@mhyee.com}
    \hrule
  \end{center}

  \section*{Experience}
    \vspace{\postsubhead}
    \begin{adjustwidth}{\indentleft}{\indentright}
      \textbf{Research Scientist}
      \hfill
      \textbf{Menlo Park CA}\\
      \emph{Meta}
      \hfill
      \emph{Aug 2024 -- present}
      \vspace{\interlist}

      \textbf{Ph.D. Candidate}
      \hfill
      \textbf{Boston MA}\\
      \emph{Northeastern University}
      \hfill
      \emph{Sep 2016 -- Apr 2024}
      \begin{itemize}
        \item Built \href{https://github.com/nuprl/TypeWeaver}{TypeWeaver}, the first machine-learning-based tool to migrate files from JavaScript to TypeScript, with a 69\% success rate (as measured by type checking).
        \item Fine-tuned and evaluated a large language model for code to \href{https://github.com/nuprl/StenoType}{generate type definitions} for TypeScript, allowing 47\% of files (with missing type definitions) to type check (22\% absolute improvement).
        \item Built an \href{https://github.com/reactorlabs/rhotic}{interpreter in OCaml for a subset of R} to model the relationship between static and dynamic program analysis.
        \item Sped up test suite by 15\% by optimizing dominance graph construction in Ř, a \href{https://github.com/reactorlabs/rir}{just-in-time compiler for R}.
        \item Co-chaired, organized, and led over 40 student volunteers at \href{https://conf.researchr.org/home/ecoop-issta-2018}{ECOOP/ISSTA 2018}, an international conference for programming languages and software engineering with over 600 attendees.
        \item Mentored undergraduate, master's, and Ph.D. students by providing feedback and advice on project planning, software development, and written and oral communication.
        \item Teaching assistant for ``Fundamentals II, Introduction to Class-based Program Design'' (\href{https://course.ccs.neu.edu/cs2510sp18/}{CS 2510}) and ``Fundamentals of Software Engineering'' (\href{https://neu-se.github.io/CS4530-Spring-2024/}{CS 4530}): helped design assignments, held office hours, and graded exams.
      \end{itemize}
      \vspace{\interlist}

      \textbf{Researcher Intern}
      \hfill
      \textbf{Cambridge UK}\\
      \emph{Microsoft Research}
      \hfill
      \emph{Sep -- Dec 2019}
      \begin{itemize}
        \item Explored, implemented, and tested different memory management strategies for \href{https://github.com/microsoft/verona-rt}{Project Verona}.
      \end{itemize}
      \vspace{\interlist}

      \textbf{MMath Candidate}
      \hfill
      \textbf{Waterloo ON}\\
      \emph{University of Waterloo}
      \hfill
      \emph{Sep 2014 -- Aug 2016}
      \begin{itemize}
        \item Designed and led the implementation of the original interpreter and compiler for the functional sub-language of \href{https://flix.dev/}{Flix}.
        \item Experimented with different code generation techniques for Flix, such as Scala macros and generating Scala code.
        \item Teaching assistant for ``Foundations of Sequential Programs'' (\href{https://www.student.cs.uwaterloo.ca/~cs241/}{CS 241}, \href{https://www.student.cs.uwaterloo.ca/~cs241e/}{CS 241E}) and ``Compiler Construction'' (\href{https://www.student.cs.uwaterloo.ca/~cs444/}{CS 444}): held office hours and provided feedback on assignments and exams for the first offering of CS 241E.
      \end{itemize}
      \vspace{\interlist}

      \textbf{Software Development Engineering Intern}
      \hfill
      \textbf{Redmond WA}\\
      \emph{Microsoft}
      \hfill
      \emph{May -- Jul 2014}
      \begin{itemize}
        \item Prototyped \href{https://en.cppreference.com/w/cpp/language/constraints}{concepts lite} in the Microsoft Visual {C\nolinebreak[4]\hspace{-.05em}\raisebox{.3ex}{\relsize{-1}{\textbf{++}}}} (MSVC) compiler, a feature that was eventually added to {C\nolinebreak[4]\hspace{-.05em}\raisebox{.3ex}{\relsize{-1}{\textbf{++}}}}20.
      \end{itemize}
      \vspace{\interlist}

      \textbf{Software Development Engineering Intern}
      \hfill
      \textbf{Redmond WA}\\
      \emph{Microsoft}
      \hfill
      \emph{Sep -- Dec 2013}
      \begin{itemize}
        \item Implemented \href{https://en.cppreference.com/w/cpp/language/user_literal}{user-defined literals} in the Microsoft Visual {C\nolinebreak[4]\hspace{-.05em}\raisebox{.3ex}{\relsize{-1}{\textbf{++}}}} (MSVC) compiler, a {C\nolinebreak[4]\hspace{-.05em}\raisebox{.3ex}{\relsize{-1}{\textbf{++}}}}11 feature that was missing from MSVC.
      \end{itemize}
      \vspace{\interlist}

      \textbf{Software Development Engineering Intern}
      \hfill
      \textbf{Redmond WA}\\
      \emph{Microsoft}
      \hfill
      \emph{Jan -- Apr 2013}
      \begin{itemize}
        \item Developed a heap memory collection tool for debugging .NET applications.
        \item Designed and conducted performance tests for the memory collection tool.
      \end{itemize}
      \vspace{\interlist}

      \textbf{Undergraduate Research Assistant}
      \hfill
      \textbf{Waterloo ON}\\
      \emph{University of Waterloo}
      \hfill
      \emph{May -- Dec 2012}
      \vspace{\interlist}

      \textbf{Developer}
      \hfill
      \textbf{Toronto ON}\\
      \emph{Engagio (formerly Eqentia)}
      \hfill
      \emph{Sep -- Dec 2011}
      \vspace{\interlist}

      \textbf{Developer}
      \hfill
      \textbf{Toronto ON}\\
      \emph{Eqentia}
      \hfill
      \emph{Jan -- Apr 2011}
      \vspace{\interlist}

      \textbf{Software Development Research Intern}
      \hfill
      \textbf{Markham ON}\\
      \emph{Genesys Telecommunications Laboratories}
      \hfill
      \emph{May -- Aug 2010}
      \vspace{\interlist}

      \textbf{Junior Developer}
      \hfill
      \textbf{London ON}\\
      \emph{Robarts Research Institute}
      \hfill
      \emph{Jul -- Aug 2008}
    \end{adjustwidth}
    \vspace{\postsection}
    \clearpage%

  \section*{Publications}
    \vspace{\postsubhead}
      \hangingindent
      \textbf{MH Yee} and A Guha (2023).
      \href{https://doi.org/10.4230/LIPIcs.ECOOP.2023.37}{Do Machine Learning Models Produce TypeScript Types That Type Check?},
      \emph{ECOOP}.
      \vspace{\interlist}

      \hangingindent
      L von Werra, H de Vries, et al. (2023).
      \href{https://doi.org/10.48550/arXiv.2305.06161}{StarCoder: may the source be with you!},
      \emph{TMLR}.
      \vspace{\interlist}

      \hangingindent
      F Cassano, \textbf{MH Yee}, N Shinn, A Guha, S Holtzen (2023).
      \href{https://doi.org/10.48550/arXiv.2305.17145}{Type Prediction With Program Decomposition and Fill-in-the-Type Training},
      \emph{preprint}.
      \vspace{\interlist}

      \hangingindent
      F Cassano et al. (2023).
      \href{https://doi.org/10.1109/TSE.2023.3267446}{MultiPL-E: A Scalable and Polyglot Approach to Benchmarking Neural Code Generation},
      \emph{TSE}.
      \vspace{\interlist}

      \hangingindent
      O Flückiger, G Chari, \textbf{MH Yee}, J Ječmen, J Hain, J Vitek (2020).
      \href{https://doi.org/10.1145/3428288}{Contextual Dispatch for Function Specialization},
      \emph{OOPSLA}.
      \vspace{\interlist}

      \hangingindent
      O Flückiger, G Chari, J Ječmen, \textbf{MH Yee}, J Hain, J Vitek (2019).
      \href{https://doi.org/10.1145/3359619.3359744}{R Melts Brains: An IR for First-Class Environments and Lazy Effectful Arguments},
      \emph{DLS}.
      \vspace{\interlist}

      \hangingindent
      \textbf{MH Yee}, A Badouraly, O Lhoták, F Tip, J Vitek (2019).
      \href{https://arxiv.org/abs/1910.12935}{Precise Dataflow Analysis of Event-Driven Applications},
      \emph{technical report}.
      \vspace{\interlist}

      \hangingindent
      O Flückiger, G Scherer, \textbf{MH Yee}, A Goel, A Ahmed, J Vitek (2018).
      \href{https://doi.org/10.1145/3158137}{Correctness of Speculative Optimizations with Dynamic Deoptimization},
      \emph{POPL}.
      \vspace{\interlist}

      \hangingindent
      M Madsen, \textbf{MH Yee}, O Lhoták (2016).
      \href{https://doi.org/10.1145/2908080.2908096}{From Datalog to Flix: A Declarative Language for Fixed Points on Lattices},
      \emph{PLDI}.
      \vspace{\interlist}

      \hangingindent
      M Safa, \textbf{MH Yee}, D Rayside, C T Haas (2016).
      \href{https://dx.doi.org/10.1061/%28ASCE%29CP.1943-5487.0000555}{Optimizing Contractor Selection for Construction Packages in Capital Projects},
      \emph{ASCE J. Comput. Civ. Eng}.
      \vspace{\interlist}

      \hangingindent
      E Zulkoski, C Kleynhans, \textbf{MH Yee}, D Rayside, K Czarnecki (2014).
      \href{https://doi.org/10.1007/978-3-662-43652-3_34}{Optimizing Alloy for Multi-objective Software Product Line Configuration},
      \emph{ABZ}.
      \vspace{\interlist}

      \hangingindent
      R Bartha, \textbf{MH Yee}, R Rupsingh, M Smith, M Borrie (2009).
      \href{https://doi.org/10.1016/j.jalz.2009.04.138}{Altered macromolecule signal in the hippocampus in alzheimer patients measured by 1H magnetic resonance spectroscopy},
      \emph{Alzheimer's \& Dementia}.
    \vspace{\postsection}

  \section*{Technical Skills}
    \vspace{\postsubhead}
    \begin{adjustwidth}{\indentleft}{\indentright}
      \begin{itemize}
        \item Implementation experience: interpreters, just-in-time compilers, memory management, program analysis.
        \item Languages: C, {C\nolinebreak[4]\hspace{-.05em}\raisebox{.3ex}{\relsize{-1}{\textbf{++}}}}, Java, Scala, OCaml, Python, Ruby, JavaScript, TypeScript, R.
        \item Compilation targets: ARM, JVM, LLVM, MIPS, x86.
      \end{itemize}
    \end{adjustwidth}
    \vspace{\postsection}

  \section*{Education}
    \vspace{\postsubhead}
    \begin{adjustwidth}{\indentleft}{\indentright}
      \textbf{Doctor of Philosophy in Computer Science}
      \hfill
      \textbf{Boston MA}\\
      \emph{Northeastern University}
      \hfill
      \emph{Apr 2024}
      \begin{itemize}
        \item Thesis: \href{https://hdl.handle.net/2047/D20653005}{Predicting TypeScript Type Annotations and Definitions with Machine Learning}
        \item Advisor: \href{https://www.khoury.northeastern.edu/~arjunguha/main/home/}{Arjun Guha}
      \end{itemize}
      \vspace{\interlist}

      \textbf{Master of Mathematics in Computer Science}
      \hfill
      \textbf{Waterloo ON}\\
      \emph{University of Waterloo}
      \hfill
      \emph{Jun 2017}
      \begin{itemize}
        \item Thesis: \href{https://hdl.handle.net/10012/10856}{Implementing a Functional Language for Flix} (completed Aug 2016)
        \item Advisor: \href{https://plg.uwaterloo.ca/~olhotak/}{Ondřej Lhoták}
      \end{itemize}
      \vspace{\interlist}

      \textbf{Bachelor of Software Engineering}
      \hfill
      \textbf{Waterloo ON}\\
      \emph{University of Waterloo}
      \hfill
      \emph{Jun 2014}
      \begin{itemize}
        \item With Distinction --- Dean's Honours List
      \end{itemize}
      \vspace{\interlist}
    \end{adjustwidth}
\end{document}
