Li Haoyi

haoyi.sg@gmail.com

Work

Databricks

San Francisc, CA

Staff Software Engineer, Tech Lead Manager - Developer Experience

Oct 2017 - Present
  • Manage a distributed team of 6 across 5 countries in 3 timezones, onboarding 5 new engineers of varying seniority and teaching them everything necessary to be productive and effective at Databricks
  • 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 3.8/5.0
  • Ran weekly tech talks with internal speakers to share knowledge, at both org-wide and team-specific levels
  • Architected Databrick's distributed CI system, an elastic distributed task runner with improved stability, scalability, and usability to replace our aging Jenkins infrastructure
  • Architected Databricks' elastic "Dev Box" service: on-demand, high-performance cloud development environments
  • Re-architected Databricks' cloud integration testing platform from a rough prototype to a production-ready system
  • Optimized and sped up many core developer workflows (compiling Scala, CI validation, etc.) by 5-10x
  • Implemented the config language used throughout Databricks including its high-performance compiler and IDE plugin
  • Introduced many development practices to the org: JVM profiling, structured error logging, code auto-formatting

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

Publishing

Hands-on Scala Programming

  • www.handsonscala.com/
  • A 400-page book that teaches you how to use the Scala programming language in a practical, project-based fashion.

  • This book is designed to quickly teach an existing programmer everything needed to go from "hello world" to building production applications like interactive websites, parallel web crawlers, and distributed systems in Scala.

  • Availabe on Amazon (paperback) and Gumroad (e-book formats)

Open Source

I authored and maintain a number of popular open-source libraries, totalling over 9,000,000 monthly downloads

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