Stephen R. Savitzky
http://Stephen.Savitzky.net
http://www.linkedin.com/in/ssavitzky
Seattle area. cell: 408-***-****
Summary
Software toolmaker and craftsman, with decades of experience that includes
website and web infrastructure development with Perl and Java, embedded
systems programming on Debian Linux, build management with git, GNU make and
Bourne Shell, server monitoring with Nagios, class libraries in Java and C++,
and small projects in Javascript, C, LISP, PHP, and Python. Masters degree in
Computer Science from Stanford.
Experienced communicator, presenter, and mentor; introduced many leading-edge
software concepts and methods to my employers: meta-assemblers and real-time
kernels at Zilog; object-oriented programming and cross-platform development
at Advansoft Research; application frameworks, open-source, Linux, CVS, git,
XML, and web services at Ricoh Innovations. An IT person from India gave me
the title of "guru".
Skills
Expert: Perl, Bourne Shell, GNU make, git; Linux; web development:
HTML, HTTP, REST.
Expert, less recently: Java, C, C++, assembler; XML.
Competent: PHP, Python, Smalltalk, Lisp, Pascal, Fortran; Unix; LATEX, SIP;
mentoring; technology transfer; technical communication; audio recording and
editing.
Experience: Ricoh Innovations
Sr. Software Architect2011-2012: California Innovations, Cupertino, CA
Added automatic SIP audio conferencing to interactive whiteboard
system for vastly improved user experience.
Implemented client and server monitoring with Nagios, including
simplified web-based installation procedure for MacOS-based clients in
remote locations. Provides convenient overview of whiteboard usage
and server health.
Principal Software Engineer2010-2011: E-Writer Systems,
San Jose, CA
One of six researchers who went to help found a new subsidiary, Ricoh E-Writer
Systems, turning what had been a research project into a product, the Ricoh
eQuill electronic clipboard.
Designed and implemented prototype web service with REST API on
Apache and Perl, used for experiments and demos while the production
version was being built.
Rewrote and improved the PDF conversion implementation in PHP with
Zend framework.
Developed a reliable, secure document transfer protocol based on ssh
and git, and supervised the consultant implementing it.
Modified the dropbear ssh daemon to handle a large number
(tens of thousands) of keys by replacing flat file with memcachedb.
Architected and wrote the factory test suite for eQuill tablet, based
on bash shell and test programs written in bash and python, to meet
requirements from the manufacturer in China.
Chief Software Scientist1992-2010: California Research Center, Menlo
Park, CA:
Object-oriented programming, Linux,and open-source software ``guru''.
Designed, and led 3-person group developing, a C++ framework for
remote service applications. Organized and help teach a 10-week
technology-transfer course. The transparencies used were derived from
the C++ header files using a ``documentation generator'' that was
later extended to include Perl.
Designed and implemented (in Java and Perl) an XML-based server-side
scripting language (PIA), which became the basis for an
``experimental'' forms system that was in daily use for a decade.
Added a multi-language ``loose parser'' for code formatting.
Co-invented the GeoFi geographic tagging format (US
patent 8,089,405: Applications for geographically coded access
points); implemented versions in Perl and Javascript.
Co-inventor on 27 issued patents.
Introduced object-oriented programming, application frameworks, Linux,
WWW, and open-source to Ricoh.
Prior Experience
Scientist: Advansoft Research Corp., Santa Clara, CA
Principal Engineer: Zilog, Inc., Campbell, CA
Staff Engineer: Zilog, Inc., Cupertino, CA
Senior Engineering Programmer: American Microsystems, Inc., Santa Clara,
CA
Publications
Book: Real-Time Microprocessor Systems, Van Nostrand.
``Notes, Advice, and Warnings for Kids on the Web'', on my prize-winning
web site ``Interesting Places for Kids''.
27 US patents, listed at Stephen.Savitzky.net/patent-list.htmlWhite Paper: Web Applications and the PIA, RiSource.org.
Presented as a conference paper at XTech 2000.
Conference papers on ``ZRTS (Zilog Real-Time Software)'' (Wescon
and Midcon), and ``Cross Software Development under UNIX''
(Electro).
CD: Coffee, Computers, and Song!, HyperSpace Express.
Education and Memberships
Stanford University: MS in Computer Science
Carleton College: BA in Mathematics
Memberships: ACM, Sigma Xi, Phi Beta Kappa, AAAS, EFF, SVLUG.
Addendum: Projects
IWB(Team member, CIC)
Added automatic SIP-based audio conferencing to an interactive whiteboard
project, greatly improving the user experience when sharing a whiteboard
between two or more locations. Deployed and configured Nagios for
monitoring the status and performance of both the 14 installed whiteboards
and the associated web services.
eQuill(Team member, EWS)
An e-ink based tablet for business use, running Debian GNU/Linux internally
and backed by a cloud service written in PHP. Built the prototype web
service in Perl, designed the second version of the document transfer
protocol (using git over SSH), and wrote the factory diagnostics in a
combination of Bash and Python. Ported the routines that converted between
PDF and the internal (image-based) document format from Python to PHP, and
modified the dropbear ssh daemon to accept a large number (tens of
thousands) of keys by replacing the flat authorized_keys file with a memcachedb ``no-SQL'' database.
GeoFi(Implementor, CRC)
Co-invented (US patent 8,089,405: Applications for geographically coded
access points) a way of encoding a geographic location, accurate to a
couple of feet, in 9 alphanumeric (base-60) characters so that it can be
incorporated into a WiFi SSID string for use as an indoor GPS replacement.
Implemented the algorithm both in Perl as a module and CGI, and in
JavaScript as a Google Maps mashup.
PIA(Team lead, CRC)
Designed PIA, an experimental server-side scripting language with XML syntax
and functional programming semantics. Initially implemented in Perl,
re-implemented in Java, and eventually ported to C++. Convinced Ricoh to
become the first Japanese company to release an open-source software
project. Supervised the development of a C implementation (cPIA, available
on SourceForge). Note that this project was actually started before
XML, using an SGML syntax that was actually considerably simpler and more
user-friendly. It was roughly contemporary with PHP.
PIA was used to implement a form-processing system that included such
standard business forms as vacation requests, timecards, expense reports,
and so on. It was written in 1998 and remained in use with only minimal
maintenance for a decade, until a series of Java upgrades introduced
incompatibilities that would have taken researchers away from other projects
to fix. Administrative personnel were able to easily create new forms. It
was eventually replaced by forms in the Metadot intranet portal, which most
users agreed were less convenient.
Another unique (for its time) feature of the PIA is that it uses HTML
elements as data structures, e.g. by treating DL elements and tables as
associative arrays, and entities as variables. Unlike most such systems, it
stores filled-out forms as digitally-signed documents rather than as
database entries.
REST(Team lead, CRC)
Led a three-person team in developing a C++ programming framework for
building an application that remotely monitors copiers and FAX machines.
Introduced object-oriented programming and frameworks to Ricoh. Technology
transfer included organizing and co-teaching a the equivalent of
graduate-level 10-week class. Cross-platform on Windows NT and Linux, and
included GUI front ends for web and X, generated from the same source code.
Wrote a ``documentation generator'' (in Perl, predating JavaDoc by several
years) to create the transparencies used in the course from the C++ header
files. Later extended the documentation generator to include Perl, Python,
and PHP.
WABE(Sole developer, Advansoft)
A C++ class library that includes arrays, hash tables, run-time class
descriptors, X-based graphics, Motif-based GUI wrapper objects, and a
self-describing object-oriented file format. Used internally on three
projects: a data analysis and display program, an IC-tester utility, and a
test-case generator for a compiler.
RD3, RD7, RWi(Consultant, HyperSpace Engineering)
A series of three MS-DOS operating system shells (similar to X-tree), each
capable of reading (and in one case writing) disks written by another
operating system as well as MS-DOS (Perkin Elmer 3500, Idris, and iRMX86
respectively). These were done as a spare-time consulting project; I
received royalties on each copy sold. The implementation was in C and
included an object-oriented, text-based user-interface toolkit; I also
implemented a subset of the curses library and emulators for the three
different filesystems. The menus, manual, and online help were all
generated from the C source code.
Assemblers, linker(Project leader, Zilog)
Sole developer of the linker and cross-assemblers for two of Zilog's three
microprocessor families, and project leader for the third. The assemblers
were written in C, portable between MS-DOS and Unix, and entirely
table-driven; the third assembler was completed by a junior programmer in a
matter of weeks. The linker was an early implementation of the IEEE
standard for microprocessor object files, and was unique in allowing a mix
of word lengths (up to 256 bits) and address ranges in a single project.
ZRTS(Project leader, Zilog)
Designed ZRTS (Zilog Real-Time Software), a real-time operating system
kernel for the Z8000 microprocessor. Implemented the task-switching and
message-passing microkernel, logical I/O system, and terminal driver; other
device drivers were done by team members. ZRTS was moderately successful
both inside and outside of Zilog.
AMI MDC(Sole developer, AMI)
Wrote most of the software for AMI's 6800-based Microprocessor Development
Center including the ROM monitor, bootstrap loader, debugger, and text
editor, all in 6800 assembler. Added macros to the assembler. The text
editor was written using object-oriented macros, and included variable
length strings with garbage collection.
CD: Coffee, Computers, and Song!(singer/songwriter, engineer,
producer, publisher)
Did everything for this CD but the manufacturing and artwork, using open
source tools: Makefiles, perl and shell scripts, LaTeX, and Audacity. The
web page, track list, disk table of contents, and songbook are all made from
the same set of source files.
Interesting Places(Author/webmaster)
``Interesting Places for Kids on the Web'' was an early personal website
that was listed as one of the top 100 websites in 1995, and widely
referenced both online and in print. Part of the Ricoh website, it drew
traffic to the corporate site in the early years of the commercial Web.
Included ``Notes, Advice and Warnings for Kids on the Web''.
2012-05-30