Michael Kelley Harris -
Resume
(Often called "Kelley", since there
are so many Michaels.)
mkh@mkharris.com
Phone: 805-696-6260 Cell: 805-895-0634
5662 Calle Real, Suite 478, Santa Barbara CA 93117
SUMMARY
- Software development experience: 15+
years professionally.
- Languages most used: C++,
Python, Java. Other languages used: C#, Ruby, Perl, Tcl/Tk, APL,
Awk, Fortran, etc.
- Domain experience: Scientific
instrumentation, nanotechnology, finance, investment, real estate,
software engineering training (design-patterns, refactoring, unit
testing), music, automotive diagnostics, solar energy
- Business experience: 6+ yrs project
management, 6+ years
consulting, 4 yrs line
management, 4 yrs staff management
- Education: B.S. Physics UCSB. B.A. Economics-Math UCSB.
Includes 34
units of Computer Science. Plus continuing education in software.
- Certifications: SEI Software Architecture
Professional. U.C.S.B.
Extension Certificate in Object-Oriented Programming
- Professional
interest: Work with
entrepreneurial teams focused on delivering value early and often.
Hands-on software development with cooperative teams, employing best
practices drawn from the agile community, SEI, lean manufacturing,
etc. Extra interest in open-source software in general and Linux
in particular. (Linux skills)
- Why software?: As software
increasingly controls our technological world (including planes,
medical devices, and financial transactions), it becomes increasingly
critical to rapidly develop software that is economically efficient,
high quality, and adaptable to change. I accept this as an
on-going professional and personal challenge.
- References
from managers, colleagues, and clients. (At end
of resume.)
- Demos of software development: http://www.kelleyharris.com/software/demos/demos.html
Accomplishments:
- Lead developer for the world's first
commercial nano-manipulation software.
NanoMan (Application software and GUI. Inventor on patents: US
6,862,921,
US 7,040,147, US 7,334,460) The product led to >$15 Million in
additional annual sales.
- Lead
developer for the world's first
atomic-force profilometer. (Application software and control GUI.) The
product led to >$50 Million in additional annual sales.
- Proposed and secured a $6M investment
for
software architecture improvements and commonality across
mutiple business units in Veeco Instruments.
- Completed a GUI prototype to win Veeco
a $10 Million order from IBM. (Two months, Visual Basic)
- MacWorld Best-of-Show award for MasterWriter.
(Consultant from concept to release.)
Special interests:
- Refactoring and adding unit tests in
difficult code bases, to increases clarity, remove duplication,
solidify, etc.
- Physical computing
(or embedded) systems using software and hardware to sense and respond
to the analog world. (Data acqusition & control software and
hardware for environmental, scientific, medical, etc.)
- Open-source software and hardware,
including Linux and Embedded Linux. (Linux
skills)
- Enabling business representatives and
domain experts to steer rapid development via tests, high-level
languages, models, or prototypes, use cases, etc..
- Executable requirements. (e.g.
Functional tests using FIT)
- Dynamically-extendable architectures.
(e.g. deep plug-in architectures like Eclipse).
- Iterative architectural migration
strategies.
- Software product lines sharing common
code, requirements, tests, etc.
- The interplay between design
principles, design patterns, and refactoring.
- Test frameworks: system, component,
and unit.
- Agile perspective and practices of
Extreme Programming, Scrum, etc..
- Environmental issues, cleantech,
greentech, green energy, sustainability, Permaculture.
WORK EXPERIENCE
2004 - present
Principal Software Engineer (and Owner), SourceCell
– Custom software development, delivered in weekly increments of
growing functionality. Special services for helping teams add
more unit
tests and refactor difficult sections of code. See Client
projects &
comments... Sample projects include:
Ported design-pattern
lessons from
java on Windows to C++ on Windows and Linux, for use in Refactoring to
Patterns courses offered on-line
and at major companies. (e.g. Google, HP, etc) For Joshua
Kerievsky of Industrial
Logic,
Enabled
a C++ application to interact with a SOAP web service to get
special automotive-service information. Additional features have been
added as requested. Client: Bosch Diagnostics (subcontracted through
Cold Spring Engineering)
Consulted for MasterWriter
software since 1995. (ownership interest) MasterWriter software
won a
Best-of-Show award at MacWorld 2003. Worked on the FitNesse open-source project for
system
testing. Wrote an early C++ addition to allow testing of C++ programs
using the Framework of Integrated Test.
(FIT).)
Quick evaluation of
iPhone versus
Android-based mobile
phones
for use in a monitoring-and-control application. Client: Bosch
Diagnostics (subcontracted through Cold Spring Engineering)
Added
error-status information to user-space drivers in embedded Linux
monitoring systems for a commercial solary-energy (photovolaics)
company. (SunEdison)
Built simple web
sites. (e.g. www.spiritmtnart.com
and the www.focusedgigs.com
family of sites: www.aspengigs.com
www.afmgigs.com www.agilegigs.com www.cleantechgigs.com, etc.),
and www.domaincells.com
etcPlus, working on a number of software product ideas.
Software
tools/technologies: C++ (+ STL, Boost, templates), Java,
Python, C#, Linux, Bash shell, gcc/g++, gdb, make, cmake, ctest,
chroot, XML-RPC,
HTML, Eclipse, MS Visual Studio, Windows NT/2000/XP/VISTA/Windows
7, Mac OS
X, Android, iPhone, Subversion, SOAP, gSOAP, soapUI, COM, XML, Ruby,
Poco, D-Bus (dbus), etc. See also Client
projects
&
comments...
2003 - 2008
Senior Software Engineer IV, Veeco Instruments, Santa Barbara,
California. (Acquired Digital Instruments (DI)) Veeco is
the world's leading manufacturer of atomic-force microscopes (AFMs).
(AFMs are
the world's most powerful type of microscope. They can "see"
atoms. AFMs are used in many nanotechnology areas including the
development of solar cells, hybrid cars, biomedical innovations,
high-brightness LEDs, MP3 players, flash memory, etc.). My roles:
Created and initially managed a $6
M architectural-migration project. This evolved into a longer
term Common
Assets Software Group,
We hired a manager for that group, and I moved into an architectural
development
role.
Responsibilities: Developed a common-data analysis package for use by
multiple business units. Development on a large
architectural-migration project, development of common: code, tools,
and
practices, for use by three different business units and product lines.
(Product-line
architecture
group). Service-Oriented Architecture (SOA) for precision
equipment
control, data acquisition, and data analysis. Work included:
architectural design, development, planning, budgeting, requirements
analysis,
use cases, component design, implementation, unit & system test
frameworks,
etc.
Moderated a design patterns study group with 7-9 participants.
(based on
Joshua Kerievsky's model for patterns study groups.) Defined and
develope an "Open Architecture" product that enables customers to
customize our main application via scripting and plugins. Removed
143,000 lines of no-longer-wanted-but-still-running legacy Zinc GUI
support from a flagship MFC application. Software
tools/technologies used: C++ (+ STL, Boost, templates), MFC, COM,
Python, Java, CppUnit and
unittest.py for
unit-testing, Boost libraries, Eclipse, a custom data-driven system
testing
using FIT-like approach (parsing Excel files and driving GUI tests via
Silktest
and API tests via MS COM), PHPwiki for collaboration and knowledge
base,
CruiseControl continuous build system, Perforce source control, Serena
Team
Track for issues tracking, Enterprise Architect for modeling. Windows
2000/XP.
2002 - 2003
Director of Software Engineering for Research Products, Veeco
Instruments, Santa
Barbara, California. (see
above Now called NanoBio) Responsibilities: Planned and
coordinated development of
software
for scientific instruments (AFMs). Managed a $2 M department budget
with 14
people. Created proposals, plans, and presentations. Requirements
analysis on multiple
levels,
including use cases. Technical work: Numerous architectural projects.
Developed
initial version of the world's first commercial software package for
nanomanipulation and nanolithography NanoMan
Integrated the CppUnit unit-test framework into our main application.
Integrated a C++ version of the FIT framework for acceptance tests. (http://fit.c2.com) Added a COM interface
to main
application for control from client programs. Programmed demo COM
clients in
LabVIEW, Matlab, Python, and Ruby. Plus lots of general programming
needed on
the company's main million-line application. Investigated Agile
development
methodologies such as Extreme Programming (XP), Feature-Driven
Development
(FDD), Scrum, and the Rational Unified Process (RUP) as ways to provide
rapid
innovation, solid methodical development, and on-going feedback to
management.
Impressed with development using short-cycles, close customer
involvement, and
unit-testing. Established a library of books for the
software
department. Software tools/technologies: C++ (+ STL), C, MFC,
CppUnit, MS
Visual
Studio, Python, LabVIEW, TLIB, Windows NT/2000.
1999 - 2002
Manager of Software Engineering , Research Products Group, Veeco
Instruments (See
above) Manged six people. Accomplishments: Managed a major clean-up of
the main shipping
legacy
product. (6 months) Prepared plans to accommodate a major
reorganization of the
business into two businesses, and two software departments. Technical
work:
Participated in the development of numerous new products. Software
tools/technologies: OOA, OOD, design patterns, C++ (+ STL), C,
MFC, MS Visual
Studio,
Zinc, TLIB.
1997 - 1999
Software Engineer, Digital Instruments. DI's software
controls a
very complicated real-time data-acquisition and analysis system. (
(Atomic Force Microscopes)
Accomplishments: Worked in the Software R&D group helping develop
the
next-generation architecture and user interface. (OOA, OOD, C++, MFC,
ActiveX)
Completed a two-month GUI prototype to win the company a $10 Million
order.
(Visual Basic) Lead developer of software to control the
world's
first atomic-force profilometer, combining motion control, SPM data
acquisition, display, and analysis. It required lots of requirements
analysis,
design, rapid prototyping, and user-interface design. It also involved
the
integration of contributions from diverse personalities and the
associated
practice in cooperation, communication, imagination, patience, etc.
Other
projects include: analysis & verification of legacy algorithms,
designing
test procedures, and random general programming that a complicated
system often
requires. Software tools: C++ (+ STL), C, MFC, Galil,
Zotech, Zinc, MS
Visual
Studio, Windows NT
1993 - 1997
Assistant to the President, Digital Instruments, in Santa Barbara.
(see
above)
I
feel
quite
fortunate
to
have
worked
directly
for
Dr.
Virgil
Elings.
He's one
of the
most brilliant men around, and quite a colorful character. In 1993, I
applied
to work as a programmer. He asked me to focus on the organization &
support
of a patent infringement lawsuit against a competitor. That work
included:
analysis of the competitor's hardware and software, summarization of
complex
evidence, financial analysis of damages, correspondence with attorneys,
etc. I
developed various databases for tracking patents and legal documents.
Additional projects included: analysis of contracts and license
agreements,
patent and trademark applications and administration, proposal writing,
and financial
projections for federal research grants. As the lawsuit ended, I asked
to transition
back into programming for DI's main products.
1993
Technical Writer II, Engineering, PulsePoint Communication (Formerly
Digital
Sound Corporation (DGSD) Manufacturer of high-capacity network-based
message
processing systems). Job description: "participated in the product
design
and development cycles for DGSD's software products, to identify,
design,
create and maintain required documentation." My primary focus was on
DGSD's extensions to UNIX and the "Systems Services" layer between
the operating system and custom applications. Required knowledge of
UNIX, C,
C++, and object-oriented analysis & design methodologies. Wrote
test
programs, shell scripts, and created sample programs for user manuals
and
tutorials.
1992 - 1993
Technical Reviewer, Intellimation (educational software publisher), on
a
part-time basis. Performed technical review and software testing of new
educational software. Prior to 3/9/93: Technical Evaluation
Coordinator, 30
hrs/wk. Performed technical reviews of new educational software,
finding bugs
and suggesting improvements. Provided technical and programming
assistance to
developers. Required skills in HyperCard and C programming. Plus
technical
support. Started using Linux 0.99 at home, in order to learn more about
UNIX
and C programming.
1988 - 1992
Consultant, Michael Kelley Harris Special Project Services for
Investors,
Entrepreneurs, and Strategic Managers. (dba Venture Analysis
until
1992) Services included: feasibility analysis, due-diligence,
research,
project management, proposals, writing, programming, etc.
Prepared
business plans for four limited partnerships to raise a total of
$3,000,000.
Prepared large spreadsheets for investment analysis. Created databases
for
clients wanting contact info, marketing plans, etc. As necessary, hired
professional associates, sub-contractors, and assistants. Worked
very
hard and learned a lot. Developed a deep appreciation for the
entrepreneurial risks and creations of others.
1985 - 1988
Physics student. University
of California
at Santa Barbara.
Worked
P/T
for
Brian
Beebe,
Colin
Gray,
and
private
collectors,
fabricating,
framing,
and
installing contemporary art. Started studying
C
programming.
1985
Programmer/analyst. International Transducer Corp. Created computer
models for
the design of piezo-electric ceramic transducers, based on Bessel
functions of
harmonic resonance. (BASIC)
1983 - 1985
Economics/Mathematics Student. University of California.
Some
freelance
investment
research,
analysis,
due-diligence
services.
(Didn't
make
much
money.
Learned
a
lot.)
1983
Programmer/analyst. VentureSim. Programming of Monte
Carlo
simulation and analysis of oil & gas well investments, in BASIC and
Lotus
123.
pre 1983
Numerous other jobs and small service businesses. (Including
programming in
Pascal,
APL, Fortran, and assembly.)
EDUCATION
- B.S. Physics '88, University of California, Santa Barbara
- B.A. Economics-Mathematics '85, with
High Honors; University of California,
Santa
Barbara.
(22
units
of
Computer
Science,
4.0
gpa)
- 2000-2001 UCSB 12 units of Computer
Science courses in Data Structures & Algorithms, and Numerical
Analysis
- U.C.S.B.
Extension Certificate in Object-Oriented Programming awarded
August 1998.
- SEI Software Architecture
Professional. Certificate April 2005. (SEI
Software
Architecture
Certificate
Programs)
PATENTS:
Participated in the invention of a number of
methods and instruments within
the field of
atomic-force microscopes, including:
- United States Patent 7,334,460,
issued February 26, 2008, "Method and apparatus for manipulating
a
sample"
- United States Patent 7,040,147 B2,
issued May 9, 2006, "Method and apparatus for manipulating a
sample"
- United States Patent 6,862,921 B2,
issued March 6, 2005, "Method and apparatus for manipulating a
sample"
CONTINUING EDUCATION:
- 2009 Feb. 9-11. Linux
Device
Driver
Development. LinuxCertified. Santa Clara, CA
- 2008 November 17-23
LINUX-LPIC1 7-Day Linux Boot Camp. (Linux system administration,
vender neutral,
leading to Linux Professional Institute Certification Level 1
(LPIC-1)) Unitek.
Fremont
CA
- 2008 November 12-14 Embedded
&
Real
Time
Linux
Development course. (ARM9 AT91, Eclipse)
LinuxCertified. Santa Clara, CA
- (gap
in courses and conferences due to some family health challenges, and
increased contract work to pay for the health challenges.)
- 2005 Fall - 2006 Spring. Design
Patterns study group at Veeco
Instruments. I started this in the Fall of 2005, inspired by Joshua
Kerievsky's Learning
Guild to Design Patterns. Weekly meetings to discuss one pattern
and
how it can be applied to Veeco's instrumentation-control software.
We've been through the 23 patterns in the GOF book Design Patterns.
- 2006 Spring - Software Design
Patterns, Santa Barbara City College, CS165. Grade A Language: Java
& SWT, Eclipse
- 2005 Oct 16-20 - OOPSLA conference.
(www.oopsla.org) Tutorials on Storytest Driven Development by Max
Baumann and Ken Scott-Hlebek; Tuning Your Methodology by Alistair
Cockburn; Domain-Driven Design by Eric Evans; and Patterns for
Introduding New Ideas by Linda Rising and Mary Lynn Manns.
- 2005 July 24-29 - Agile2005
conference in Denver. www.agile2005.com
- 2005 April 12-13 - Software
Engineering Institute (SEI) – Software Architecture Design and
Analysis, by Len Bass and Robert Nord.
- 2004 December 1-2 - Carnegie Mellon
Univ., Software Engineering Institute (SEI) – Software Product Lines,
by Linda Northrop (Director of the Product Lines program.) (http://www.sei.cmu.edu/products/courses/spl.html)
- 2004 October 23-28 - OOPSLA in Vancouver
BC. Tutorials by Joshua Kerievsky, Scott
Meyers + Kevlin Henney; Plus keynotes by Ward Cunningham, Alan
Kay, Steve McConnell, etc.
- 2004 September 29-30 - Carnegie Mellon
Univ., Software Engineering Institute (SEI) – Documenting Software
Architectures, by Len Bass and Felix Bachmann
- 2004 September 27-28 - Carnegie
Mellon Univ., Software Engineering Institute (SEI) – Software
Architecture Principles & Practices, by Len Bass and Rick Kazman
- 2004 August 15-18 - XP Agile Universe
Conference in Calgary
(Many good presentations and workshops.)
- 2004 three-day course in "Advanced
Object-Oriented Design with Patterns” by James Grenning of ObjectMentor. Language: Java.
- 2003 October 26-28 - OOPSLA in smoky Anaheim
California. Tutorials on product-line
architecture, large-scale architecture, design patterns for
high-performance systems.
- 2003 August 10-13, XP Agile Universe
Conference in New Orleans.
(Many
good
presentations
and
workshops.)
- 2003 Fundamentals of the .NET
Framework. U.C.S.B.
Extension Summer qtr, 1.5 units. A.
- 2002 three-day course in "Test-First
Design and Refactoring", by Robert Koss of ObjectMentor.
- 2002 two-day course in planning via
"Extreme Programming", by Robert Martin of ObjectMentor.
- 2002 one-week course in "Extreme
Programming". ("XP Immersion"), by Robert Martin and Ron Jeffries of ObjectMentor. Language:
Java.
- 2001 Organizational Management, U.C.S.B.
Extension
- 2001 Legal Aspects of Employment
Practice, U.C.S.B.
Extension
- 2001 Principles of Performance
Management, U.C.S.B.
Extension
- 1998 The C++ Standard Template
Library. U.C.S.B.
Extension
Fall qtr, 2 units. A.
- 1998 Design Patterns. (C++ &
Java) U.C.S.B.
Extension
Summer qtr, 3 units. A.
- 1998 Introduction to UNIX. U.C.S.B.
Extension Summer qtr, 3 units. A.
- 1998 Java II Fundamentals. U.C.S.B.
Extension Spring qtr, part 2, 2 units. A.
- 1998 Java I Fundamentals. U.C.S.B.
Extension Spring qtr, part 1, 2 units. A.
- 1998 Advanced Object-Oriented
Programming with C++. U.C.S.B.
Extension Spring qtr, 4 units. A+.
- 1998 Programming Windows 95/NT using
Microsoft Visual C++. U.C.S.B.
Extension Winter qtr, 3 units. A+.
- 1998 Object-Oriented Programming with
C++. U.C.S.B.
Extension Winter qtr, 3 units. A.
- 1997 Object-Oriented Analysis &
Design (emphasizing UML) U.C.S.B.
Extension Fall qtr, 3 units. A.
- 1993 Object-Oriented Analysis and
Design, GE Advanced Products Center, using Object Modeling Technique
(OMT). FT 2-week course.
- 1992 Science and Macintosh Conference,
U.C.S.B.
Extension 20 hours
- Reading lots of
books and articles.
COMPUTER LANGUAGES & SKILLS:
- Languages: main: C++ and Python.
others: Java, Basic, Ruby, Pascal, PDP 11/45 assembly, APL
- Linux
skills and interests: Summary: Long-term interest. Limited
professional use. More academic and personal use. Growing interest and
skills. Details:
I've wanted to develop software on Linux systems since at least
1993. Pre 1993, I'd used some forms of UNIX (Sun, NextStep, etc)
in programming courses, and liked it. In 1993,
I installed Linux 0.99 on my 386 and wrote simple user-level programs
in C. I used UNIX SysV briefly at Digital Sound. When I moved to
Digital Instruments to work on their amazing atomic-force microscopes,
I tried to convince the team to use some form of UNIX (Linux or
BSD) instead of Windows. I used Linux for small personal projects. In
1998, I
took a UCSB Extension course in Unix Admin. I used various forms of
UNIX
and Linux in UCSB computer science courses. (user-level C & C++
programs) I
did a contract project porting design-patterns lessons to Linux for
courses taught at Google. In Nov. 2008, I attended a concentrated
3-days of
training in Embedded and Real-Time Linux. I attended a 7-day boot camp
in Linux administration. In Feb 2009, I attend a 3-day course in Linux
Device
Driver
Development. In 2010, I spent three months
working on user-space drivers for SunEdison, adding error-status
information. Tools used included C++, Ruby, Python, Bash shell, g++,
gdb, cmake, ctest, chroot, glib, D-Bus ( dbus ). I look forward to
working on many more
Linux projects as my skills grow.
- Graphics libraries: Most used:
MFC, Zinc Also used: SWT, wxWidgets (wxWindows), wxPython, Tk
- Significant professional work in: C++,
C, MFC, Python, user-interface design, test design, unit-testing
(CppUnit and unittest.py), numerical modeling & simulations,
database analysis/design/programming (FileMaker Pro. Paradox, ...),
complicated spreadsheets (Excel, Lotus 123), BASIC, HyperCard.
- Course work in: OOA, OOD, design
principles, design patterns, C++, C, Java, MFC, SWT, Pascal, Unified
Modeling Language (UML), UNIX, FORTRAN, PDP 11/45 assembly, APL.
- Limited professional use: Java (Java
to COM bridge), Visual Basic, Ruby, Matlab, TCL/TK, HTML, XML,
Javascript, Galil, UNIX shell.
- Significant study and practice in:
Design principles,
design patterns, architecture in general, product-line architecture,
test-driven development, FIT framework for acceptance tests, Fitnesse,
refactoring, Python
- Additional study: Linux, embedded
systems, Squeak, etc. etc.
- Demos of software development: http://www.kelleyharris.com/software/demos/demos.html
- Demo programs available: Java, Python
- Unit test frameworks used: JUnit,
CppUnit, CppUnitLite, Boost Unit Test, NUnit, CppTestKit, plus a
variety of custom and home-grown forms
- Computer system admininstration
experience: Over the years, I've setup numerous development and test
systems with various operating systems (Windows 3/95/NT/2000/XP, Linux
0.99,
Red Hat Fedora 3+, Ubuntu 6+) Virtual PCs via
VMWare (Workstation and Fusion). Installed
applications, development tools and test tools. Replaced hard
drives, memory, and boards.
ASSOCIATIONS
OTHER BIG INFLUENCES
ATTRIBUTES
Conscientious,
diligent, and
creative. A generalist by nature, but with specific skills. Sensitive
to both
the opportunities and frustrations of innovation. Belief in
thoroughness and full
disclosure.
READING:
Recent influential reading:
- Refactoring to Patterns,
by Joshua Kerievsky
- Fit for Developing
Software - Framework for Integrated Tests
by Mugridge & Cunningham
- Head First Design
Patterns by Eric
Freeman & Elisabeth Freeman with Kathy Sierra & Bert Bates
- Working
Effectively With Legacy Code, by Michael Feathers.
- Lean Software
Development, by Mary Poppendieck and Tom Poppendieck
Frequently referenced reading:
- Refactoring: Improving the Design of
Existing Code, by Martin Fowler.
- Design Patterns, by Erich Gamma, et al
- Agile Software Development:
Principles, Patterns, and Practices, by Robert C. Martin.
- Extreme Programming Explained: Embrace
Change, (version 1 & 2), by Kent Beck
- Large-Scale C++ Software Design,
by John Lakos
- Effective C++ series, by Scott Meyers.
- UML Distilled, by Martin Fowler
- Pattern-Oriented Software
Architecture, Volume 1: A System of Patterns, by Buschmann, et al.
- Writing Effective Use Cases, by
Alistair Cockburn
- Agile Software Development with Scrum,
by Ken Schwaber and Mike Beedle
- "Who
Needs
an
Architect?", by Martin Fowler
- Ward Cunningham’s wonderful Wiki
community www.c2.com
WRITING:
REFERENCES:
- "Kelley Harris is meticulous,
efficient, an excellent communicator and a talented software
engineer. When Kelley is helping us with projects, we know that
great work is getting done and we rest easy, knowing our dollars are
being spent wisely." -- Joshua Kerievsky, President of Industrial
Logic, and author of Refactoring to Patterns www.industriallogic.com
- "I was Kelley Harris's manager for his
last two years at Veeco. Kelley sets a great example to other
developers with his excellent work ethic, his desire for knowledge,
open mindedness, desire to use good designs and not take shortcuts, and
in unit test development. Kelley is very effective at pair
programming, and loves to share his many ideas for better software
development. Kelley is very focused on the task at hand, which
combined with his software knowledge and experience results in high
productivity." -- Matt Rinta, Senior Software Engineering Manager,
Common Assets Group Veeco Instruments, Inc
- "Kelley Harris made numerous
contributions to our state-of-the art atomic force microscopes, and
lead several software projects that had crucial technical and business
impact. He is both meticulous and passionate about creating the best
possible product, with the user experience front and center." -- Ken
Babcock, CEO, Affinity Biosensors, and former Vice President of
Research and Development and General Manager, Digital Instruments/Veeco
Research AFM
- "I worked with Kelley Harris, for many
years, in a range of different capacities. Kelley has a great
perspective on software development wanting not only to produce great
code but also having a high level of focus on creating something that
fits the business and customer needs. Kelley was constantly searching
for ways to improve our productivity and brought several changes to our
software development process that had a great impact on customer
satisfaction." -- Kevin Kjoller, VP, Product Development, Anasys
Instruments, former Director of Engineering, Veeco Metrology, Research
SPM
- "Kelley Harris helped make
MasterWriter an award-winning success. From the inception, and
throughout eight years of evolution, he continually provides critical
technical and business insights, that strengthened the product and
business. While others certainly helped, MasterWriter simply would not
exist today without Kelley's thoughtful contributions." -- Micheal
Towers, Creater of MasterWriter, www.masterwriter.com
- "Kelley is an incredible resource into
Agile methodologies -- what works, why it works, and how to implement.
We have engaged Kelley to prepare materials, give technical guidance,
and facilitate adoption of key practices into our organiziation.
We enjoy working with Kelley and would highly recommend him to others.
" -- Jonathan Siegel, Founder and CEO, ELC Technologies
- "Kelley helped us with a prototype
project. His focus on the requirements and great communication helped
us quickly get software that worked the first time." -- Kevin Kjoller,
VP, Product Development, Anasys Instruments, www.anasysinstruments.com
- "I had the pleasure of working with
Michael (Kelley) Harris for almost 15 years at Digital Instrument and
Veeco. I first worked with him on intellectual property matters
where Michael showed his keen analytical skills and attention to
detail. Later we worked together for many years on scientific
instrumentation and automated metrology tools. Michael was always
dedicated to ensuring top performance of our instruments by creating
top notch software and software development methods in support of these
goals. Michael was awarded several patents and was a key
contributor to the development of many successful products during his
time at Digital Instruments and Veeco." -- Craig Prater, PhD, CTO,
Anasys Instruments
- "Kelley worked at Veeco Metrology from
1993 through 2008. During his tenure at Veeco he worked in the software
development area from 1997 though 2008. As a Software Developer,
Manager of Software Development and Director of Software Development,
he was (and is) a talented, thorough, detail oriented contributor to
Veeco Metrology's core products. He was and is a consistent advocate of
researching and applying new software development methodologies such as
agile development including test-driven development, pair programing,
continuous build systems, etc. Kelley was the key developer responsible
for Veeco Metrologies' highly successful Vx platform and product line.
He similarly contributed individually or as a team member to many other
software products. Kelley worked for me for much of his tenure at Veeco
and I always found him honest, highly communicative, and motivated to
develop and ship the best product possible. He could always be counted
on to provide synergism, energy and an entrapenurial spirit to any
project." - Bob Dutcher, Senior Software Engineer, Veeco
Instruments, Inc.
- "I am writing in recommendation of
employment for Kelley Harris. I am currently a Staff Software
Engineer at Veeco Metrology where I have worked with Kelley for several
years on a corporate effort to create a common software platform across
Veeco’s business units. Kelley’s contributions to this Common
Assets Group were invaluable and he was a leader in guiding the Santa
Barbara business unit towards adoption of the common software
platform. Kelley has a great work ethic and has proven himself
capable of taking initiative to move things forward. Kelley was
always the most thorough reviewer taking the time to really scrutinize
code and design and make recommendations to improve quality.
Kelley also has made sure he is up to date with the latest software
paradigms and is able to evaluate their potential value to
projects. For example, Kelley originally suggested we look at
adopting the boost C++ libraries as an integral part of our common
platform which has proven extremely useful. In summary, I believe
Kelley Harris would be a valuable software engineering asset for any
organization and I recommend him highly." -- J.D. Herron, Staff
Software Engineer, Veeco Inc.
- "The purpose of this reference to
provide useful information to those who might consider engaging Michael
Kelley Harris as a new hire. First I have worked closely with "Kelley"
as a peer for over ten years and have not come across an employee that
I would recommend more highly due to his desire to provide the best
quality results to a project. He has gone far and above what would be
expected from most employees and has endeavored to stay current with
the software community. He has acquired a great deal of expertise in
C++, STL, Agile software methods, Design Patterns, etc. during his
fifteen years here at Veeco. He has done this much on his own accord
via conferences, reading, and investigations mostly on his own
initiative and at his own expense often at times outside the normal
work hours. Kelley has a very strong work ethic, excellent
communications skills (both written and oral), deft organizational
skills, and all exercised with the most positive outlook on what is at
hand. During his tenure at Veeco, he has been a major player in many
very large projects including the development of the first ever Atomic
Force Profiler, the NanoMan project (which led to three patents he
received), the Veeco Architecture Migration Project, and the Common
Assets group where his leadership has been a very valuable
contribution. In conclusion, I would expect that any employer
considering Kelley should seriously attempt to acquire his services and
I would be available to discuss this further at their request" -- John Richards, Senior
Software Engineer V, Veeco Instruments, Inc.
- “Kelley is a proponent of many state
of the art software engineering practices. Due to his suggestions and
mentorship, I learned OO Design Patterns, Agile Programming, automated
unit test frameworks and automated build and test integration systems.
This has made me a better software engineer. If you want a hard
working, OO Design knowledgeable, smart and capable senior software
engineer, I would recommend hiring Kelley. He is a firm believer in
agile programming with continuous incremental improvement and well
tested code. He used his skills to greatly simplify, strengthen and
improve the architecture and user interface software of the major
application developed at Veeco. I also valued Kelley as a sounding
board and advisor during various technical and business issues that
would come up during my tenure at Veeco and always valued his opinion.
Kelley is kind and thoughtful, and was a great manager to work for.” --
Blair Whitney, Director of Software Engineering, Intouch Health, former
Senior Software Engineer, Veeco Instruments
- "During my past 4 years working at
Veeco Instruments, I have knocked on Kelley Harris's door numerous
times when I have a question about COM, design patterns and other
software development methodologies. His constant learning, his
willingness to share and help, and his vast collection of software
programming books easily made him the 'resident professor' we can count
on. I have also interacted with Kelley as a 'customer' when we
needed feature changes and bug fixes in the Veeco Common Assets
library. His dedication, meticulous unit tests, made the
otherwise long and painful process, shorter and easier to bear for
us." -- Ji Ma, Senior Embedded Software Architect, Veeco
Instruments.
- "Kelley Harris is a first-rate
highly-motivated, knowledgeable, and talented software engineer.
Throughout the years that I have worked with him I have seen him
contribute to our software team in ways that can not be measured in
lines of code. He has contributed much in terms of process, insights,
introducing cutting edge techniques, and a relentless commitment to
building quality software." --Efrain Olivares, Quality Engineering
Lead, Veeco Instruments
- "I had the good fortune to work with
Kelley on a complex software project involving the refactoring of a
large body of instrumentation software. Kelley helped us to get
the project funded and launched. We
pursued four main program thrusts: architecture, development process,
automated testing, and skills development. In each of these
areas, Kelley contributed valuable ideas that influenced the program and
improved the quality of work that was accomplished. His approach
to problem solving is thoughtful and well considered. He tracks
software technology trends, and is a tireless advocate for best known
approaches,
especially in software development process. I learned to trust
his opinions and to rely on his assessments."
- John Wissinger, PhD, VP Optical Industrial Metrology, Veeco
Instruments
-
"I worked with Kelley Harris for many years at
VEECO Metrology. He,
more than anyone, was responsible for bringing the importance of
Software
Processes and best practices to the attention of management, and
getting those
processes and practices implemented. He has kept abreast of
developing software
methodologies and is the source for getting information about
new
software developments. He has exhibited exemplary leadership and
mentoring in
this area". -- Hanspeter Adam, Senior Software Developer, Infogenesis
- "I worked with Kelley for nearly eight
years at Veeco. Hiring Kelley will insure you of a thorough, dedicated,
loyal employee who will passionately work with your team to produce the
software you areenvisioning. His constant thirst for knowledge
keeps him up to date on all of the latest software development
methodologies which he is always willing to enthusiastically share with
his fellow team members. He will be a constant advocate for improvement
with his ultimate mission to please the end user." -- Mandy McCoy,
Senior Software Engineer, Veeco Instruments.
- "I had worked with Kelley for more
than eight years since 2000. Either as my co-worker or my manager, he
is very pleasant to work with. Kelley is a very patient and open-minded
humble person who is always trying to help and empower the people
around him. As a software developer and leader, Kelley has profound
knowledge on C++, Python, STL, Design Patterns, COM interface, MS
Visual Studio and many programming practices. He always strives for the
software quality, new software technologies and best programming
practice. During his tenure at Veeco, he have made great
contributions to our software assets: VX profiler with Nanoscope V5,
Nanoscope Version 6 user interface proto-type with VB6, Nanoscope V6
with MFC, NanoMan Implementation and patents, Agile software practices,
VAMP and Common Assets. I highly recommend Kelley to any team that
seeking for software quality, current knowledge and productivity." --
Charlie Liu, Senior Software Engineer, Veeco Instruments.
- "It has been a pleasure to work with
Kelley for 15 years! He has been a lifesaver to me here at work;
an endless resource of information and support for one of our more
challenging software products. He is very patient, open-minded
and always ready to give his time to listen to you- by far the most
approachable and conscientious software developer with whom I have ever
worked. I highly recommend working with him; he would be a great
asset to any company." -- Lisa Fukunaga, Applications Scientist,
Customer Knowledge and Applications, Veeco Instruments
- "I have worked with Kelley and his
software, for the past 9 years, so often times I find myself supporting
a product that Kelley worked on. Of all the software engineer's
whose code I "inherit," Kelley's projects are always the most
organized, clear and easiest to understand. His belief and
adherence to sound design methodologies makes his code a pleasure
(relatively speaking) to support. Beyond his competence and
knowledge, however is his helpful and exemplary attitude. While
at Veeco, I have had 3 or 4 "formal" Software Engineering training
opportunities' all but one were inspired and organized by Kelley.
He made sure these opportunities were available to me even though I
worked for a completely different business Unit. It is said "it's more
important to hire someone with a good attitude than experience and
knowledge, as that can still be learned or acquired. Whoever is
lucky enough to find Kelley next, will have both. Any project or
team Kelley is on will be very fortunate and successful." --
Michael Lebell, Senior Software Engineer, Veeco Instruments.
- "I worked with Kelley on a Software
Architecture Migration Project and I was involved with the definition
and development of an automated software test framework. Kelley always
considered testing software very important and was always promoting
unit/component and system level testing. He made sure he ran our
automated tests to verify and regression test his code. Kelley is
always up to date with the latest ideas in the software development
world and can always point you to the right books to consult, when you
have a software question. Kelley also organized lunch sessions to
discuss software design patterns which gave me a good introduction on
the use of patterns. He has always been looking to improve software
quality and development methodologies here at Veeco with as a goal to
make the software users happy." -- Nathalie Guebels, Software Engineer,
Veeco Instruments.
- "Kelley and I worked together on the
VAMP/Common Assets Group, DDTAF system-test framework, Common Data
Analysis, and various bug chasing, etc. Kelley demonstrated a high
level of engineering proficiency during his work. The quality with
which Kelley performed various engineering tasks was excellent. His
time at Veeco was a great success. It was a very good pleasure to work
with him." -- Jenny Choe, Software Engineer, Veeco Instruments, Inc.
- "I have worked with Kelley Harris from
1999 to 2008 at Veeco Instruments in the software engineering group.
For two of those years, he was my manager. He is an exceptionally
knowledgeable and capable software engineer. He is very well versed in
basic principles and techniques of programming as well as computer
science. His passion for the field is evidenced by the fact that he is
always open and actively engaged in learning. This passion extends to
process issues as well as algorithm and language issues. He always
seeks simple, thoughtful and elegant solutions to problems while
keeping business constraints in mind. He has true sense of the
aesthetics of programming.
As a manager and as a senior peer I've always found him to be a mature,
humble person who is always willing to help others. He has strived to
drive change in our software development process and tried to inspire
other programmers to learn more and work more efficiently. He has
pursued that goal despite significant opposition with humor and grace.
I have always found the truly exceptional people in our field to be
very open in a personal and professional sense and Kelley reflects that
in full measure." -- Rohit Jain, Senior Software Engineer, Veeco
Instruments
- "I worked closely with Kelley on a
refactoring project for over 2 years. One perspective I would add here
is that Kelley applies introspection. Long ago, I learned from a mentor
that completing a development task, and meeting requirements, is not
the end-all for a professional software developer. Only through
introspection, self-observation of our practices and effectiveness, do
we advance in terms of software methodologies and improved patterns. In
Kelley I observed the most dedicated application of introspection." --
Dan O'Connor, Software Architect, Foliage
- "I worked with Kelley Harris over the
course of several years and have always admired his integrity and
intelligence. I particularly appreciated these qualities in my
role as project manager for the Veeco Vx Atomic Force Profiler, a new
type of automated measurement system for the semiconductor equipment
market. Under conditions of high visibility and short schedules,
Kelley led the development of software for this new and complex
machine. His ability to understand the requirements and
willingness to go above and beyond the call, working at a high level of
intensity for many months, were key to the quick development and
success of the Vx program. Besides his skills as a software
developer, Kelley is a calm and level-headed presence, unselfishly
contributing to the success of any project." -- Tim Cunningham,
Project Manager for the Vx Atomic Force Profiler, Veeco Instruments
- "Kelley Harris is a senior software
engineer that has the experience and personality to handle high
pressure situations with calm and sensible actions. Kelley is a team
player and a strong communicator who knows how to set priorities and
manage expectations. His interest in learning new things keeps his
software skill set current and makes him very versatile." -- Ben
Tsuruda, General Manager, Cold Spring Engineering
- "Kelley Harris brings to the table a
deep knowledge of the
ins and outs of C++ as well as the practical experience required to use
its power safely. His forward-thinking attitude and his diligent
dedication to whatever he's working on make him a pleasure to work
with. As a telecommuter myself, I can also attest to his highly
effective communication skills." -- Evan Mezeske, Lead Embedded
Software Engineer, SunEdison.