Li Haoyi

haoyi.sg@gmail.com

Work

Databricks

San Francisc, CA

Staff Software Engineer - Developer Tools

Oct 2017 - Present
  • Sped up all core developer workflows (compiling Scala code, running test services, testing spark images, configuring deployment infrastructure, etc.) 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 a "Dev Box" service that provides on-demand, one-click remote development environments. Developers get a large, fast remote machine to work on, further doubling the speed of arbitrary workflows while minimizing costs by shutting down when not in use.
  • Run regular surveys to take the subjective pain points that Databricks engineers with their tooling have and quantify them, letting us prioritize work on improvements that would have the largest and broadest impact .
  • Introduced structured error logging as a development practice, allowing engineers to rapidly find and fix issues in development and production services pro-actively, without needing to wait for customer complaints to come in
  • Ran "show and tell" tech talks with both internal and external speakers, helping disseminate knowledge and best practices across the organization and stimulating discussion and collaborating on common problems and pain points

Dropbox

San Francisco, CA

Software Engineer, Developer Tools

Mar 2015 - Oct 2016
  • Built static analysis tools for in Python and Coffeescript, allowing fast refactoring. Rejects 50+ buggy diffs 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

Software Engineer, Web Platform

Mar 2014 - Mar 2015
  • 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, moving 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

Software Engineer, Dropbox for Business

Aug 2013 - Mar 2014
  • Worked on two-account migration for www.dropbox.com, two-account pairing flow
  • Performance improvements for most common pages, including speeding up the home page by 6x

Open Source

Scala.js

Ammonite

  • Implemented the Ammonite REPL (ammonite.io) an improved Scala REPL and Script runner with syntax highlighting, pretty-printed output, multi-line editing, and many other quality-of-life improvements

  • Well known in the community and used in many Scala shops, from startups to large ones like Twitter and Verizon

FastParse

www.lihaoyi.com/fastparse : the de-facto standard parsing library for easily parsing structured text in Scala; makes writing parsers trivial and safe, while running hundreds of times faster than the built-in Scala parsing library

Google Summer of Code

GSOC 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

GSOC 2015

  • Mentored Laszlo Mero, who first implemented script-running support for the Ammonite REPL

Buzzwords

  • Scala - Python - Coffeescript - Javascript - Java - C# - Bash - SQL
  • React.js - Flask - PostgreSQL - Selenium - JVM Internals - Amazon Web Services - IntelliJ - Ubuntu
  • Static Analysis - Compilers - REPLs - Parser Combinators - Syntactic Macros - FRP
  • Web Dev - Algorithms - Performance - 3D Graphics - 3D Physics - Control Systems - Sandboxing

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

          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