Summary
Experience with all aspects of software development, across many programming languages and operating systems. In addition to hands-on coding of the most demanding projects, I have designed large-scale software architectures, served as a lead programmer, and managed teams of software engineers. I teach software engineering to university and industry audiences, and publish frequently on this topic. I have special expertise with the Lotus products from IBM, including Notes, Domino, Sametime, LotusLive, and Connections.
Education
Tufts University, post-master's certificate in computer science. I completed courses on computability, algorithms, compilers, and several independent study credits about software engineering.
Boston University, graduate school of computer science. I completed eight post-masters courses including cryptography, programming languages, data communication, and software engineering.
Boston University, M.A. in computer science. Courses included operating systems, database theory, compiler design, analysis of algorithms, and computability / complexity. Thesis on approximation algorithms for NP-hard problems.
Hampshire College, B.A. in linguistic theory. Senior thesis on formal semantics for natural language.
Experience
CHC-3 Consulting, Inc., owner. I have helped organizations with many software projects, primarily related to the IBM/Lotus products, including: security audits, case management software for legal services, automatic document assembly, web widget development, C and Java programming, email systems, architecting large Notes applications, instant messaging, and team coordination. My clients have included Alcoa, Federal Express, General Motors, IBM, Mead Johnson, Procter & Gamble, Standard & Poor's, and Sun Microsystems.
Boston University, computer science instructor. I teach a graduate-level course (which I wrote) on software engineering. The course covers requirements analysis, software design, programming style, estimating and tracking, quality assurance, and release management. I have also written and taught a programming course on Data Structures, covering stacks, queues, rings, sorting algorithms, and variable scoping.
Lotus Development Corp., principal engineer, project leader, and development manager. I led the team that created the Notes C-language API kit, and designed large-scale Notes/Domino applications. My positions included hands-on coding at the most advanced level, definition and ownership of a major product (the C API kit), and management of six engineers.
Consulting software engineer. Clients included Digital Equipment, Apollo Computer, Ziff-Davis, and Lotus Development. Projects included software to manipulate file format internals, management of a Sun/OS network, and software to test relational database integrity.
Strategic Information, VAX/VMS system programmer. Projects included system-programming support for VAX/VMS timesharing, directing implementation of software development CASE tools, an interpreter for database queries, and compiler performance analysis and improvement.
Data General, coordinator for internationalization. Managed the technical aspects of translating software into foreign languages.
Honeywell, system programmer. Developed a real-time microprocessor control program for a banking machine.
Technical Skills
Programming languages: C, Java, LotusScript, general OO design, assembler, APL, Fortran.
Development Tools: Eclipse/Java, NetBeans/Java, Domino Designer, Domino XPages.
IBM/Lotus Products: Notes client, Domino server, Connections, Traveler, Sametime, LotusLive.
Data Security: general cryptography, S/MIME, public key systems, DES, firewalls.
Operating systems: Windows, Linux, Mac OS X, OpenVMS, embedded micro-kernels.
Project Management Tools: MS Project, MS SourceSafe, TeamStudio for Notes.