Bill St. Clair
Senior Software Engineer
Location: Bennington, Vermont
Email: billstclair@gmail.com
Seeking
Software design and development using my senior developer skills with opportunities for learning. Telecommuting from home preferred. Erlang/Elixir, Haskell, Elm, & Clojure are my latest studies, but interesting projects are more important than programming language.
Summary
A seasoned programming professional with expertise in privacy protection, encryption, trusted systems, data structures and algorithms. Extensive experience programming in Common Lisp as well as Swift, C, JavaScript, Java, PHP, XML, and HTML. Experience programming Macintosh and iOS with the Cocoa application framework.
Selected Professional Experience
Gib Goy Games (2017)
-
This is my own brand for my own games:
GibGoyGames.com.
It grew out of my new-found love of the Elm
programming language.
- Kakuro Dojo is an implementation of the Kakuro numeric crossword puzzle. It runs in web browsers and as an app on phones and tablets, available through the Apple iOS and Google Play app stores. Code at github.com/billstclair/kakuro-master.
Clozure Associates (2006-Present)
- Senior Common Lisp engineer on a variety of large mission-critical projects, including the following:
- Opusmodus, a Macintosh music composition application (opusmodus.com).
- Antenna control software for a solid-state satellite terminal, including real-time low and medium earth orbit satellite tracking from moving platforms, incorporating location and rotation sensor inputs.
- A distributed, replicating, memory-resident database.
- A real-time system for aggregating and normalizing data streams.
- Language translation support, database backend, and web front-end for a disease research web site.
- Contributed to several functional areas of a large-scale airline reservation system.
- Contributed to iOS and Android application development projects.
- Steady Type, a custom iOS keyboard, written in Swift.
Shaker Computer and Management Services, Inc. (1997-2006)
- COINS: COnstruction Industry Software, RIS: Residential Information System - designed and wrote assorted code for these Enterprise systems; wrote Technical Manual for RIS.
- A Java front-end for COINS job status information - designed and coded entire system.
- Titanium User Interface Manager (UIM), a generic user interface written in Java using XML to encode screen layouts and InfoBus to pass data around. Java client, Progress 4GL server.
- Wrote and presented a series of Java programming courses to Shaker's programming staff.
Digitool, Inc. (1995-1997)
- Shipped Macintosh Common Lisp 3.9, 4.0, 4.1
- Implemented the shared library interface using CFM
- Ported the inspector, stack backtrace, and persistent object store to new architecture
- Reimplemented stack groups and implemented segmented stacks
- Made CL-HTTP OpenTransport native
- Added primary slot optimizations for CLOS.
Apple Computer, Inc (1989-1995)
- Implemented compiler database persistence, the module system, and the dependency system for the Apple Dylan programming language.
- Implemented the Common Lisp Object System (CLOS) for Macintosh Common Lisp
- Converted the MCL GUI from Object Lisp to CLOS
- Re-implemented hash tables
- Designed and implemented WOOD, a simple persistent object store using Btrees
Thinking Machines Corporation (1984-1986)
- CDL (a circuit design language used to design the CM-2), sticks editor for VLSI design. All on the Lisp Machine.
Atari Cambridge Research Lab (1984)
- Interfaced a Star Wars arcade game to the Lisp machine for use as a graphics output device, both sides of downloader for 6805, 3D turtles, maze game.
Personal Projects
Education
- MIT, 1978, BS in Mathematics. GPA 4.9/5.0. Phi Beta Kappa, Sigma Xi, Tau Beta Pi.
Technical Skills
- Proficient in: Common Lisp, Swift, Java, EMACS, Apache
- Practical experience with: Elm, C, JavaScript/Node.js, PHP, Python, Ruby, XML, Unix/Linux, HTML, MySQL, Mac OS X, iOS, Objective C
- Learning: Erlang, Elixir, Phoenix, Riak, Rebar
- Historic proficiencies: Progress 4GL/Database/AppServer, PowerPC assembler, 68K assembler, Macintosh toolbox, Symbolics Lisp Machine, RATFOR, PDP-11 assembler, RT-11, RSX-11M, oscilloscopes, logic analyzers, 8X-300, 2901, TMS-320.
- Historic practical experience: Dylan, Pascal, APL, PL/1, MS-DOS, Multics, FoxBase, RBase