Bill Moorier, PhD

doctorbill@gmail.com

650-862-8283

Work
2018 - now

Sabbatical

I've enjoyed spending more time with my kids (even teaching them some programming!).

2007 - 2018

Twitch (Justin.TV), California

I was Twitch's first engineering hire.

I created many of the first versions of several Twitch products, and worked on a diverse range of the technologies that the company created -- from the original chat backend (Python/Twisted, scaled to 500,000 concurrents) to the company's first iOS app (Objective C).

2003 - 2007

Macrovision, California

The first startup I worked for (NetPD) was acquired by Macrovision in 2003, and we were given the task of building from scratch Macrovision's new internet antipiracy product. I was responsible for a wide variety of work including:

  • Architecture, design and implementation of large distributed systems written in Java
  • Large amounts of network programming in Java, particularly NIO (non-blocking I/O), for servers that were each required to maintain and service upwards of 25,000 simultaneous connections
  • Various novel solutions to difficult problems, for example writing a very fast cache for a database server when our SQL queries (on about 14 million rows) were taking several minutes
2001 - 2003

NetPD, London

As the first employee at London-based startup NetPD, I was responsible for anything and everything from Java, C and C++ programming to UNIX administration and reverse engineering of network protocols.

During my employment at NetPD I co-designed and co-wrote a program that would match a given clip of audio against a large database of music recordings. The matching was sufficiently robust that it could cope with the distortions introduced by mp3 encoders, loudspeakers and microphones.

1997 - 2001

Department of Pure Mathematics, University of Nottingham.

My time at Nottingham included:
  • Three months spent as a Guest Researcher at Brown University, USA
  • Presentation of original research at International Banach Algebra Conference in California, 1999
  • Weekly lectures given to undergraduate students
Experience
I bought my first computer, a Sinclair ZX81, when I was nine years old, and have been programming computers ever since then. My experience includes:
  • Python, JavaScript, Java, C, and Common Lisp programming, all to a reasonably advanced level
  • Some Ruby, C++, Actionscript, Bash, Objective C and Scheme programming
  • Extensive use of Emacs, including some ELisp programming
  • Working in a UNIX environment since 1995 (originally Sun Sparc and, from 1999, Linux)
  • The LATEX scientific typesetting language, and the HTML and CSS markup and presentation languages
  • A little Linux kernel module programming

Education
As a hacker I am almost entirely self-taught. I have a proactive attitude to my own education and work to keep up with the latest developments in computing.

My formal education is in Mathematics:

  • Ph.D. in Pure Mathematics. Nottingham University, September 1997 - March 2001.
    Thesis title "Properties of Banach function algebras"
  • B.Sc. in Mathematics. Nottingham University, 1994 - 1997

Publications and Patents
  • "Completions of normed algebras of differentiable functions", Studia Mathematica 170 (2005), 89-111.
  • Patent 20050216433: Audio Matching
  • Patent 20070143405: Techniques for measuring peer-to-peer networks
  • Patent 20050091167: Interdiction of unauthorized copying in a decentralized network