RESUME
I consider myself to be a "Jack of All Trades" and master of many.
The various skills and experiences listed below are valuable, but they
do not constitute my most essential attributes. The reasons you might
want to engage my services include:
-
I write clean, well-designed, maintainable code.
-
I am good at cleaning up and documenting neglected
legacy code, and making it productive.
-
I communicate very well.
-
I understand hardware quite well, for a
student of computer science. I read Verilog HDL, understand logic and
circuit diagrams, and communicate well with EE's.
-
I am honest. I will not promise you
something if I am not confident that it can be accomplished.
-
If I lack a requisite skill or knowledge base,
I know how to locate and acquire it in short order.
-
If I don't understand something, I don't hesitate to ask questions!
Experience
CLIENT SOFTWARE
- designed and implemented a network client database, based on SQLite,
to synchronize with the master database on a server.
- developed a generic instant messaging API, and then implemented XMPP (Jabber)
and AOL Instant Messenger (AIM) drivers (initially, reverse-engineered; eventually,
using AIM SDK).
DOCUMENT CONVERSION
- developed a conversion library for a major electronic book
publisher, to transform Microsoft Word documents to Open eBook format;
- automated conversion of HTML-based political/legislative
briefing documents and commercial periodicals to a popular eBook
format; also automated the distribution of the resulting eBook files.
These tasks required Perl-based integration of various Internet
technologies and COM-based tools;
- integrated and customized several tools to automate the conversion
of several thousand eBook titles written in suboptimal and
noncompliant HTML to clean XHTML-based Open eBook format, optimized
for display on multiple eBook platforms;
SYSTEMS AND EMBEDDED PROGRAMMING
-
designed and implemented a low level debugger/loader
for the 8086;
-
designed and implemented a virtual timer channel
subsystem for use in a microprocessor-based file server;
-
extended existing point-to-point driver for
an RS-232 multiplexor to support a client's proprietary multipoint protocol;
-
designed and implemented an embedded system
to permit client workstations to boot over a multipoint serial link;
-
turned an eBook from a PC peripheral into an independent information
appliance by integrating a modem and TCP/IP stack into its user
interface;
-
integrated SmartMedia flash memory into an eBook device's FAT16 file system;
-
wrote a voice annotation subsystem and integrated it into an office
automation package;
HARDWARE DESIGN SUPPORT
-
cleaned up, enhanced, and instrumented existing
architectural simulators for several microprocessor designs;
-
designed and implemented an architectural
simulator for an advanced microprocessor design;
-
performed extensive microarchitectural optimization
studies using various simulators, targeting critical real estate/performance
issues such as cache organizations and sizes, branch prediction designs
and policies, and numbers of reservation stations;
- invented decrypting microprocessor concept (European patent EP19840103327);
-
co-invented, simulated, and validated novel
high performance branch and call/return prediction mechanisms (U.S. patent 6,957,327
and 8,171,260);
-
wrote wafer-sort and design verification tests
and tools for various microprocessor designs;
- designed and tested extensions to architectural
microprocessor simulator to validate it against an independently-produced
simulator;
LANGUAGE TRANSLATION
-
wrote a table-based code generator for a C-like
systems programming language;
-
designed, and led team that implemented, deployed,
and maintained an application development system;
-
implemented an application framework generator,
driven by specifications extracted from a database;
TECHNICAL WRITING
-
published author of 4 books (including Macintosh
Graphics in Modula-2, Prentice-Hall, 1986);
-
wrote articles and reviews published in
Byte, MacWeek, and other publications;
-
designed and wrote user manuals for various
products, including a compiler and two computer graphics editors;
Skill Set
-
Fluent in C, C++, Perl, Perl/Tk, SQL, CGI,
XML, HTML, OEBPS, XHTML, various UNIX and DOS/Windows shells, MASM,
SPARC assembly language, Modula-2, and Pascal;
-
Varying exposure to ASP, Javascript, Verilog HDL, Forth,
and various assembly languages including ARM, 68K and MIPS;
-
Familiar with Solaris, Linux, MS-DOS, Windows 9x,
Windows XP;
-
Exposure to Mac OS, various PC BIOSes, low-level
network APIs;