Objective
To lead a small- to medium-sized engineering group on an
innovative project relating to any or all of my areas of
experience and expertise: object-oriented and object-capability
runtimes (including virtual machines), operating systems, platform
security, or language processing (both human and computer).
Important note for recruiters:
Read this before contacting me. Click here!
Work Experience
Engineer: The Obvious Corporation.
October, 2011 – present
Obvious is an early stage startup and is generally quiet about
its work.
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
- continue to be active in the helping defend the project in
various legal venues
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, aka 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,
aka 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: ScriptX
group, Kaleida Labs, Inc.
March, 1993 – February, 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, 1992 – May, 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 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
Patents Granted
- Daniel R. Bornstein. "Optimizing code using dynamic common expression
elimination during runtime." Patent #AU2097901, published 2001-06-25.
- Daniel E. Rose, Daniel R. Bornstein, and Jeremy J. Bornstein.
"Analyzing input data streams using user criteria." 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."
Patent #AU4021301, published 2001-04-24.
- Leonard G. Raymond, Neill Kramer, Daniel R. Bornstein, and Jeremy J.
Bornstein. "For a financial trading system." 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." Patent
#AU7712200, published 2001-04-24.
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, 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 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, 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
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
<http://www.milk.com/home/danfuzz/resume/>. Permission is
granted to reproduce this page in its entirely, without modification.
Thank you. Copyright © 1992-2011, Dan Bornstein. All rights
reserved.