R. Matthew Emerson

9830 NE 20th St.
Bellevue, Washington 98004
USA

I have worked in the computer field in a wide range of areas, from software development to networking to security. I particularly like working at the intersection of technology and the arts.

I have significant expertise with Common Lisp (both as an implementer and an application programmer), user interface programming using Objective-C with Apple's Cocoa framework, and system programming and debugging on numerous Unix flavors.

I have successfully and productively worked from my home office, with occasional travel. I am willing to continue working remotely, but I would also be happy to consider relocating, especially to to a French-speaking region.

Selected Professional Experience

Senior Software Design Engineer, Concur, 2016-2017

Concur is a provider of integrated travel and expense solutions, delivered using the software-as-a-service model.

I was a member of a team developing new foundational services (e.g., identity management, authentication, and so forth) on which Concur's business applications are being built.

These services are web services with RESTful style interfaces. Technologies used include Clojure, various SQL and NoSQL databases, GitHub, Python (for API tests), and the usual panoply of other assorted supporting tech. Services typically ran on AWS-hosted Linux servers.

Additionally, I promoted the interactive and incremental style of development traditionally used by Lisp and Lisp family languages, Clojure being a Lisp descendant.

clojure git mysql

Senior Software Engineer, Clozure Associates, 2007-2016

Clozure Associates is a Common Lisp consulting company, and also has supported the development of Clozure Common Lisp, an open-source Common Lisp implementation.

A large part of my work was to enhance and maintain Clozure CL on the various operating systems (macOS, Linux, FreeBSD, Solaris, Windows) and processor architectures (x86, ARM, PowerPC) that it runs on.

Clozure CL is mostly written in Common Lisp, but there is an important part (called the lisp kernel) that is written in C and a fair amount of processor-specific assembly language. The lisp kernel provides the run-time environment for running lisp code. It uses quite a lot of low-level functionality exposed by the operating system: address space management, signal/exception handling, thread management, and so forth.

I designed and implemented the 32-bit x86 port of the Clozure CL Lisp compiler and runtime, based on the existing x86-64 port.

  • Updated the x86 assember and disassembler to support 32-bit x86.
  • Added 32-bit x86 support to the compiler back end. Wrote new code generation primitives.
  • Wrote assembly language code to support foreign function calls, bignums, and so forth.
  • Adapted the garbage collector to support the data representation of 32-bit x86 Lisp objects and to support the dyanamic register-partitioning scheme that the 32-bit x86 port uses.

Installed and managed Buildbot (a continuous integration system) for the Clozure CL project. Configured and customized it using Python.

Contributed to numerous client projects.

Configured and managed numerous project infrastructure services such as mail (including mailing lists), various web sites, Trac (for bug tracking), Subversion, and so forth, both for Clozure CL itself and for client projects. Clozure CL sources are now on GitHub, but the legacy Trac and Subversion repository are still online.

Performed release engineering for the (very) roughly bi-annual releases of Clozure CL.

Common Lisp C assembly OS X Mach Cocoa Linux FreeBSD Solaris Windows m4 make gdb Subversion git Trac postfix Mailman buildbot apache IRC

Technical Specialist Principal, RSIS / NASA Glenn Research Center, 2000-2007

Member of the NASA Desktop Standards and Basic Interoperability Group, and the NASA Agency Security Configuration Standards Group.

Served as an expert in the areas of Unix, Mac OS X, TCP/IP networking, and security.

Contributed to security configuration standards for several operating systems and applications.

Managing Partner, APK Net, Ltd., 1996-1997

Responsible for overall management of this pioneering northeast Ohio ISP. Hired and trained staff. Designed, built, and operated Cisco-based network spanning seven Ohio counties. Directed and worked with technical teams which built and maintained servers and networks supporting over 5000 dial-up users, hundreds of web sites, and dozens of dedicated access clients.

management wan cisco

Founder, Pip.net Personal Internet 1993-1995

Founded company to provide dial-up Internet access to Medina County residents. Later merged with APK Net, Ltd.

uucp ip ppp serial-port

Technology Consulting, 1987-1993, 1998-1999, 2017-present

I currently lead the maintenance and development of Clozure CL, an open-source Common Lisp implementation.

Engaged in a broad range of software development and technology infrastructure projects both as an employee and as a contractor for various clients.

Selected Talks and Articles

This Old Lisp, invited talk to be given at the 2018 European Lisp Symposium, Marbella, Spain.

The Design and Use of Clozure CL's Objective-C Bridge (slides, video). Given at the 2013 European Common Lisp Meeting, Madrid.

Threads and GC Implementation in Clozure CL (one-pager, slides). Given at the 2009 International Lisp Conference, Cambridge, Mass.

How Clozure CL implements closures

CCL on x8632: more registers, please

Published Software

Opusmodus

Lead developer for the Cocoa-based user interface for Opusmodus, a music composition application for the Macintosh. Written using Clozure CL.

core-audio midi musicxml autolayout

Clozure CL (Mac App Store version)

A version of Clozure CL and its Cocoa-based IDE, packaged for the Mac App Store.

mac-app-store itunesconnect

Picture Window

A slideshow application, written to demonstrate that it is possible to develop a Mac OS X application using Clozure CL, and publish it on the Mac App Store. The source code for this application is available on GitHub.

Benchmark

Aircraft performance testing analysis and modeling. Modernization of classic Mac OS application. Uses Cocoa and Core Data. Written using Objective-C.

xcode Objective-C coredata lapack

Phrasal

Phrasal is a Mad Libs type game. It's an iOS application that I wrote in Swift 3 in one week.

Swift iOS

Education

Ohio State University, 1992

Graduate studies in computer science.

University of Houston, 1990-1992

Graduate studies in computer science.

University of Houston, 1990

B.A. in French, cum laude.

Other

FAA Private Pilot

About 350 piloting hours, mostly in a 1963 Mooney.