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 Corporation

Software Engineer, 5/90-4/92; 11/92-7/97

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.