Work | Databricks San Francisc, CA Staff Software Engineer, Tech Lead Manager - Developer ExperienceOct 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 BusinessAug 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.0Sep 2010 - Jun 2013 Dropbox San Francisco, CA Software Engineer Intern, API TeamMay 2012 - Aug 2012 Facebook Palo Alto, CA Software Engineer Intern, Messaging TeamMay 2011 - Aug 2011 Singapore Armed Forces Singapore Lieutenant, Platoon Commander, 35th Battalion Singapore Combat EngineersJan 2008 - Nov 2009 |
Reference | Talks How an Optimizing Compiler WorksFour Facets of Good Open-Source LibrariesIsomorphic Web Developement without Javascript, with Scala.js!Shell-scripting in a Typed, OO LanguageFast, Modern, OO Parser CombinatorsFastParse: Fast, Modern Parser CombinatorsWhy (You might like) Scala.jsScala.js - Safety & Sanity in the wild west of the webBootstrapping the Scala.js EcosystemCross-platform development with Scala.jsFun Functional-Reactive Programming with Scala.RxMetascala: a tiny DIY JVM |