Douglas Alan


 

Home Address
9 Charles Road
Winchester, MA 01890
(617) 401-7172


Email: doug AT alum.mit.edu 

Work Address
Broad Institute
RNAi Informatics

7 Cambridge Center, Room 2025-A 
Cambridge, MA 02142

(617) 714-7232

 

 

 

Professional
objective

Object-oriented software analysis, design, and implementation, in an intellectually stimulating environment.


Have a great deal of experience with and passion for implementing high quality, maintainable code and systems.


Summary

  • MIT graduate. GPA: 4.5 out of 5.0.
  • 23 years industry experience, including:
    • 15 years object-oriented programming experience.
    • 8 years experience architecting and administrating large networks of Unix & Linux workstations.

Programming
languages

Fluent in:
  • C++ (9 years)
  • Python (4 years)
    • Gave a tutorial on Python for BBLISA.
  • Lisp (1 year)
  • Processing (½ year)

Conversant in:
  • JavaScript (w/ jQuery, jQuery UI, Django, and Postgres, 1 year)
  • Java (½ year)
  • Bourne Shell (1 year)
  • SQL
  • Others: XSLT, sendmail.cf, CLU, Perl, DECsystem-20 assembler, PDP-11 assembler, Basic, Algol, and APL.

Have written small programs in many other programming languages, including:

Scala, Tcl, Prolog, Ada, Smalltalk, Modula II, Argus, FP

Skills

  • Unix and Linux wizard-level expertise and strong familiarity with Mac OS X and Windows.
  • Ajax development.
  • Interactive data visualization.
  • A keen interest in programming languages and "reusable code".
  • Distributed version control using Mercurial (hg) and BitKeeper (and bitbucket.org and Google Code).
  • Familiar with "agile" development techniques.
  • Libraries: Beautiful Soup (for web scraping), ITK, Tk, sockets, Google Maps API & KML, CFITSIO, jQuery, jQuery UI, Django, PIL, NumPy, matplotlib, gnuplot, Ext JS, BLT, AWT.
  • Other misc technologies: HTML, CSS, Blueprint CSS framework, Postgres query performance analysis, FITS (Flexible Image Transport), CGI, XML, XSLT, Apache HTTP Server, HPC clusters, parallel filesystems, NFS, rsync, EDI X12/xCBL, linear coordinate frame transformations.
  • Java/AWT and Python/Tk GUI development.
  • Unix and Linux systems engineering and systems administration.
  • Familiarity with UML, Booch, and OMT notations.
  • Socket-based TCP/IP development.
  • Build engineering using CMake and GNU Make.
  • Supervised student programmers and operators.
  • Delivered several talks to BBLISA, the Boston area large installation systems administration special interest group.
  • Email systems (e.g., wrote a more elegant sendmail.cf from scratch).

Software development
projects

Designed, implemented, and maintained: 


  • An attractive and highly interactive web-based Ajax GUI search interface to an astronomy time series database.  The interface includes tooltips, a user's guide, sliders, draggable dialog boxes, mouse highlighting between table results and a Google Sky pane, and pop-up thumbnail previews of light curves. This was developed in Javascript, using jQuery, jQuery UI, HTML, CSS, Blueprint CSS framework, Ext JS, and JSON with a Django and Postgres-based backend. [Harvard IIC]
    • Analyzed Postgres database performance and improved speed of some common queries by orders of magnitude.
  • Enhancements to a brain imaging application (3D Slicer) to allow it to support visualization of multidimensional astronomical data (i.e., spectral line data cubes). [Harvard IIC]
  • X-ray space telescope configuration subsystem. My work on the $300+ million NASA project was essential for its operation. It (1) provides a configuration language allowing astronomers to specify the complex operating parameters of the telescope, (2) maintains a database of such configurations, (3) remotely manages the memory of the satellite’s on-board computer system, (4) reconstructs configurations from downlinked telemetry, and (5) calculates accurate exposure times from packet data.  This software was essential for the publication of more than 1400 peer-reviewed journal papers. [MIT CSR]
  • Browser-based Java applet for visualizing dendrogram representations of  spectral line data cubes. (You can try out the applet here.) [Harvard IIC]
  • GUI experiment session manager for a virtual reality environment planned for deployment on the International Space Station. [MIT CSR]
  • XSLT program to convert purchase orders in TrustedLink Enterprise’s proprietary XML format to the standard xCBL 3.5 XML format. [MIT IS&T]
  • Several GUI programs to monitor and graphically plot data arriving in real-time from the RXTE x-ray space telescope. [MIT CSR]
  • General-purpose C++ template class library, including reference-counting smart pointers (non-intrusive, and inheritance-respecting intrusive), dynamically expanding arrays and deques, high-level strings, parsing tools, and an exception system for use with C++ compilers that don’t support exceptions. The template classes were specially coded so as not to cause code bloat and not to invoke C-front’s troublesome link-time template instantiator. [MIT CSR]
  • Socket-based rdist-like TCP/IP file transfer and synchronization utility. [MIT CSR]
  • Grid-like modular queuing system for parallel scientific data processing. The queue monitor communicates with processing modules via IPC. [MIT CSR]
  • Scientific data-filtering tool with an embedded Perl interpreter. [MIT CSR]
  • Scripts to present a higher-level CVS-like interface to RCS. [MIT CSR]
  • A sendmail.cf from scratch, taking a new, cleaner approach. Gave talk on my design to BBLISA. [MIT EECS]
  • Simple object-oriented database engine and user-friendly front end. [MIT EECS]
  • Robust and user-friendly backup system for networked Unix file servers.  (Gave talk on this to BBLISA.) [MIT Media Lab]
  • Unix workstation OS installation system. Loads and configures OS and other software onto new Unix workstations via the network with minimal human intervention. [MIT Media Lab, MIT CSR]
  • Exception handling subsystem for Lisp. [MIT EECS]
  • Simple and efficient object-oriented programming subsystem for Lisp. [MIT EECS]

 

