Tom Ritchford
727 Avenue of the Americas, #3
NY, NY 10010
917 449-8190
tom@swirly.com
I have a deep knowledge
and understanding of program structure, fundamental algorithms and algorithm
efficiency. With a little time and research I can come up with a simple and
clear way to practically solve a programming problem.
I have worked extensively
in dozens of languages and development environments including client and server
Java, C/C++, Perl, PHP, DHTML/Javascript, Pascal, FORTRAN, APL, shell and many
others. I've used
all the major operating systems and many obscure ones.
Hundreds of thousands of
people have run my client code; hundreds of millions of real dollars have flowed
through my mathematical models.
I have written many hundreds
of thousands of lines of code in many languages, much of it production code.
I comment everything I write: an extreme example is here.
Other people have successfully maintained and even ported my programs.
I
deliver reliable, maintainable, bug-free code. I write clear and complete documentation.
I've published papers in the fields
of option pricing, fixed-income securities, error-correcting codes, the mathematical
theory of games, music and music programming.
Employment History
netomat
Senior Software Developer, 7/2001 - present
netomat has a new form
of rich media where you can send people netomat experiences in an XML language
called NML, little minisites with animation and internal navigation, to other
people who can then edit them in their email client or their browser. It's interesting
because you can scribble on other people's things and then send them on.
Most of the client-side
code you see in your browser or email client is written by me and I designed
and wrote most of the NML tags and nearly all of text of the language manual
-- I also contribute substantially to the downloadable application that lets
you create these experiences.
editEverything
Principal, 7/99 - present
Simple,
clever solutions to large and complicated problems.
editEverything: A new,
simple, powerful, complete way to edit objects from any computer or telephone.
solveChess:
A formal, mathematical model of the complete game of chess. We hope to annotate
"all" of chess using a very lightweight hierarchical architecture
and brutally hand-optimized code. It runs well on a cheap, slow server.
Uses servlets, JSP, JSP custom tags, Apache, Resin servlet engine.
Source and complete documentation
can be found here.
A long discussion of editEverything's goals can be found here.
InstiPro,
Inc.
Senior Software Developer, 10/00 - 4/01
Instipro
is an online brokerage firm which gets best execution on stock trades by automatically
shopping an individual trade to a range of ECNs to get the best price in a few
seconds. I wrote or completely rewrote all the code to get real-time financial
data into their web application and this worked flawlessly by the end of my
time there. Unfortunately, due to cashflow issues they had to drop the web application
and many of the staff, myself included.
C++, C, PHP, Java, JNI,
Apache build and config,
anyMaterial.com
Technical Director, 1/00 - 6/00
This
unborn Internet startup planned to capture and name all building materials and
let users specify, find and purchase them from any browser. Web database technology
would have used XML, Java servlets and Java server pages to delivery a complete
solution to clients such architects, contractors and other industry professionals,
from CAD diagrams to purchase orders to order tracking to ecommerce.
Consultant, 3/98 - present
Various
exotic consulting assignments. Here is
a game originally commissioned by CBS and was used to promote various shows,
most prominently the David Letterman show. Also, music for dance, theater and
radio.
Earthweb
Senior Software Engineer, 8/97-11/97
Earthweb
had an ambitious but unrealistic plan to develop a distributed object system
using Java. I was ostensibly hired to design the virtual community model for
the chat server that was supposed to eventually spring from this. Though a lot
of time was spent running in all directions, I was able to complete a distributed
name service which managed a mapping from names to addresses over TCP/IP, and
I also got to spend a lot of time playing with Java.
Market
Vision was a provider of real-time market data to Wall Street companies, and
is now a division of Bridge Information
Systems.
At
the time, most financial market data was available through page-based data terminal
services such as Telerate or Reuters. My program that took that data and emulated
the dedicated displays on X-11. Multiple displays, composite pages and hybrid
formats were built-in. Developed on Solaris and OpenWindows, this program used
Motif and OpenLook: it was available for any X workstation as well as Windows.
When I left in 1992, this product represented the greatest unit sales for the
company.
Upon my return, I wrote an option tracking
calculator and a real-time spreadsheet interface, among other things. The company
was moving to Windows development, so I wrote a real-time charting package for
Windows using with Visual C++ and MFC.
Working in a team of three programmers,
we were the first in our industry to deliver our product as ActiveX components
which could be displayed in any browser, beating the competition by almost a
year. I then rewrote the central databroker, the router for the real-time market
data, reducing the code from 110,000 lines to 33,000 lines and providing a completely
smooth transition from the old system to the new.
TRANS New Media
Consultant, 4/92-11/92
The
multimedia production company Trans was developing a Wine Appreciation disc
for the Philips CD-I system. As sole engineer on the project, I successfully
completed the "Blue" or pre-production phase of the programming for
this disc. This entailed creating a highly detailed software design document
that completely specified the disc's functionality and how it would be implemented,
as well as a working disc image that demonstrated that functionality. The code
was written in C and crossöcompiled from the Macintosh to the CDöI
platform.
Verge
Technical Director, 6/89-8/96
In
my association with this musical performance group, we integrated the Macintosh
computer into our live shows to control sound and lighting. Using the Max real-time
MIDI programming language, as well the Vision sequencer, we were able to move
smoothly between completely sequenced and completely performed music, even grabbing
and manipulating material while we played.
Autonomy Computer Corp
Technical Director, 4/88-1/90
I
headed a development team writing an operating system for an advanced pocket
computer. Object-oriented in nature, it was written in C. A complete simulation
of the target computer was created on a Macintosh so that code could be verified
using a Macintosh source level debugger then immediately cross-compiled to the
target. A prototype target unit running this C code was demonstrated in May
of 1989.
Citicorp
Consultant, 3/88-6/88
Working
at Citicorp's Fixed Income Research department, I created an Oracle/SQL database
of information about mortgage-backed securities (MBS) and collateralized mortgage
obligations (CMOs). This database tracks the MBS collateral that has been pledged
into CMOs and the consequent paydown of those CMOs. The end product of this
was a C program generating a report describing the supply of uncollateralized
mortgage debt.
Drexel Burnham Lambert
Associate, 10/85-3/88
As
an associate for Drexel's Fixed Income Research department, I developed analytics
and trading systems for MBS and Treasury debt and their derivative options in
Pascal. After modelling the treasury yield curve and creating a valuation model
for a new class of options called compound options, I created an option trading
system for MBS traders. As chief programmer for the Automated Universal Rate
Of Return Analysis group, we created a universal system to represent and compare
all types of fixed income securities.
TMI Engineering
Consultant, 4/85-10/85+
While
working for this small audio engineering firm, I wrote the software for a prototype
digital guitar, programmed synthesizers and wrote numerous small programs in
C, various machine languages and other special purpose languages, using PC compatibles
and other microcomputers.
Education
I
received a B.Sc. with First Class Honours in Mathematics from Carleton University,
Ottawa, Canada in June 1984. My G.P.A equivalent was 3.6. My main studies were
in logic, computability and algorithms, electronic and computer music.
Other Data
I
have worked professionally in areas including virtual communities, algorithmic
composition, object-oriented programming, option modelling, error correcting
codes, audio signal processing, game theory, functional programming and distributed
systems
I actively compose and perform music. My
sound design has accompanied Strindberg to Chekhov, Shakespeare to Lewis Carroll.
Here's my music anti-label.
I speak good French, increasingly strong Indonesian and rusty German.