Experience
Sections: Work Experience
, Education, Technical Skills,
Awards
Work Experience
2004 - Present
Knowledge Discovery Lab
University of Massachusetts at Amherst
Amherst, MA
Senior Research Software Engineer
Responsible for the design and development of software systems used in
the laboratory's research program. Mentoring students and staff in good
programming practice, and overseeing other lab programmers and
consultants.
Guiding programming practice by inventing and/or applying methodologies
specific to research software development. Implementing design of
flexible architectures to support frequent major code changes.
Technical liaison to other research labs, departments, and industrial
partners.
- Overhauling lab's software development process to be more agile:
- Leading technical effort to produce version three of software
product (Proximity):
- Orders-of-magnitude performance improvements.
- Significantly cleaner code and APIs.
- Simpler and more powerful UI.
- Full unit and acceptance tests.
- Leading first open-source release of system to academic,
commercial, government, and private users.
- Created and lead hands-on developer workshops. Topics:
- Learning Test
Driven Development and unit testing using JUnit.
- Using Proximity APIs to write knowledge discovery applications.
- Utilizing underlying Monet database, and MIL (Monet
Implementation Language).
- Applying IntelliJ
IDEA (a Java IDE) to refactoring and
high-performance coding.
- Developed custom driver and API layers for specialized back-end
database.
Technology: Java for middle and upper
layers with special vertical database (MonetDB)
for back-end. Entire system scriptable via Python
(Jython). UI: Multi-threaded Swing application.
Unit testing: JUnit. XML:
Created languages for graphical queries (qGraph),
classification models, etc.
1999 - 2003
Knowledge Discovery Lab
University of Massachusetts at Amherst
Amherst, MA
Senior Developer
- Architect of the Proximity system for relational knowledge
discovery (data mining).
- Set up and managed CVS source control system for group.
- Trained and supervised graduate and undergraduate students in
Java, JDBC/SQL, CVS, and Linux.
- Investigating other technologies, including SOAP and complex
visualization.
Technology: Front end: Java Swing GUI. Back end: Scriptable
(Jython/Python) JDBC-based framework for SQL database (Informix,
PostgreSQL, Cloudscape). XML-based graphical query processor.
July 1997 - 1999
Center for Knowledge Discovery
University of Massachusetts at Amherst
Amherst, MA
Senior Developer
Managed, designed, and implemented three-tier client/server web-based
tutor in Java for teaching Lewis structures (chemistry). Client:
Complex applet supporting interactive creation
of structures and knowledge-based evaluation of them. Middle:
Servlets that show tutorials, assignment status, communicate with
applet, and handle bug reporting. Back end: JDBC/ODBC
interface to MS SQL Server. Successfully used by 100s of students.
Managed and implemented over thirty award-winning
web-based interactive Java modules (applets) for discovery-based
teaching of chemistry concepts.
Designed and managed entire proof-of-concept tutoring system project to
teach "chip shooter" (integrated circuit placement machine) concepts
and operation.
1994 - 1999
Independent Contractor Amherst, MA
Consultant
- Apple Computer Inc, Advanced Technology Group: Lead architect and
programmer of large authoring tool for intelligent tutors.
Responsible for nearly all aspects of code design, development, &
delivery. Modules included knowledge representation tools, robust
graphical programming environment, and Java player program. Praised
for code quality.
- Archipelago, Inc: Wrote interactive science applets for large
publisher’s use in new educational distance learning project.
- Woolf & Company: Developed real-time multimedia cardiac
arrest tutor for teaching medical school students ACLS procedures (won
phase II funding).
1994
CDT Micrographics, Inc. Westfield, MA
Senior Programmer
Lead developer of commercial interactive computer based training
applications for customers including NYNEX and Bell Atlantic. Wrote and
documented training engine in IconAuthor for large interactive
multimedia system.
1984 - 1989
National Aeronautics and Space Administration
Kennedy Space Center, FL
Systems Engineer, Programmer
Developed real-time telemetry analysis project to assist
test, checkout, and in-flight monitoring of Shuttle experiments.
Helped program a knowledge-based expert system shell for process
control,
monitor, and diagnosis of Shuttle systems. Solved booster electrical
system problems during processing, test, and launch. Improved launch
procedure documentation. Managed application of expert system to other
programs via NASA technology transfer SBIR program.
Education
Technical Skills
- Over fifteen years experience designing and implementing complex
object-oriented programs with advanced multimedia GUIs.
- Extreme Programming practices and coaching, including
week-long XP immersion class.
- Languages: Java (applications, applets, servlets, JDBC,
JFC/Swing,
AWT, etc), some Python, others.
- Platforms: Linux, Windows, MacOS.
- Internet: HTML, Java servlets (CGI, forms), Java applets, Java
networking.
- Other: SQL, XML, some SOAP, IconAuthor, some CORBA, some
AuthorWare.
Awards
- Multiple Merit awards, University of Massachusetts at Amherst.
- Certificate of Appreciation for outstanding contributions,
Advanced Technology Group, Apple Computer Inc., Cupertino, CA.
- Sustained Superior Performance Award, NASA/Kennedy Space Center,
FL.
- Employee Suggestion Program award for suggesting money-saving
Shuttle processing improvements, NASA/Kennedy Space Center, FL.