Dan Bornstein
San Francisco CA 94103
*******@****.***
Recruiters: See below!
(resume version #1206)
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 runtimes (including virtual machines), operating systems, platform security,
and language processing (both human and computer).
Important note for recruiters: Read this before contacting me. Click here!
Work Experience
Engineer: The Obvious Corporation.
October, 2011present
Obvious is an early stage startup and is generally quiet about its work.
Tech Lead / Staff Software Engineer: Android team, Google.
October, 2005September, 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
continue to be active in the helping defend the project in various legal venues (as of
2012)
Senior Software Engineer: Firmware team, Danger, Inc
.
October, 2002September, 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, 2001August, 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, aka BrokerBot)
February, 1998May, 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, aka Communities.Com)
May, 1996April, 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, 1995April, 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: ScriptX group, Kaleida Labs, Inc.
March, 1993February, 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
Designer and Engineer: Sweetpea group, Kaleida Labs, Inc.
July, 1992May, 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
Student Administrative Manager: Student Computer Consultant Program, Brown UniversityDecember, 1988May, 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
Patents Granted
Relevant Computer Knowledge
Acronyms
CSS, EAN, HTML, HTTP, IRC, JSON, JSP, LRF, MIDP, NNTP, SMTP, TCP/IP, POSIX, RMI, UDP,
UPC, UTSL, XBM, XML
Languages
ANTLR, awk, C, C++, Dalvik, E, Java (mobile and servlet, intimately familiar with
Java/JVM internals), JavaScript/ECMAScript, Lisp/Scheme, Pascal, Prolog, Rexx, ScriptX,
sed, sh/bash, SQL (just a little), and of course several assembly languages (most recently
ARM/Thumb)
Programs
Ant, Emacs, Git (Repo / Gerrit), JUnit, Make, Perforce
Operating Systems
Linux / Unix / POSIX, MacOS X
Education
Brown University, Providence, Rhode Island
September, 1988May, 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 is
still used today
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, 1984June, 1988Graduated from the International Baccalaureate program with honors
Senior thesis in computer science earned highest possible score
National Merit Scholar
Interests, Activities
Music, all aspects, from mere listening to composition and playing (synthesizer and
fretless bass, among other instruments), to dj'ing, to design and implementation of
software music systems.
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 Barcode Server is one of my favorites. I also wrote the screensavers NerveRot,
Barcode, Petri, and Twang, which ship with XScreenSaver, and I have contributed to the
Java-Gnome and ANTLR projects. I maintain a site for my own open software.
Various and sundry physical activities, including (but not limited to) snowboarding and
yoga.
If you are reading this off-line, then you may want to visit the web version at .
Permission is granted to reproduce this page in its entirely, without modification. Thank
you. Copyright c 1992-2011, Dan Bornstein. All rights reserved.