Erik Dorfman
4707 Chestnut Street
Bethesda, MD 20814 USA |
+1
301.922.9677
eryq@zeegee.com |
Summary
- Independent consultant
with over 20 years of experience as a software developer/architect.
- Developed systems for
NASA (for 8 years) and the National Institutes of Health (for 12 years).
- Computer Science degrees
from Cornell University (BA) and University of Pennsylvania (MSE).
- Authored/supported
various Open Source libraries; documentation published by O'Reilly.
- Knowledge is both
broad and deep: application development, configuration
management, system administration, technical writing/illustration, teaching.
Has project leadership experience.
Specialties
Linux/UNIX |
UNIX developer since
1988; Linux developer/administrator since 1994. |
Perl |
Since 1994.
Frequent contributor to the official Perl code repository (CPAN) as
“ERYQ”. Documentation published in O'Reilly's Perl Resource Kit.
Authored/taught a Perl course. |
Java |
Since 1998.
Sun Certified Java Developer. Experience with J2EE (EJB2/EJB3),
JMS, JDBC, JNI, RMI, SAX/DOM, JSP, Spring, Struts, and Swing.
Authored/taught a Java course. |
C / C++ |
Since 1989.
Experience writing portable code and bindings for higher-level languages.
Developed tools to analyze executables/libraries to detect certain types
of bugs. Authored/taught a C++ course. |
Client/Server |
Experience with
various interprocess communication protocols and APIs, from stream/packet-level
(TCP, UDP) to application-level (HTTP, RMI, etc.). |
Web |
Detailed knowledge
of web-related protocols (HTTP, FTP, SMTP), data formats (XML, XHTML,
Unicode, MIME), client-side tools (CSS, Javascript, AJAX), servers (Apache,
Tomcat, OC4J), and server-side tools (JSP, Taglibs, Velocity).
|
CM |
Developed configuration
management systems for large, multi-language code bases. Integrated
various versioning systems, build systems, compilers, and package managers.
|
Training |
Authored/taught
courses in Object-Oriented Programming, Perl5, Java, and C++. |
Invention |
Created a tool capable
of analyzing XML and producing optimized SAX parsing code across
multiple languages (e.g., Java, Perl). Designed novel graphical
representation of query hits for text-searching systems. |
Skills
Languages
|
Java, Perl, C/C++;
Bourne/C shell scripts, Lisp/Scheme, Prolog, Smalltalk;
Lex/Yacc, JavaCC; others as needed (Javascript, Python, PHP, XSLT, etc.).
|
Systems
|
Linux (RedHat, Fedora)
and UNIX (Solaris, IRIX, HP/UX) system administration; basic use/administration
of Windows XP/2000 and VAX/VMS. |
Databases
|
Oracle, MySQL, Sybase,
GemStone OODBMS, GDBM; Java JDBC, Perl DBI. |
Protocols |
Low-level IPC (TCP/IP,
UDP/IP, pipes) to application-level IPC (RPC, RMI, SOAP). Detailed
knowledge of HTTP, FTP, SMTP, DICT. |
Formats |
XML (extensive use
of SAX/DOM APIs), XHTML, CSS, MIME, Unicode. |
CASE/CM tools |
ClearCase/ClearQuest,
CVS, RCS. Eclipse, JBuilder.
Make, Perl ExtUtils, Ant, some Ivy. RPM, Yum, Sun PKG. |
Web services |
Apache, Oracle Application
Server / OC4J, Tomcat. |
Content mgmt |
MediaWiki, pvWiki.
Various search engines: Collexis, Verity, ht://Dig. |
Other
|
Technical writing/illustration.
Information design (courses, presentation, websites, user interfaces).
Data visualization. Medical informatics. |
Education
Master of Science and Engineering
in Computer and Information Science, with a concentration in AI.
University of Pennsylvania, Philadelphia, PA. 1988 - 1989.
Bachelor of
Arts in Computer Science.
Cornell University, Ithaca, NY. 1984 - 1988.
Honors/Awards
Professional
|
NIH Clinical Trials
project won Harvard's Innovations in American Government award, including
$100,000 grant (2004).
Became Hughes STX's first full-time-telecommuting
employee (1994).
Received Hughes STX Group Achievement
Awards (1993, 1994, 1995), Certificate of Commendation (1992) and Peer
Awards (1990, 1993).
|
College
|
Graduated from Cornell
with Distinction in All Subjects; Dean’s List: 4 semesters. |
High School
|
Received Regents
Scholarship. Membership in National Honor Society. |
Employment History
President, Zeegee Software
Inc. (Bethesda, MD). Aug 1997 – present
- Manages small consulting
business specializing in software design and development; acquires and
works on various contracts (list follows).
National Institutes of Health
/ Office of the Director (Bethesda, MD). Jan 2009 –
present
Contracted by SAIC (Rockville, MD office).
- Development Lead of
the Grants Management Team. Leads an on-site team of 7 to 9 developers,
who together have produced/maintained J2EE and Java6/Spring/Tomcat applications
used for the internal management of the NIH's entire grant portfolio.
- Assists in the architecture
of new/evolving applications; conducts design and code reviews; oversees
entire software development lifecycle. Provides production support
for time-critical grants management systems. Serves on the various
Working Groups which are designing the next generation of NIH's electronic
records management systems and processes.
National Institutes of Health
/ Office of the Director (Bethesda, MD). Apr 2007 – Jan
2009
Contracted by Altum, Inc.
(Reston, VA).
- Member of a large software
development team which developed RCDC: a J2EE system (EJB3, OC4J,
Oracle) for the automated categorization and financial reporting of
NIH grants and contracts. System has been used for reporting to
Congress and has high visibility throughout HHS.
- Implemented key business
rule logic, core utilities, and Web-accessible system administration
tools. Frequently called upon to perform configuration management
tasks.
- Participated in requirements
analysis and design reviews, and generated detailed design documents
(UML): RCDC employs formal Software Development Lifecycle practices
and utilizes industry-standard CASE tools (ClearCase, ClearQuest).
Contracted by
ASRC Federal (Greenbelt, MD). Oct 2006 – Dec 2006
- Designed architecture
for a cost-allocation reporting system in a secure environment, proposed
to the NGA. Authored corresponding sections of the proposal.
National Institutes of Health
/ National Library of Medicine
(Bethesda, MD). Jul 1999 - Jul 2006
Contracted by Aquilent Corporation
(Laurel, MD).
- Helped develop the
web-accessible National Clinical Trials Registry, including the
main website, supporting websites/services, operator tools, and many
of the core software packages. This was a large Java-based project
(Velocity/Struts servlets, Swing GUIs, RMI- and SOAP-based services,
SAX/DOM/JSTL, JDBC/MySQL, advanced concurrency techniques for high throughput,
etc).
- Worked with various
Medical Informatics ontologies, databases, and services.
- Designed/developed/administered
cvu, a configuration management and build system for a multi-project,
multi-language code base (CVS, Perl). Developed/administered CM
website for developers.
- Designed/developed
polka software deployment and site management system. Features
included ability to deploy products, configuration, or databases to
operational machines with automatic stop/restart of affected servers;
ability to inspect/control services across multiple hosts via script
or web interface.
- Developed htmldiff
tool to perform site-wide crawling and change-reporting of websites,
for impact analysis. Features included graphical display of changes
broken down by severity, and drill down to side-by-side annotated comparisons
of differing pages.
- Created xax,
a CASE tool able to analyze an XML snippet and produce fast SAX-based
source code for converting similar XML to objects in a variety of languages
(e.g., Java, Perl).
Contracted by
INTELSAT (Washington, DC). Oct 1997 – Jul 1999
- Developed/administered
icms: a configuration management system for Satellite Systems (Perl5,
CVS). Created ICMS website complete with FAQ and User/Administrator/Developer
Manuals. Worked with developers, I&T, and operations staff
to tailor ICMS to meet new requirements. Some
features: version control for binary large objects; sophisticated
branching and merging; automatic Makefile generation; automatic embedding
of build information in products for traceability; automatic sanity
checking of build products to detect problems; automatic nightly builds
which notified appropriate developers by email if checked-in code failed
to compile/link.
- Supported various projects
as needed. Taught classes in object-oriented programming, Perl5, and
Java.
Hughes STX Corporation
(Lanham, MD). Dec 1989 - Oct 1997
Performed work for NASA/Goddard Space Flight Center (Greenbelt,
MD).
- As task leader and
technical leader: Supervised/coordinated/evaluated the activities
of other team members. Composed monthly and triannual reports.
Assisted in proposal writing.
- For NASA's EOSDIS
V0 IMS Web interface (1995): Was chosen to lead an emergency
effort to deliver a web interface to NASA's EOSDIS system, after the
original contractor failed to show sufficient progress. We completed
the effort ahead of the critical deadline; as a result, our company
was awarded the contract to continue development. The system (Perl5,
C) utilized many advanced web application features, some of which would
later become industry-wide best-practices.
- As HSTX's first
full-time-telecommuter (1994):
Acquired system administration skills needed to maintain own Linux platform.
Traveled frequently to work site for work/meetings.
- For NASA's Code
712 Web effort (1994): Designed and implemented WebLib,
a Perl4 web application which provided a single searchable front-end
to multiple distributed bibliographic databases.
- For NASA's NSSDC
Storage Systems project (1993):
Took technical leadership of emergency situation: imminent failure of
existing NSSDC archive system. Designed completely new system
which would allow minimal human intervention for daily operation/fault
recovery, and plug-and-play support for new archive devices. Worked
with team to implement and thoroughly document new system (C, Sybase).
System received praise from operators; data throughput went up 300%.
- For NASA's International
Solar/Terrestrial Physics Project (1992):
Assisted in design, implementation, documentation, and support of full
data ingestion, archival, and distribution system, complete with data
catalog (Sybase) and end-user interface (JAM).
- For NASA's Intelligent
Data Management project (1989):
Conducted research in the application of AI techniques toward automatically
cataloging vast amounts of satellite data. Designed/implemented
object-oriented database schema for catalog. Developed software to support
investigation of neural network techniques in image analysis and to
perform automated cataloging of incoming sensor data. Designed
and helped implement user interface to catalog. Designed/produced
presentation materials (slides, posters, HyperCard demo). Authored/co-authored
technical papers, and presented research at remote sensing conferences
and workshops, and to NASA management.
- Additional activities:
Developed pilot software for HSTX Software Reuse Repository, and promoted/distributed
reusable libraries to other groups at NASA. Created/promoted Pseudoclass
coding standard for portability/reuse. Contributing author for Code
and Unit Testing section of HSTX Software Engineering Guidebook.
Developed and presented courses/lectures in Perl5, Object-Oriented Programming,
C++, and Software Reuse.
Tradenet Corporation
(New York, NY). Sep 1989 - Dec 1989
- Implemented parts of
a business-information management system for the Macintosh (using Think
C).
Cornell University Agronomy
Department (Ithaca, NY). Jan 1987
– May 1988
- Worked with team to
revise and extend a large climate-analysis software package for the
IBM PC.
Independent Software Developer Apr
1984 – Sep 1986
Contracted by RG Computer Workshops, Inc. (New City, NY).
- Worked with an educational
consultant to develop personal computer software geared to teaching/reviewing
basic math and language skills. Two products released: paid by
percentage of sales.
Publications
“Usability Issues in Developing
a Web-based Consumer Health Site,” Proceedings of AMIA Symposium
2000; pp. 556-560, 2000 (co-author).
Portions of “The Perl Resource
Kit”, O'Reilly Associates, 1998 (authored the published documentation
of various components: MIME::Parser, HTML::Stream, etc.).
"A Spatial Data Handling
System for Retrieval of Images by Unrestricted Regions of User Interest,"
Proceedings of the 1992 NASA/GSFC Conference of Space Applications of
Artificial Intelligence, pp. 213-230, 1992 (researcher / principal author).
"Using Semantic Data Modeling
Techniques to Organize an Object-Oriented Database for Extending the
Mass Storage Model," Proceedings of the 42nd Congress of the
International Astronautical Federation, 1991 (co-author).
"Architecture of a Large
Object-Oriented Database for Remotely-Sensed Data,"
Technical Papers of the 1991 ACSM/ASPRS Conference, Bethesda, MD Volume
3, pp. 129-143, 1991 (author).
"Intelligent Information
Fusion for Spatial Data Management," Proceedings of the 4th
International Symposium on Spatial Data Handling, Zürich, Switzerland,
Volume 2, pp. 567-578, 1990 (co-author).
References
Available upon request.