Objective
To lead a small- to medium-sized engineering group on an
innovative project relating to any or all of my areas of
interest, experience, and expertise: object-oriented and object-capability
languages and runtimes (including virtual machines), operating systems, and
the "redecentralization" space.
Roughly stated, my overarching career mission is to design, build,
and deploy software platforms that put end users in control of their
computing and data, in part by making it easy and natural for programmers
to create software that honors user desire.
Important note for recruiters:
Read this before contacting me. Click here!
Selected Public Work
Work Experience
Founder: Unnamed Startup.
September 2019 – September 2020
June 2021 – present
This new company is working in the "redecentralization" space.
Engineer: The Browser
Company.
September 2020 – February 2021
The Browser Company is trying to address the tensions and unhappiness felt
by folks using mainstream web browsers and related applications.
Senior Staff Software Engineer: Slack Technologies.
November 2015 – September 2019
Slack's main product is a team collaboration tool, focusing on interactive
chat and allowing easy integration with both custom and third-party tools and
services.
- Platform Team (2015 – 2016):
- Responsible for tightening up the RPC API, including a large amount
of technical debt reduction, documentation (both internal and external),
and tactical feature work toward long-term goals.
- Core Product Team (2016 – 2019):
- Cofounded a team with one other engineer, to work on an entirely new
product under the Slack "core product" umbrella. (The team grew before
deployment.)
- Project code is written in modern JavaScript (ES2018 compiled with
Babel) on both the front- and back-ends.
- Responsible for having written most of the server code, as well as the
portion of the client code which most-directly interacts with the
server.
Founder: Unnamed Startup.
February 2015 – November 2015
This new company was working on a new way for users to manage their data
and interpersonal communications.
Principal Engineer: Nextbit Systems.
January 2013 – January 2015
Nextbit Systems was an early-stage startup, doing interesting
platform work in the area of mobile devices. They were acquired by
Razer in 2017.
- Set up initial deployment infrastructure.
- Prototyped application platform.
Engineer:
Medium (formerly a/k/a The Obvious
Corporation).
October 2011 – December 2012
Medium is a publishing platform, aiming to promote quality
content to the users who would appreciate it, emphasizing content
per se over who wrote it and when.
Medium sprung from an incubator-style company called The Obvious
Corporation, whose goal was to use technology to change the
world for the better, on several fronts.
- Back-End Infrastructure:
- Wrote the GNU Make-based build system.
- Designed and implemented the zero-downtime deployment system
(awk, bash, NodeJS, and Jenkins, all sitting on top of AWS).
- Fleshed out the continuous internal integration-and-deployment
system (similar to the above).
- Built and maintained several NodeJS modules, several of which have been
published and released as open source.
Tech Lead / Staff Software Engineer: Android team,
Google.
October 2005 – September 2011
Google is a company that runs a number of web-based services and
has various other related businesses. The Android team is responsible
for the development and maintenance of the
Android platform for cell phones
and other embedded devices. I helped found the Android team, and during
my time on the team we shipped nine major platform releases and numerous
minor ones.
- Was responsible for Dalvik, the virtual machine and core
library foundation that underlies Android applications. This
includes libraries in the
java.*
and javax.*
package namespaces, and it extends to related libraries including
Apache Http Components, ICU, BouncyCastle, OpenSSL, Zlib, and
a few other odds and ends:
- Project founder and designer.
- Tech lead.
- People manager.
- Project manager.
- Individual contributor:
- Designed new bytecode executable format,
.dex
,
to allow for speedy interpretation, low memory overhead,
and ease of JIT compilation.
- Implemented build-time translator,
dx
,
which translates .class
files into .dex
files.
- Implemented device-side
.dex
file reader and
structural verifier.
- Implemented many of the core classes from scratch.
- Performed several code imports and integrations, from
other open source projects and from contractor/vendor partners.
- Helped out on other areas of Android:
- Helped design and specify the Android Compatibility Test
Suite ("CTS") as well as the Compatibility Definition Document
("CDD").
- Was member of the Android Engineering Leadership team,
responsible for larger-scale engineering coordination.
- Was member of the Release Team and the Bug Council, responsible for
dealing with the minutiae of the device release and launch
processes.
- Was active in the open source effort, including public interaction
in person, on email lists, and on web forums.
- Continued to be active in the helping defend the project in
various legal venues through at least 2017.
Senior Software Engineer: Firmware team, Danger, Inc.
October 2002 – September 2005
Danger designed, developed, and sold a series of products in the
cellphone-pda convergence space, a product category that was later
popularized by Apple. Danger's main product
was sold through T-Mobile under the "Sidekick" brand name; with other
carriers, it was sold as the "hiptop." Danger was acquired by
Microsoft in 2008.
- Rewrote the heap and garbage collection code in order to
reduce collection duration and frequency, and so as to support
weak and soft references.
- Made the system more standards-compliant (CLDC-1.1 in
particular), by implementing new VM and library features, and by
fixing pre-existing but non-compliant features.
- Wrote most of a
stdio
implementation from scratch, based on
official specs, manpages, and observed behavior of existing
implementations.
- Improved performance of critical pieces of the system, often by
writing the most commonly used code in assembly (ARM/Thumb), including:
- The core VM interpreter.
- Several primitive graphics operations.
- The big-integer arithmetic library.
- Key parts of the audio encoding and decoding library.
- Designed, wrote and improved build-time tools, including:
- A spec-compliant Java classfile/bytecode verifier (written in
Java).
- A converter from Java classfiles into Danger's internal bytecode
format, which includes bytecode translation as well as several
optimizations (written in C++).
- A Unicode table manipulator, which generates optimized tables for the
class
java.lang.Character
(written in Java).
- A "virtual machine compiler" to generate optimized interpreter
code for multiple targets, from a single specification (written in Java,
with parsers generated by ANTLR).
- Made major improvements to the device simulation environment.
- Contributed to the development of Danger's custom class library.
- Wrote font manipulation tools, and designed two font families (one
retroactively).
- Identified (and sometimes fixed) bugs in the ARM/Thumb backend of
gcc.
- Took on role of resident Java expert, advising other application and
library developers on how best to use the language.
- Wrote a couple of games for the platform (written in Java).
Cofounder and Chief Software Architect:
Volvox Technologies.
September 2001 – August 2002
Volvox Technologies developed a novel system in the area of
distributed computing in Java, but unfortunately failed to secure
funding.
Cofounder and Chief Software Architect:
Xigo, Inc. (formerly a/k/a BrokerBot).
February 1998 – May 2001
Xigo developed and hosted software that allowed investors to get
information in a more timely, more precise, and more pleasant fashion than
any other company offered to the general public.
- Designed and prototyped components including:
- The market data feed simulator.
- The stock trading engine.
- The Scheme-based compiler/interpreter.
- The user database.
|
- The Master Control Program.
- The custom web page generator.
- The front-end web pages.
|
- Was architect qua Architect, researching possible development tools
and strategies, setting development standards, and being a good
example; as such, was instrumental in developing Xigo's monthly
development/deployment cycle, based in part on XP principles
- Coordinated development inside the engineering department, making
sure that the right developers developed the right stuff and talked with
the right other people about problems and issues; similarly, acted as an
initial point of contact for other parts of the company; in general, kept
things running smoothly inside the development group
- Developed components that actually made it into production, including:
- The internal system monitor.
- The communications infrastructure, including a small (but
spec-compliant) embeddable web server.
- The library of cross-component utilities.
- Was the designated realist.
Architect and Engineer: Electric Communities (later,
a/k/a Communities.Com).
May 1996 – April 1998
- Architect of the E compiler.
E was a superset of Java geared towards secure concurrent distributed
programming:
- Took over from previous developer, with the tasks of increasing
efficiency, simplifying the design, and adding new functionality as
demanded by the higher layers of the system.
- Worked on a team including remote contractors to simultaneously
develop the compiler and runtime.
Designer and Engineer: Vicarious, Inc.
February 1995 – April 1996
- Worked on many aspects of a cross-platform CD-ROM-based title engine:
- Designed and implemented the text index and search facility.
- Designed and implemented the internal text markup engine.
- Enhanced the persistent object storage system.
- Created data conversion tools for various text-like formats,
including structured SGML markups and heuristics-driven pseudomarkups
(importing books from word processors and page layout programs).
Designer and Engineer: Kaleida Labs, Inc.
July 1992 – February 1995
- Sweetpea group (1992 – 1993):
- Designed, implemented, and generally worked on several software
components of a hand-held data player, including the text
search-and-retrieval system, the run-time object model (including
low-level data structures), the filesystem interface, the serial drivers,
and the power management system.
- Ported the run-time object model from the Macintosh to Sweetpea, and
in the process made the code more platform-independent.
- ScriptX
group (1993 – 1995):
- Designed and implemented the platform-independent thread system.
- Designed the collection class hierarchy, and implemented much of it.
- Designed and implemented object system enhancements including tag-bit
object support, multiple dispatch, and method-style instance variable
access.
- Worked on increasing the elegance of the system; became the
maintainer/overseer of the object model.
Student Administrative Manager:
Student Computer
Consultant Program, Brown University.
December 1988 – May 1992
- Wrote and maintained software for the Consultant
Program, including an electronic time card system
Designer and Engineer:
Sixth Judicial Circuit, Pinellas County, Florida.
June 1988 – January 1991 (intermittently)
- Designed and wrote an automated court calendaring system to replace
the pen-and-ink calendar books used by judicial assistants (approximately
20,000 lines of code).
- Worked closely with the then-future users of the system.
Relevant Computer Knowledge
- Acronyms
- CSS, HTML, HTTP(S), JSON, LRF, PEG, PHP, SMTP, SSH, SSL, TAP, TCP/IP, UDP,
UPC, UTSL, XML
- Languages
- ANTLR, awk, C / C++, Dalvik / .dex, E, Java (mobile and server,
intimately familiar with Java / JVM internals), JavaScript / ECMAScript /
NodeJS, lex / yacc / flex / bison, Lisp / Scheme, Pascal, PHP / Hack,
Prolog, Rexx, ScriptX, sh / bash, Samizdat, SQL (just a little), and of
course several assembly languages (including ARM / Thumb)
- Programs / Systems
- Atom, AWS / EC2 / Route53 / S3, Emacs, Git / Repo / Gerrit, Jenkins,
JUnit, Make
- Operating Systems
- Linux / Unix / POSIX, macOS
Patents Granted
- Michael A. Chan, Tom Moss, Daniel R. Bornstein, Michael K. Fleming, Justin
Quan, Linda Tong.
"Electronic device system restoration by tapping mechanism." United States
Patent #11044592, published 2021-06-22.
- Michael A. Chan, Justin Quan, Daniel R. Bornstein, Tom Moss, Linda Tong.
"Utilizing version vectors across server and client changes to determine
device usage by type, app, and time of day." United States Patent #10872064,
published 2020-12-22.
- Michael A. Chan, Tom Moss, Daniel R. Bornstein, Justin Quan, Linda Tong.
"Prioritizing file synchronization in a distributed computing system."
United States Patent #10817477, published 2020-10-27.
- Michael A. Chan, Justin Quan, Daniel R. Bornstein, Tom Moss, Linda Tong.
"Utilizing user devices for backing up and retrieving data in a distributed
backup system." United States Patent #10762055, published 2020-09-01.
- Michael A. Chan, Justin Quan, Daniel R. Bornstein, Tom Moss, Linda Tong.
"Continuous and concurrent device experience in a multi-device ecosystem."
United States Patent #10725972, published 2020-07-28.
- Michael A. Chan, Justin Quan, Daniel R. Bornstein, Tom Moss, Linda Tong.
"Storage optimization in computing devices." United States Patent #10684995,
published 2020-06-16.
- Michael A. Chan, Justin Quan, Daniel R. Bornstein, Tom Moss, Linda Tong.
"API for resource discovery and utilization." United States Patent #10515056,
published 2019-12-24.
- Michael A. Chan, Justin Quan, Daniel R. Bornstein, Tom Moss, Linda Tong.
"Game state synchronization and restoration across multiple devices." United
States Patent #10146790, published 2018-12-04.
- Michael A. Chan, Tom Moss, Daniel R. Bornstein, Michael K. Fleming, Justin
Quan, Linda Tong. "Electronic device system restoration by tapping mechanism."
United States Patent #10123189, published 2018-11-06.
- Michael A. Chan, Tom Moss, Daniel R. Bornstein, Justin Quan, Linda Tong.
"Prioritizing file synchronization in a distributed computing system." United
States Patent #9965489, published 2018-05-08.
- Daniel R. Bornstein, Tom Moss, Michael A. Chan, Linda Tong, Justin Quan.
"Decentralized operating system." United States Patent #9858052, published
2018-01-02.
- Michael A. Chan, Tom Moss, Daniel R. Bornstein, Justin Quan, Linda Tong.
"Utilizing user devices for backing up and retrieving data in a distributed
backup system." United States Patent #9720665, published 2017-08-01.
- Michael A. Chan, Tom Moss, Daniel Reuben Bornstein, Michael K. Fleming,
Justin Quan, Linda Tong. "Data caching among interconnected devices." United
States Patent #9678735, published 2017-06-13. Also listed as United States
Patent #10083177, published 2018-09-25.
- Michael A. Chan, Justin Quan, Daniel R. Bornstein, Tom Moss, Linda Tong.
"Game state synchronization and restoration across multiple devices." United
States Patent #9606782, published 2017-03-28.
- Michael A. Chan, Justin Quan, Daniel R. Bornstein, Tom Moss, Linda Tong.
"Configurable application state synchronization." United States Patent
#9563413, published 2017-02-07.
- Michael A. Chan, Justin Quan, Daniel R. Bornstein, Tom Moss, Linda Tong.
"Context sensitive distributed file system synchronization and merging
semantics." United States Patent #9524151, published 2016-12-20.
- Michael A. Chan, Tom Moss, Daniel R. Bornstein, Michael K. Fleming, Justin
Quan, Linda Tong. "Mobile application migration to cloud computing platform."
United States Patent #9462022, published 2016-10-04. Also listed
as United States Patent #9531775, published 2016-12-27.
- Michael A. Chan, Justin Quan, Daniel R. Bornstein, Tom Moss, Linda Tong.
"Sharing authentication profiles between a group of user devices."
United States Patent #9442705, published 2016-09-13.
- Michael A. Chan, Justin Quan, Daniel R. Bornstein, Tom Moss, Linda Tong.
"Automatic resource balancing for multi-device location-based applications."
United States Patent #9124591, published 2015-09-01.
- Michael A. Chan, Justin Quan, Michael K. Fleming, Daniel R. Bornstein.
"Detecting serialization scheme used in software applictions." United
States Patent #9122491, published 2015-09-01.
- Michael A. Chan, Daniel R. Bornstein, Linda Tong.
"Gaming application state transfer amongst user profiles."
United States Patent #9095779, published 2015-08-04.
- Michael A. Chan, Justin Quan, Daniel R. Bornstein, Tom Moss, Linda Tong.
"Automatic resource balancing for multi-device applications."
United States Patent #9065829, published 2015-06-23. Also listed
United States Patent #9146716, published 2015-09-29.
- Michael A. Chan, Justin Quan, Daniel R. Bornstein, Tom Moss, Linda Tong.
"Synchronizing an instance of an application between multiple devices."
United States Patent #9061210, published 2015-06-23.
- Michael A. Chan, Justin Quan, Daniel R. Bornstein, Tom Moss, Linda Tong.
"Prioritizing downloading of image files." United States Patent #9047321,
published 2015-06-02.
- Michael A. Chan, Tom Moss, Daniel R. Bornstein, Michael K. Fleming,
Justin Quan, Linda Tong. "Optimized video streaming using cloud computing
platform." United States Patent #9021120, published 2015-04-28.
- Michael A. Chan, Justin Quan, Daniel R. Bornstein, Tom Moss, Linda Tong.
"Location based game state synchronization." United States Patent #9002992,
published 2015-04-07.
- Michael A. Chan, Justin Quan, Daniel R. Bornstein, Tom Moss, Linda Tong.
"Prioritizing synchronization of audio files to an in-vehicle computing
device." United States Patent #9002829, published 2015-04-07.
- Michael A. Chan, Justin Quan, Daniel R. Bornstein, Tom Moss, Linda Tong.
"Using mobile devices of a user as an edge cache to stream video files."
United States Patent #8954394, published 2015-02-10.
- Michael A. Chan, Daniel R. Bornstein, Linda Tong. "Mechanism for sharing
states of applications and devices across different user profiles."
United States Patent #8954611, published 2015-02-10.
- Michael A. Chan, Tom Moss, Daniel R. Bornstein, Michael K. Fleming,
Justin Quan, and Linda Tong. "Optimized video streaming using cloud
computing platform." United States Patent #8745261-B1, published
2014-06-03.
- Michael A. Chan, Tom Moss, Daniel R. Bornstein, Michael K. Fleming,
Justin Quan, and Linda Tong. "Mobile photo application migration to cloud
computing platform." United States Patent #8725800-B1, published
2014-05-13.
- Dianne K. Hackborn, David P. Bort, Joseph M. Onorato, Daniel R.
Bornstein, Andrew T. McFadden, Brian J. Swetland, and Richard G.
Cannings. "Self-signed certificates for computer application signatures."
United States Patent #8589691, published 2013-11-19. Also listed
as United States Patent #8621226, published 2013-12-31; and as United
States Patent #9137023, published 2015-09-15.
- Dianne K. Hackborn, David P. Bort, Joseph M. Onorato, Daniel R.
Bornstein, Andrew T. McFadden, Brian J. Swetland, and Richard G.
Cannings. "Computer application pre-permissioning." United States
Patent #8255991, published 2012-08-28. Also listed as United States
Patent #8332936, published 2012-12-11. Also listed as United States
Patent #9256759, published 2016-02-09. Also listed as United States
Patent #9563750, published 2017-02-07.
- Daniel R. Bornstein, Carl S. Shapiro, Jeffrey M. Brown, Christopher
Lynn Tate. "Computing platform with resource constraint negotiation."
United States Patent #8429666, published 2012-07-26.
- Daniel R. Bornstein, Ben C. Cheng, and William B. Buzbee.
"Fault-resistant just-in-time compiler." United States Patent #8201026,
published 2012-06-12.
- Daniel R. Bornstein. "Optimizing code using dynamic common expression
elimination during runtime." Australia Patent #AU2097901,
published 2001-06-25.
- Daniel E. Rose, Daniel R. Bornstein, and Jeremy J. Bornstein.
"Analyzing input data streams using user criteria." Australia Patent
#AU2098301,
published 2001-06-25.
- Leonard G. Raymond, Daniel R. Bornstein, and Jeremy J. Bornstein.
"Notification and alert processing using a plurality of communication media."
Australia Patent #AU4021301, published 2001-04-24.
- Leonard G. Raymond, Neill Kramer, Daniel R. Bornstein, and Jeremy J.
Bornstein. "For a financial trading system." Australia Patent #AU7611200,
published 2001-04-24.
- Leonard G. Raymond, Neill Kramer, Daniel R. Bornstein, and Jeremy J.
Bornstein. "For user interface for a financial trading system." Australia
Patent #AU7712200, published 2001-04-24.
Education
Brown University,
Providence, Rhode Island
September 1988 – May 1992
- Major in Cognitive
Science
(ScB) plus equivalent of Computer
Science (AB)
- Honors: magna cum laude, Phi Beta Kappa,
Sigma Xi
- Relevant coursework:
- Independent Study in Computer Science: Wrote the
original server for the Brown Online
Course Announcement, a database engine for tagged text files
containing information about all of Brown's courses; was in production,
basically unmodified, for about 8 years, and was in active use for
several years more.
- Operating Systems: Wrote a complete (if small)
Unix-like operating system which included preemptive multitasking, a
non-trivial filesystem, interrupt-driven I/O, pipes, and signals.
- Software Engineering: Wrote a "Robot War" game as
a member of a three-person team; designed and implemented the
PostScript-like robot control language.
St. Petersburg High School,
St. Petersburg, Florida
September 1984 – June 1988
- Graduated from the International Baccalaureate program with honors.
- Senior thesis in computer science earned highest possible score.
- National Merit Scholar.
Interests, Activities
Electronic Publishing: I had a
personal web site before
it was hip (and still have one, now that it's post-hip).
Recreational Hacking: I enjoy putting together the
occasional personal software project. The Milk Music demos page is one of my
favorites. I also wrote the screensavers NerveRot, Barcode, Petri, and Twang,
which ship with
XScreenSaver. In addition, I have
made many other open source contributions.
Music, all aspects, from mere listening to composition and playing
(ukulele and synthesizer, among other instruments), to dj'ing, to design and
implementation of software music systems.
Avid city-walker and coffee dilettante.
If you are reading this off-line, then
you may want to visit the web version at
<https://milk.com/home/danfuzz/resume/>. Permission is
granted to reproduce this page in its entirely, without modification.
Thank you.
Copyright © 1992–2024 Dan Bornstein. All rights reserved.