Maintained and enhanced:

 

  • Packet-based telemetry receiving and processing subsystem for RXTE space telescope. [MIT CSR]
  • Chandra x-ray CCD simulation program. [MIT CSR]

 

Designed:

 

  • The boot filesystem (with locking and crash recovery) for Unix System V.4. [Consulting]
  • Doxygen-like program to extract specially formatted comments from C++ code and turn them into documentation (Unix “man” pages).  Supervised the development of this tool. [MIT CSR]
  • What I believe to be the first completely robust lock-file method for NFS. [MIT CSR]

Unix systems engineering &

administration


 

See systems engineering addendum.

 

Employment 
history

Harvard University, Cambridge, MA (April 2006-present):


  • Senior Scientific Software Engineer, Initiative in Innovative Computing.

Massachusetts Institute of Technology, Cambridge, MA (Feb. 1986-April 2006):


  • Programmer/Analyst III, Information Services and Technology (May 2005-April 2006).
  • Software Engineer, Center for Space Research, XTE Project (Sep. 1993-May 2005). 
  • Systems Programmer, Media Laboratory (Apr. 1990-Aug. 1993). 
  • Programmer/Analyst and Assistant Manager, Department of Electrical Engineering and Computer Science Educational Computer Facilities (Dec. 1987-Mar. 1990).
  • Systems Programmer II, Project Athena (Feb. 1986-Nov. 1987).

Education

Massachusetts Institute of Technology, undergraduate. 1980-1985: Studied computer science and cognitive science. Received S.B. in cognitive science from the Philosophy and Linguistics Dept. with a concentration in AI. Worked during semesters and summers as a systems administrator. Received an A in every class involving programming or programming languages. GPA: 4.5 out of 5.0. Invited into HKN honor society. Accepted into BU’s Computer Science PhD program with a full fellowship.


Massachusetts Institute of Technology, graduate. 1991-1992: Special Graduate Student, Media Laboratory. Spring, 1998: Special Graduate Student, Linguistics and Philosophy. Spring 2001: Special Graduate Student, EECS Department.


Harvard University Extension, graduate. Spring 1993.


Harvard University Graduate School of Arts and Sciences. Spring 2008: Special Graduate Student. Spring 2009: Teaching Fellow.


Computer Science course work:

  • Undergraduate at MIT:
    • Structure and Interpretation of Computer Programs (A+)
    • Laboratory in Software Engineering (A)
    • Computer Language Engineering (A); i.e., compiler design and implementation)
    • Theory of Computation (A)
    • Computation Structures (B); i.e., architecture of digital hardware
    • Digital Design Lab (B)
  • Graduate (at MIT, except where noted):
    • Programming Languages (A)
    • Perception, Semanticity, and Statistically Emergent Mentality (A); i.e., artificial intelligence and cognitive psychology
    • Society of Mind (A); i.e., artificial intelligence and cognitive psychology
    • Advanced Object-Oriented Programming in C++ (A); i.e., OO analysis, design, and implementation, using Booch's methodology.  (Harvard Extension. The teaching fellow said that my code was the best he's ever seen and offered me a job.)
    • Dynamic Language Exploration (A+); i.e. design and implementation of object-oriented dynamic languages that support multimethods (A+)
    • Visualization (A): interactive data visualization programming. (Harvard Graduate School of Arts and Sciences.)
      • Teaching Fellow for above class


GRE: Scored in the top 10% on the Computer Science GRE and in the top 5% on both the verbal and quantitative GRE. 


Publications

Michelle Borkin, Alyssa Goodman, Michael Halle, Douglas Alan, "Application of Medical Imaging Software to 3D Visualization of Astronomical Data", 10/2006, ADASS XVI Conference.

Michelle Borkin, Alyssa Goodman, Michael Halle, Douglas Alan, & Jens Kauffmann, "Application of Medical Imaging Software to the 3D Visualization of Astronomical Data", 1/2007, AAS/AAPT Joint Meeting, American Astronomical Society Meeting 209, #57.06.


Michelle Borkin, Alyssa Goodman, Douglas Alan, Jens Kauffmann, & Michael Halle, "Application of Medical Imaging to the 3D Visualization of Astronomy Data", 10/2007, Proceedings of IEEE Visualization Conference (Vis 2007).


Talks

"Collaboration using Basecamp and Moin Moin", Harvard IIC.

"An Introduction to Programming in Python", BBLISA.

"A new approach to sendmail.cf", BBLISA.

"How to Write a Good Backup Script", BBLISA.

Personal
background

Born in Manhattan and brought up in White Plains, NY. For three years DJ’ed a biweekly radio show on WMBR. Founded and moderate a large music-oriented Internet mailing list and Usenet newsgroup. Enjoy progressive music, art, film, science fiction, and analytic philosophy of mind. NAUI-certified scuba diver. Favorite film is Terry Gilliam’s Brazil.