|
Authored by: indyandy on Monday, May 21 2012 @ 02:09 AM EDT |
[Ed: (Remove this comment when inserting this html)
In the preview I
see several cases where non-breaking space tags have been incorrectly
interpreted by geeklog
They should all look like ' ', but some have
an extra space inside the tag or have not correctly interpreted the ampersand
tag.
I can see errors on the following lines IN THE PREVIEW:
... Andrew
T. McFadden
... Bytecode interpreter, in C and ARM assembly
... library
features, like reflection and proxy classes.
... Native method access
(JNI).
... Bytecode verifier and register maps (to support type-precise
GC)
... Developer features: remote debugger support (JDWP)...
... (In
short, wrote nearly all of the features found in
Android...
]
[Ed:<br>
1 This is the Resume of
Andrew McFadden as downloaded (printed?) on 5/1/2011 (according to the footer on
the pdf)<br>
2 At time of transcription this document was available
online at http://www.fadden.com/resume.html. The online version has correct
formatting and working hyperlinks. This transcription uses minimal formatting
and has no
hyperlinks.<br>
]<br>
<br>
&am
p;nbsp; Andrew T. McFadden<br>
fadden@fadden.com<br>
http://www.fadden.com/resume.html<br>
<br>
(Please bear in
mind this was initially thrown together for a couple of informal interviews, not
carefully crafted for a<br>
formal
presentation.)<br>
<br>
<br>
<br>
Skills
<br>
Things I'm really good
at:<br>
<br>
C/C++<br>
UNIX (Linux, Solaris, SunOS,
others)<br>
Writing lots of solid code
while under pressure<br>
Debugging<br>
<br>
Things I've done a little of recently or
a lot of a while
back:<br>
<br>
Java<br>
ARM assembly
(ARMv5TE+)<br>
Windows programming
(Win32 API, including MFC, with some C#
.NET)<br>
<br>
Things I used to be really good at, and could
be again:<br>
6502/65816 assembly
language (Apple ][/IIgs, SNES)<br>
<br>
Employment
History<br>
<br>
Android, Inc. / Google, Inc. -=- May 2005 -
present <br>
<br>
<br>
Senior Software Architect
at Android. The company was acquired by Google in July
2005.<br>
<br>
After the acquisition I continued to be part
of Android mobile software development. Responsibilities and
achievements:<br>
<br>
Primary developer of the Dalvik virtual machine runtime. Wrote 85-90% of the
code,
notably:<br>
&nb
sp; Bytecode interpreter, in C and ARM
assembly.<br>
&n
bsp; Class loader, object model, native threads, basic
synchronization.<br>
 
; "Internal" library features,
like reflection and proxy
classes.<br>
&nb
sp; Native method access
(JNI).<br>
 
; Bytecode verifier and register maps (to support
type-precise
GC).<br>
&
amp;nbsp; Developer features: remote debugger support (JDWP), method
profiling, deadlock
prediction.<br>
&
;nbsp; (In short, wrote nearly all of the features found in
Android 1.0 - 1.6, except for the garbage-collected heap and a few odds and
ends.)<br>
Wrote developer
documentation on VM-related topics.<br>
Created the first incarnation of DDMS, a GUI app that manages the connection
between a debugger and multiple Dalvik VMs running on a device. (This was later
converted to an Eclipse plug-in and built into the Android
SDK.)<br>
Developed the Android
"simulator", a GUI front-end that allows Android software to
run directly on a Linux desktop. (This significantly pre-dated the Android
"emulator", which now ships with the SDK.) The hardware
abstraction was later improved by using a pre-load library that patches various
library and system calls.<br>
Learned
Java, Javascript, Python, ARM assembly, SWT, and wxWidgets when I needed to use
them.<br>
Actively supported Android
developers on mailing lists.<br>
<br>
FaddenSoft, LLC -=-
August 2002 - May 2005<br>
<br>
Founder, member, chief
architect, and head dish washer. I worked on projects that interested me and
published them as freeware or shareware on the web, and occasionally did
contract work.
Notables:<br>
<br>
Technical
Consultant -=- March 2005 - April
2006<br>
<br>
Provided
technical expertise to a law firm during software patent
litigation.<br>
<br>
Akimbo
Systems, Inc. -=- November 2003 - December
2003<br>
<br>
(Software
engineering contract.) Developed an event logging system in C# .NET. Developed
an API for engineers to use to log interesting events to a compact binary
format. Wrote log harvesting and aggregation servers, as well as tools for
sorting and formatting event
logs.<br>
<br>
CiderPress -=-
initial release March 2003, open-source March
2007<br>
<br>
Developed
CiderPress, a Windows application for manipulating Apple II archives and disk
images.<br>
Features include a full set
of archive operations (similar to WinZip) as well as Apple II-specific text and
graphic file format converters. The program uses low-level I/O operations to
access Apple II hard drives, floppy disks, CF cards, and CD-ROMs. Five different
filesystems are supported. The project was developed in C++ (about 100K lines of
well-commented source code), using Visual Studio 6.0 and the MFC
library.<br>
<br>
Moxi Digital / Digeo, Inc. -=- January
2000 - July 2002<br>
<br>
Software architect and team lead.
Moxi built a set-top box featuring multi-tuner video recording, CD jukebox, MP3
ripping and playback, DVD playback, and wired or wireless distribution. The
device went on to win Best In Show at the January 2002 CES
convention.<br>
<br>
Moxi Digital was originally known as
Rearden Steel Technologies. It was acquired by Digeo in May of
2002.<br>
<br>
Responsibilities and
achievements:<br>
<br>
Part
of the "Gang of Five" that developed the detailed design of
the hardware and software. Developed detailed plans for application
infrastructure, graphics and sound architecture, "mother"
services, and other topics.<br>
Part of
a small group that defined the merged Moxi/Digeo architecture after the
acquisition.<br>
Led a team varying in
size from 2 to 4 engineers. My group was responsible for application
infrastructure, graphics drivers, satellite and cable tuning, DVD playback, user
input, and porting Macromedia Flash (4.x and 5.x) to our
architecture.<br>
Designed and
implemented "Central Services", the core of the Moxi
application infrastructure. CS loaded apps, managed access to graphics and video
resources, handled user input devices, and provided debugging hooks for
developers (thread watcher, memory watcher, and a graphical "control
panel").<br>
Designed and
implemented the initial version of the "RATI" library, a
hardware abstraction layer that proved to be extremely useful as the hardware
evolved.<br>
Designed and implemented
remote execution wrappers with pseudo-ttys and network sockets. These connected
to "xterm servers" running on developer workstations, allowing
developers to view the output from multiple remote
processes.<br>
Managed the relationship
with one of our graphics chip vendors
(ATI).<br>
Gave presentations on
different system components to vendors, potential buyers, and internal
folks.<br>
<br>
NotifyMe Networks -=- January
2000<br>
<br>
Software engineering contract (two weeks with
ongoing advisory relationship). Helped design the NotifyMe
service.<br>
Developed service launcher and some service
infrastructure libraries.<br>
<br>
The NotifyMe service used
a bank of outbound phone lines to provide automated, interactive customer
notifications.<br>
Target customers were corporations that wanted to
provide information to their customers and get simple
feedback.<br>
Examples include online auction sites and furniture
delivery companies.<br>
<br>
WebTV Networks, Inc. /
Microsoft, Inc. -=- March 1996 - December
1999<br>
<br>
Software engineer in the online service
development group. WebTV runs an online service, connecting users to the
Internet with a television set-top box. The service was initially written in C
on BSDI, but was primarily developed on Sun Solaris 2.x
(SPARC).<br>
<br>
WebTV was acquired by Microsoft in August
of 1997.<br>
<br>
Primary
responsibilities:<br>
<br>
Designed and implemented the WebTV dialup infrastructure. The system
automatically configures the set-top box, selecting multiple dialup access
numbers from several different Internet access providers based on the customer's
phone number. Selection process optimizes for call cost (to customer and to
WebTV) while load-balancing and attempting to provide redundant access in case
of IAP failure. Works for NANP (US/Canada) and Japanese phone systems. Wrote
tools to examine and manipulate telco data and per-customer
settings.<br>
Designed and implemented
the client upgrade system. Three different classes of WebTV box are upgraded
automatically by the service as needed. ROM images are split into pieces,
compressed, and digitally signed before being
downloaded.<br>
Held general ongoing
responsibility for several major service
components.<br>
<br>
Other
achievements:<br>
<br>
Responsible for implementing service support for new products, including
EchoStar "DishPlayer" and Thomson
"eTV".<br>
Developed
offline e-mail access for two different classes of WebTV
client.<br>
Implemented data
compression algorithms for use in client-service
communication.<br>
Developed pieces of
the early service infrastructure (handled system dependencies in build process,
added "fun" stdio, tweaked client connection handling, ported
service from BSDI to Solaris, etc).<br>
Developed and maintained service side of phone activity logs and box crash
logs.<br>
Wrote service documentation
for pieces I developed, including a 70-page tome providing a general overview of
the dialup system, for use by engineering, QA, network operations, and customer
care (the "Greater Scroll of Dialing
Wisdom").<br>
Plugged several
security holes exposed by users, and several more that weren't. Redesigned
"tricks" service to allow different levels of access for
regular customers, outsourced Customer Care, and internal
users.<br>
<br>
Most development had a high level of
visibility in Customer Care, Operations, and Business
Development.<br>
<br>
As a result of my work at WebTV, I am
named as an inventor on the following
patents:<br>
<br>
US05838927 1998/11/17 Method and
apparatus for compressing a continuous, indistinct data
stream<br>
US05940074 1999/08/17 Remote upgrade of software over
a network<br>
US06023268 2000/02/08 Reducing latency while
downloading data over a network<br>
US06230319 2001/05/08
Managing interruption while downloading data over a
network<br>
US06259442 2001/07/10 Downloading software from a
server to a client<br>
US06317792 2001/11/13 Generation and
execution of scripts for enabling cost-effective access to network
resources<br>
US06473099 2002/10/29 Automatically upgrading
software over a satellite link<br>
US06614804 2003/09/02 Method
and apparatus for remote update of clients by a server via broadcast
satellite<br>
US06779034 2004/08/17 Cost-effective access to
network resources<br>
<br>
Catapult Entertainment, Inc. -=-
August 1994 - March 1996<br>
<br>
Software engineer in the
online service development group. Catapult created the XBAND Video Game Modem
and Network, a device and service that allowed owners of Sega Genesis and Super
Nintendo Entertainment System (SNES) consoles to play against other users over a
phone line. (Catapult was later purchased by Mpath Interactive, a/k/a
HearMe.)<br>
<br>
Major
feats:<br>
<br>
Implemented a
significant portion of the service that Catapult launched with in mid-November
'94. Notably:<br>
customer database,
intra-service mail, news, game matching, game result tracking and player
ranking, game patch management, build environment, logging, stat generation, and
general network infrastructure including RPC between server processes. Service
was written in C on SunOS 4.<br>
Ongoing responsibility for much of the service. Carried a pager, and fixed
anything that broke. Continued development on customer database, new game
platform support, security, and client
interaction.<br>
<br>
Lesser
feats:<br>
<br>
Implemented
data compression algorithms for use in client-service
communication.<br>
Spent a month in
Japan, adapting the service for use with the SNES-J
client.<br>
Shared assorted SunOS
sysadmin duties with the rest of the team.<br>
<br>
Highland
Digital -=- June 1994 - July 1994<br>
<br>
Software
engineer. Highland Digital was primarily a Sun value-added retailer (VAR). They
kept a small software<br>
team to develop products that addressed
specific problems.<br>
<br>
In
brief:<br>
<br>
Ported
various WWW tools to SunOS and
Solaris.<br>
Set up highland.com web
server.<br>
<br>
Amdahl Corp. -=- June 1991 - May
1994<br>
<br>
Software engineer in the UTS System Software
Group. Amdahl built IBM-compatible mainframes and software to run on them. UTS
is Amdahl's mainframe UNIX product, based on SVR3 and SVR4. As demand for
mainframes slowed, Amdahl began to move toward Sparc-based
systems.<br>
<br>
Things I
did:<br>
<br>
Ported and
enhanced utilities from AT&T's SVR4.x to
UTS4.y.<br>
Added new system
configuration and maintenance
commands.<br>
Made changes to UTS4
kernel.<br>
Ported public domain and
GNU-license software for internal
use.<br>
Debugged a lot of strange
situations.<br>
Worked on A+Texture,
which was supposed to be a suite of applications for World Wide Web
development.<br>
Enhanced NCSA
Mosaic.<br>
<br>
Outside
Projects<br>
CD-Recordable FAQ -=- March 1996 -
present<br>
<br>
Created the Frequently Asked Questions list
for CD recording, starting with the list of questions that I wanted to have
answered.<br>
The FAQ currently fills about 250+ pages (depending on
how you print it), has been translated at various times into Hungarian, Turkish,
Italian, French, Russian, Spanish, German, Dutch, and Chinese, and at its peak
got several thousand visitors a day. Customer support organizations at major
hardware and software companies regularly referred customers to it as a
resource. I have been interviewed by various newspapers and made a live
appearance as a guest on TechTV's "Call for Help"
program.<br>
<br>
The FAQ is converted from an ASCII text
Usenet posting to an indexed, multi-page HTML format using the
"faq2html" program I wrote for the
purpose.<br>
<br>
NufxLib and NuLib2 -=- February
2000<br>
<br>
Designed, implemented, and documented a data
archiving library and application. The NufxLib library allows applications to
add, extract, rename, delete, and examine the contents of NuFX archives (popular
in the Apple II world, mainly for use with software emulators). NuLib2, a
replacement for the original NuLib (see below), is a command-line application
implemented with NufxLib. Both are available as source code on sourceforge.net
under GPL licenses.<br>
<br>
HardPressed[tm] -=- March 1992
- July 1993<br>
<br>
Designed and implemented
"HardPressed", a transparent file compression product for the
Apple IIgs. Project involved extensive patching of the operating system,
development of GUI user applications, and writing lots of code that had to be
absolutely reliable. Sold as a commercial product through WestCode
Software.<br>
<br>
The complete source code is available
here.<br>
<br>
Hacking Data Compression -=- October 1992 -
January 1993<br>
<br>
Developed a 12-part online course for
the GEnie online service, entitled "Hacking Data Compression".
The course taught compression theory and algorithm implementation, focusing on
lossless data compression for Apple IIgs applications written in C or 65816
assembly.<br>
<br>
Netrek Enhancements -=- December 1991 -
May 1994<br>
<br>
Developed several enhancements to Netrek,
a multiplayer space combat game written for UNIX and the X window system. Among
them:<br>
<br>
Implemented
UDP networking code. Netrek was originally written to use TCP/IP, and performed
poorly over lossy connections. To the best of my knowledge, Netrek was the first
game that ever used UDP over the
Internet.<br>
Developed a suite of
server administration tools, including a graphical observation and maintenance
tool.<br>
Developed the
"meta-server", which provides up-to-date information on public
server usage. (Looks like one is still running on metaserver.netrek.org port
3521; telnet to it.)<br>
Wrote a
curses-based player-list editor.<br>
Wrote a secure packet-passing daemon ("trekhopd") to allow
gameplay across a bastion-host
firewall.<br>
Created the Frequently
Offered Clever Suggestions (FOCS) list for would-be
developers.<br>
<br>
I gave a deposition for the defense in
a patent lawsuit (HearMe vs. Lipstream Networks re: US 5,822,523) where Netrek
was used as an example of prior art. And again, when the same patent came up in
PalTalk vs. Microsoft.<br>
<br>
Optical Disc Jukebox Daemon
-=- Spring 1991<br>
<br>
Wrote a client library and server
application to control an optical disc jukebox that the Berkeley CS department
had acquired.<br>
<br>
NuLib -=- Early 1989 -
1991?<br>
<br>
Developed a full-featured file archiver for
use with Apple II ".SHK" archives. NuLib was written in C and
ported to a wide variety of different UNIX systems. The program is still in use,
mainly by Apple II emulator enthusiasts, though it has largely been replaced by
NuLib2.<br>
<br>
Background<br>
Graduated from the
University of California at Berkeley with a B.S. degree in Electrical
Engineering and Computer Science, May 1991.<br>
<br>
Outside
interests include martial arts, currently Danzan-Ryu Ju-jitsu. As part of my
martial training I am certified in seifukujitsu (massage
therapy).<br>
I have been known to perform certain acts of interior
decoration.<br>
Last updated:
2010/01/10<br>
<br>
<br>
<br>
<br>
http://www.fadden.com/resume.html 5/1/2011<br>
<br>
[ Reply to This | Parent | # ]
|
|
|
|
|