Li Haoyi

haoyi.sg@gmail.com

Work

Databricks

San Francisc, CA

Staff Software Engineer - Developer Tools

Oct 2017 - Present
  • Sped up core developer workflows (compiling Scala, local testing, CI validation, configuring deployments, ...) by 5-10x, reducing minutes- to tens-of-minutes-long workflows to a few seconds
  • Implemented a 50x faster compiler and an IntelliJ IDE plugin for the Jsonnet configuration language
  • Developed an elastic "Dev Box" service that provides on-demand, one-click cloud development environments, doubling the speed of dev workflows while minimizing costs by shutting down when not in use
  • Led the Devtools prioritization process: surveying engineers on their pain points, aggregating feedback, and planning projects to improve things. Increased the average self-reported happiness score from 3.1 to 4.0/5.0
  • Introduced many development practices to the org: JVM profiling, structured error logging, code auto-formatting
  • Ran weekly tech talks with internal and external speakers to share knowledge, with several dozen talks given so far

Dropbox

San Francisco, CA

Software Engineer - Developer Tools, Web Platform, Dropbox for Business

Aug 2013 - Oct 2016
  • Built Python/Javascript static analysis tools, speeding work while preserving quality, preventing 50+ defects a week
  • Rolled out an improved development workflow, reducing edit-refresh latency by 3x for Python and Coffeescript
  • Led a team of 2-3 to destroy flaky tests; reduced the number of builds failing due to flaky tests from about 10% to 1%
  • Helped manage our CI system comprising >3000 CI machines
  • Mentored an intern completing a successful project (test quarantine) in his 12 weeks here
  • Set up Selenium tests (> 300 CI machines) & got them adopted. Reduced bugs reaching production by 5-10 a week
  • Modularized our >100,000 lines of Coffeescript, from a 'cat em all' build system to Require.js modules
  • Built an auto-packager using machine learning to reduce the number of Javascript downloads by 200ish per page
  • Performance improvements for most common pages, including speeding up the home page by 6x

Open Source

Mill

Ammonite

  • ammonite.io: an improved Scala REPL and Script runner with many quality-of-life improvements

FastParse

Scala.js

  • Pioneered usage of Scala.js, demonstrating its effectiveness in real-world projects

Google Summer of Code

GSOC

2015-2016
  • Mentored Abhishek Kumar, working on performance, usability and Windows-support for Ammonite's scripts
  • Mentored Vladimir Polushin, who extended Fastparse's string-parsing to support parsing binary and streaming input
  • Mentored Laszlo Mero, who first implemented script-running support for the Ammonite REPL

Ancient History

Massachusetts Institute of Technology

Cambridge, MA

Undergraduate Computer Science, GPA 4.8/5.0

Sep 2010 - Jun 2013

    Dropbox

    San Francisco, CA

    Software Engineer Intern, API Team

    May 2012 - Aug 2012

      Facebook

      Palo Alto, CA

      Software Engineer Intern, Messaging Team

      May 2011 - Aug 2011

        Singapore Armed Forces

        Singapore

        Lieutenant, Platoon Commander, 35th Battalion Singapore Combat Engineers

        Jan 2008 - Nov 2009

          Reference

          Talks

          How an Optimizing Compiler Works

          Four Facets of Good Open-Source Libraries

          Scala Scripting

          Isomorphic Web Developement without Javascript, with Scala.js!

          Shell-scripting in a Typed, OO Language

          Fast, Modern, OO Parser Combinators

          FastParse: Fast, Modern Parser Combinators

          Beyond Bash

          Why (You might like) Scala.js

          Scala.js - Safety & Sanity in the wild west of the web

          Bootstrapping the Scala.js Ecosystem

          Hands-On Scala.js

          Cross-platform development with Scala.js

          Fun Functional-Reactive Programming with Scala.Rx

          Live-Coding Scala.js

          Metascala: a tiny DIY JVM