Michael
Kelley Harris - Resume
("Kelley", since
there are so many Michaels.)
kelley@kelleyharris.com
650-485-1203,
Palo Alto, California
805-895-0634,
Santa Barbara, California
SUMMARY
Agile/Scrum Trainer, Coach, and Developer. Software Engineer with 20+ years of
hands-on software development experience.
Helping organizations create more value, faster, with less risk. Using
Agile, Lean, Scrum, Lean Startup, Design Thinking, and whatever helps teams
move forward. Steeped in principles
& practices from Agile/Lean, Kanban, and Lean Startup. Moving focus from the “how” to the “what.”
Industries include: nanotechnology, scientific instrumentation, energy,
automotive safety, Agile methodologies, finance, investment, education, etc.
Design patterns, SOLID principles. Spirit of help, service, collaboration, and
innovation. Enjoy sharing knowledge via Agile/Lean/Scrum consulting, training,
and coaching. Certified Scrum Trainer
(CST), Deep experience with C++ (15 yrs) and Python (10 yrs). Many other
technologies used including java, C#, C, ruby, javascript, CSS, HTML,
CoffeeScript, SQL, etc.
BS Physics, BA Math/Economics, University of California,
Santa Barbara. Plus 34 units of Computer
Science courses.
Lean Startup skills & training: I've read The Lean Startup book
twice. Attended two Lean Startup conferences. Use the principles on my own
product ideas. Attended two Lean Startup Machine weekend workshops. Mentored & judged at Lean Startup Machine
workshops. Incorporating Lean Startup topics in the courses I teach and
consulting.
Design skills &
training: software design, industrial design, product design, graphic design,
participatory design, permaculture design, drawing, sculpture, animation, etc.
Special Interests: Sustainability, Green
Energy, Internet of Things, Innovation, Science, Permaculture, Health,
Nutrition, and Music
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 multiple business units in Veeco Instruments.
- Completed
a GUI prototype to win Veeco a $10 Million order from IBM.
- Macworld
Best-of-Show award for MasterWriter.
(Consultant from concept to release.)
HIGHLIGHTS
- Agile, Lean, Scrum, and
Lean Startup values, principles, and practices.
- Sweet spot
context: rapid innovation (unknown solution, high uncertainty)
- Languages
most used: C++ (15 yrs), Python (10 yrs)
Other languages used professionally: Java, Javascript, JQuery, Coffeescript , Ruby,
HTML, HTML5, C#, Perl, Tcl/Tk, Academically: APL, Awk, Pascal, Fortran,
etc.
- Agile
and Scrum experience since 2002 XP Immersion, courses, books, conferences,
plus work as a trainer, coach, and consultant. Used 15+ unit-test
frameworks, contributed to early Fitnesse, and the Federated Wiki.
- Strong
at test-driven development (TDD), refactoring, and breaking up large changes
into small gradual steps.
- Continuous
Deployment (aka Continuous Delivery): interest and study.
- Lean
Startup experience: Read the book, two Lean Startup Machine workshops,
Lean Startup Conference 2012. Plus additional discussions, readings,
videos, and experiments.
- Domain
experience: Scientific instrumentation, nanotechnology, finance,
investment, real estate, software engineering training (design-patterns,
refactoring, unit testing), music, automotive diagnostics, solar energy,
education, Agile methodologies.
- Business
experience: 6+ yrs project management, 10+ years consulting, 4 yrs line
management, 4 yrs staff management. Modest entrepreneurial attempts for
both products and services. (Great appreciation for the challenges.)
- Spirit
of rapid innovation and collaboration. Many years of experience
participating in organized brainstorming meetings, invention meetings,
general “Design Thinking” that’s empathetic and collaborative, plus more
casual on-going brainstorming, collaboration, and mentoring discussions.
- Design
training and experience in multiple forms: software, product, real-world,
participatory, community, Permaculture, graphic.
- 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 2005 U.C.S.B. Extension
Certificate in Object-Oriented Programming 1998; Certified Scrum Trainer (CST); Certified
Scrum Professional (CSP), Certified ScrumMaster (CSM), Certified Scrum
Product Owner (CSPO), Certified Scrum Developer (CSD), ICAgile Certified
Professional - Agile Coaching (ICP-ACC), ICAgile Certified Professional -
Agile Team Facilitation (ICP-ATF),
- 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, Scrum,
“Lean Startup”, SEI, Lean manufacturing, Kanban, etc. 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 and testimonials from managers,
colleagues, and clients. (At end of resume.)
- Demos
of software development: http://www.kelleyharris.com/software/demos/demos.html
WORK
EXPERIENCE
2004 - present
Agile Coach, Trainer, & Developer. SourceCell – Agile/Lean/Scrum consulting,
coaching and training. (Certified Scrum Trainer (CST)) Custom software development, delivered in
weekly increments of growing functionality. Frequently helping teams add
more unit tests and refactor difficult sections of code. (Keywords: Senior
Software Engineer, Architect, Agile Coach, Agile Trainer, Agile Consultant) See Client projects
& comments... Sample projects include:
· Scrum Training &
Coaching. Description: Training Courses Calendar of courses: Calendar
· Agile Coaching and
Firmware development. New platform for the children’s education. Game-like
platform with TV console, plus separate game-like controller. Technology:
C/C++, Embedded Linux on ARM. C on 8051. Bluetooth.
· Agile Training &
Coaching for Cisco, as part of a company-wide Agile transformation.
· Agile Training and
Coaching for PayPal, via SolutionsIQ (US & India) Part of an Agile transformation for all of
PayPal. Taught various one-day courses including Basic Agile (Scrum),
ScrumMaster Skills, Product Owner Skills.
· Agile Coaching re
automated tests and refactoring of a special code base. Python. Company: Calient Technologies
· Analyzed requirements and
architectural options for a scientific/medical application that does camera
capture, image editing, and annotations.
Recommended investigating an HTML5/Javascript/C++ approach, instead of
current use of C++. Company: Giles
Scientific
· Software development help for Ward
Cunningham’s new Smallest Federated Wiki open-source project. (https://github.com/WardCunningham/Smallest-Federated-Wiki.git) It’s been a great pleasure to interact with
Ward over the years at conferences, email, etc. This project has been a chance
to work more closely, see how Ward thinks, pair program, etc. I worked on a
variety of features, including an image-analysis plug in for measuring pattern
efficiency of a manufacturing process, to lessen material waste. Very Agile. Tools: Javascript, Coffeescript,
JQuery, Node, Ruby, Mocha, Sinatra, HTML5, JSON, etc.
· Architecture and implementation for a
client-server web-based data-collection system. Created various Python
applications on client and server, to handle the data collection, white
listing, and later processing. Designed the XML schema design for a data file.
Designed the XML schema design for data-transfer metadata bundle. Server configuration. Apache configuration.
Linux and Windows. SSL configuration. Etc. Agile approach. (Scrum project plus
XP testing & refactoring.) Company:
Bosch, Automotive Diagnostics Division. Tools: Python, XML, Apache
· Agile/Lean/Scrum coaching and
consulting in collaboration with Industrial Logic.
(http://www.industriallogic.com/)
Sample engagement: Help a team utilize test-driven development (TDD) in
C++ and Python, and advise on other Agile practices. Schlumberger (http://www.slb.com/) Industry: Oil & Gas Services Group:
Physicists in the oil-well Interpretation Engineering Group
· Agile coaching for a
Ruby-on-Rails company in transition to more Agility. (Scrum plus XP
practices). Advised the team and owner.
Prepared summaries of practices.
Company: ELC Technologies.
· Created application
to automatically extract and transform automotive specification data, as part
of an extract, transform, and load (ETL) process. Created a Python application to read Excel
spreadsheets (workbooks with multiple sheets), and transform the data to the
needed form and load the database. (Scrum project plus XP testing &
refactoring.) Company: Bosch, Automotive
Diagnostics
· Create automated test
frameworks for an important Visual Basic 6.0 product. After assessing existing
frameworks, created a simple unit-test framework used on the class/function
level and subsystem level. Added over a
1000 tests, and helped refactor the code to help an important new feature
set. Added system-level test mechanisms
for regression testing. Created Python
scripts to validate structure and content of an evolving SQLite database. (Scrum
project plus XP testing & refactoring.)
Company: Bosch, Automotive Diagnostics Division.
· Server
optimization. Compare current Java
solution to a C++ implementation. Created the C++ version and ran performance
benchmark tests. Extreme Programming
(XP) approach. Company: EZX Inc. (http://www.ezxinc.com/) Industry: Financial trading infrastructure.
· Architecture and implementation for
the first data-driven approach to handling specification information used in
Crash Data Retrieval (CDR). Help the
team integrate this new approach in a very iterative way. Created a unit-test
framework and added numerous automated unit tests on both the class level and
the subsystem level. Plus Agile coach re planning, estimating, unit and
functional tests, project management. (Scrum project plus XP testing & refactoring.) Company: Bosch (http://www.bosch.com/) Group: Automotive
Diagnostics.
· 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, Follow-on
projects included porting C# lessons to C++. (Extreme Programming)
· Enabled a C++ application
to interact with a SOAP web service to get special automotive-service
information. Additional features have been added as requested. (Scrum project
plus XP testing & refactoring.)
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. (Scrum
project.)
· 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).) (Extreme Programming project)
· Evaluation of
development tools on iPhone versus Android-based mobile phones for use in a
monitoring-and-control application. Client: Bosch Diagnostics
· Added error-status
information to user-space drivers in embedded Linux monitoring systems for a
commercial solar-energy (photovoltaic) company. (SunEdison)
· Built simple web
sites. (e.g. www.worldsfare.com, www.tellmewhen.co, 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 etc. Plus, working on a number of software product
ideas. Tools: HTML, Javascript, CSS, Python
· Software
tools/technologies: C++ (+ STL, Boost, templates), Java, Python,
C#, Linux, Bash shell, gcc/g++, gdb, make, cmake, ctest, chroot, XML-RPC, Javascript, JQuery,
Coffeescript , Ruby, HTML, HTML5, Eclipse, MS Visual Studio, Windows
NT/2000/XP/VISTA/Windows 7, Mac OS X, Android, iPhone, Subversion, SOAP,
gSOAP, soapUI, COM, XML schema design, Ruby, Poco, D-Bus (dbus), Git, SQL,
SQLite, etc. See also Client projects
& comments...
2013 - 2014
Principal Consultant, ThoughtWorks, San Francisco, California. Helping companies use Agile software
principles and practices, through training, coaching, and consulting. I was
ThoghtWorks’ only technical coach for North America. Client companies include:
Nike, CareerBuilder, Discovery, Carfax, Prudential, Dillard’s, Confluence,
CompareToMarket, Unibet, etc. Trained
& coached around the US and Europe. Created training examples and exercises
in Java, C#, etc, using related web frameworks and tools.
2008 – 2013
Principal Software Engineer, SourceCell (See full
description above for 2004-present, I worked for SourceCell continuously from
2004-present, full-time except where other associations are shown, During those
other associations, I worked for SourceCell part-time on special projects. During 2008-2013, I worked full-time for
SourceCell.)
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.
Agile/Scrum coaching. (Scrum
project plus XP testing & refactoring.)
Moderated a design patterns study group with 7-9
participants. (based on Joshua Kerievsky's model for patterns study
groups.) Defined and developed 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.
Agile/Scrum coaching. (Scrum
project plus XP testing & refactoring.)
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. Agile/Scrum coaching. (Scrum values and principles) 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. In
retrospect, the profilometer project was run in a very Agile manner, with daily
interaction between the person playing a Product Owner role and me as the
developer. We created a simple working version and iterated to add new features
as vertical slices through the system, and demoed the progress to stakeholders
weekly. 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. (includes 22 units of Computer Science)
- 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. Carnegie
Mellon University, Software Engineering Institute, (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
- 2015,
May 3-7, Global SCRUM GATHERING® 2015, Scrum Alliance, plus worked in the
Coaches Clinic, Phoenix, Az
- 2015,
April 17-19, Lean Startup Machine Workshop. Mentored. San Francisco area,
CA
- 2015,
April 13-17, ICAgile Agile Coaching Bootcamp with Lyssa Adkins, Michael
Spayd, & David Chilcott, Petaluma, CA
- 2014,
Dec 12-14, Lean Startup Machine Workshop. Mentored and judged it. San
Francisco, CA
- 2014,
Dec 8-12, Lean Startup Conference, San Francisco, CA
- 2014,
November 20-21, Jeff Sutherland’s Certified Scrum Product Owner (CSPO)
course in Boston. (I’m already a Certified Scrum Trainer. But since Jeff
invented Scrum, I felt it was a good opportunity to hear it from the
source, and see how he does the CSPO class.)
- 2014,
November 17-18, Jeff McKenna’s Certified ScrumMaster (CSM) course in
Sunnyvale. (I’m already a Certified Scrum Trainer. But since Jeff was the first
official ScrumMaster, and deeply experienced coach & trainer, I felt
it was a good opportunity to hear it from the source, and see how he does
the CSM class.)
- 2014,
November 15-16, Dr. Sanjeev Raman’s Certified Kanban Foundations Course by
LeanKanban University
- 2014,
November 5-6, Mike Cohn’s Certified Scrum Product Owner (CSPO) course in
Sunnyvale. (I’m already a Certified Scrum Trainer. But since Mike is a key
thought leader Scrum, I felt it was a good opportunity to hear it from the
source, and see how he does the CSPO class.)
- 2014,
November 3-4, Mike Cohn’s Certified ScrumMaster (CSM) course in Sunnyvale.
(I’m already a Certified Scrum Trainer. But since Mike is a key thought
leader Scrum, I felt it was a good opportunity to hear it from the source,
and see how he does the CSM class.)
- 2014,
October 7, “Disruptive Leadership” by Dr. Jeff Sutherland. San Jose.
- 2014,
September 25-26. Jeff Sutherland’s
Certified Scrum Master (CSM) course in Boston. (I’m already a Certified
Scrum Trainer. But since Jeff invented Scrum, I felt it was a good
opportunity to hear it from the source, and see how he does the CSM
class.)
- 2014,
May 21-22, O’Reilly Solid –
Software/Hardware Everywhere. Internet of Things. San Francisco.
- 2014,
May 9, Presenting Data and Information, by Edward Tufte. One-day course in
San Francisco.
- 2013,
May 16-17, Continuous Deployment Workshop in Mountain View, by Industrial
Logic. Timothy Fitz from IMVU.
- 2013,
May 6-8, The Scrum Gathering in Las Vegas
(Scrum Alliance) Also volunteered in the Coaches Clinic.
- 2013,
May 2-3, Train the Trainers workshop, including Sharon Bowman’s Training
from the Back of the Room. At the Scrum Gathering in Las Vegas.
- 2013,
Mar-April, Scrum cotraining with Bryan Stallings CST, Roger Brown CST, and
Mark Levison CST.
- 2013,
Jan 12-14, Certified Scrum Developer (CSD)
- 2013,
Jan 10-11, Certified Scrum Product Owner (CSPO)
- 2012,
Dec 10-14, Android Development Bootcamp, Marakana, San Francisco, CA
- 2012,
Dec 5 – Dec 6, Certified Scrum Master course, Redwood City, CA
- 2012,
Dec 2 – Dec 4, Lean Startup Conference San Francisco, CA
- 2012,
Nov 30-Dec 2, Lean Startup Machine, weekend workshop. San Francisco, CA
- 2012,
Sept. Two eLearning courses:
Microtesting (unit testing in java) and Test-Driven Development (java), Industrial Logic,
http://www.industriallogic.com/elearning/
- 2012,
Sept. 7-9, Lean Startup Machine, weekend workshop. Santa Clara, CA.
Pitched a business idea. Formed a team of five. Conducted four cycles of
validation experiments, over the weekend, with real customers. The team
came in 1st place for best following the Lean Startup process.
(3rd overall, among 15 teams)
- 2011,
Oct. Three eLearning courses: Test
Driven Development (TDD, C++), Microtesting (unit testing, C++), Faking
& Mocking (C++), Industrial Logic,
http://www.industriallogic.com/elearning/
- 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 Introducing 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, Javascript, JQuery, Coffeescript ,
Ruby, HTML, HTML5, C#, Perl, Tcl/Tk, Academically: APL, Awk, Pascal,
Fortran, etc.
- 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
·
Unit test frameworks used: Google Test (Gtest
& Gmock), JUnit, CppUnit, CppUnitLite, Boost Unit Test, NUnit, CppTestKit,
plus a variety of custom and home-grown forms
- Boost
Libraries: shared_ptr, ASIO, Thread, Matrix
- Arduino
development in C & C++.
Including Test-Driven Development (TDD)
- Computer
system administration 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.
SPECIAL INTERESTS
- Help teams learn about
their customers faster and shorten feedback loops, through use of
minimum-viable products, actionable metrics, etc.
- Eliminating bottlenecks,
friction and waste.
- Help organizations use
Agile Lean Scrum methods as a competitive advantage, by empowering
mangers, developers, and testers with a palette of options, pros &
cons, examples, and recommendations.
- Lean
Startup principles and practices.
- Coaching
and mentoring teams to improve business success and development practices.
- 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 acquisition & 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.
ASSOCIATIONS
PRESENT & PAST
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:
- Test-Driven Development for Embedded C, by James Grenning
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’ve
known Kelley Harris for at least
fifteen years. Throughout this time we have compared notes on the evolving
practice of computer programming and especially the demands of complex
programming in a team environment. Within the last year Kelley has
contributed to Smallest Federated Wiki, an open-‐source
recreation of wiki as a single-‐page application. Kelley is
first and foremost a computer programmer. He is comfortable in a variety
of environments and knows how to become comfortable in new and still
emerging environments such as my new wiki. He approached the wiki work
test-‐driven and managed it within git/github. He
identified criteria for the image processing components, found published
algorithms, and then chose and evaluated appropriately simple alternatives
that were still fit for purpose. Kelley is also a methodologist and an
educator. He is respectful of current practice while still interested in
how it can be improved. We’ve had numerous long conversations both about
how it is that agile methods emerged the way they did and how new
developers can appreciate that evolution to its fullest. He appreciates
that all development is situational and that adapting to the situation is
the best way for a coach to deliver value.” -- Ward Cunningham, Founder of
Cunningham & Cunningham, Inventor of the Wiki, and thought leader in
Design Patterns, and Agile principles and practices.
- "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, Creator 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
organization. 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 programming, 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 entrepreneurial
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 cannot 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 envisioning.
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.
- "In 2008 we needed a senior software consultant to
take the lead on various software projects with tight schedules and loose
requirements for our biggest customer. We needed someone that possessed a
wide software skill set, a talent for software architecture, experience
generating system requirements, and strong people skills to interface directly
with the customer. Kelley is all this wrapped up in one. He set the tone
as an architect and senior developer on various projects through a
combination of leadership ability and many years of software development
and process experience. He is currently still working in this role (August
2012) receiving a high degree of satisfaction from our customer. Kelley is
self-motivated and he's always sharpening his software skill set in order
to keep his knowledge fresh and current. Kelley’s desire to take in input
from all team members makes him an excellent team player that always wants
to do the right thing. He carries himself with the highest degree of
integrity."
--Ben Tsuruda, General Manager, Cold Spring
Engineering
· “To whom it may
concern, My name is Andreas Huber and I was heading the Engineering Department
for the Automotive Diagnostics Division of Robert Bosch LLC in North America
between 2008 and 2011. Within this time Michael Kelley Harris was working for
us on a contractual basis in several crucial projects as a Software Architect
and a Senior Software Engineer. Some of these projects are for example: -
Performance and Feature improvements for a Windows based Software product
called Shop Foreman Pro using C++ and ActiveX - Design and Implementation of a
SOAP-Based Interface for a WebService for Diagnostics Service Information using
C++ and XML - Design and Implementation of a new Data Driven Software
Architecture for a product called CDR (Crash Data Retrieval) and Implementation
a Web-Based data collection system for a major Asian OEM. Kelley has a fundamental understanding of
different types of Software Architectures and the ability to apply them in an
excellent way to the given customer requirements. He also has strong
capabilities in finding adequate solutions even in high-pressure situations. He
is always willing to take on leading roles within a team and always focused on
the customer requirements. He is always
seeking for new challenges and is willing and able to learn new things in a quick
and profound manner It is always a pleasure to work with Kelley and I would be
glad if I would have to opportunity to work with him together in future
projects. With kind regards” -- Andreas Huber, Director Strategic Marketing
within Robert Bosch Diagnostics Business Unit
· “Love these tests“ … “I'm really
impressed by the extent to which comprehensive test suites enable this sort of
refactoring, it is liberating….It took me an hour to move from implementation
to unit test. The second tranche of tests exposed my dumb m(x+b) implementation
bug, while confirming I hadn't broken anything else. By mid afternoon I had
added several dozen tests. This just would not have been possible if we had not
taken the time to reasonably structure our code. So today we saw what we set
out to achieve when you first joined us: the OEM makes a major revision to the
specification Tuesday night, and Wednesday afternoon we demo the revised &
tested application. Thank you very much. ” -- Michael Lamboley, Senior
Software Engineer, Robert Bosch, LLC, Bosch Diagnostics
· “Over the past
two years, I have had the pleasure of working alongside Michael (Kelley)
Harris. In my roll of Product Test
Engineer, for the CDR product line, our working relationship began to evolve
further as I discovered Kelley's interest in providing tools and suggestions
for ways to increase efficiency in our test procedures. Most notably, on
several occasions, Kelley has taken it upon himself to use his personal time to
conduct research, develop applications as well as provide consulting
advice. This has been paramount in
reducing time and effort as well as increasing the accuracy of our testing.
Kelley posses a broad skill set which enables him to meet a wide variety of
software development requirements.
Moreover, it is the breadth and depth of Kelley's testing expertise,
coupled with his analytical and problem solving skills, which set him apart
from others. Tools which Kelley has
developed include: Regression Testing - Test ran via the CDR app which analyses
differences between reports generated in various versions of CDR. Differences
are printed to a detailed report which helps users locate differences in files.
This reduces time spent debugging. Besides
time savings, the tool minimizes the risk of releasing software bugs to
customers. Python Tests - Kelley has developed several Python scripts, which
can convert PDF files to text, batch search multiple file formats for
user-defined parameters and print test status reports. These tools have greatly reduced the effort
to verify newly implemented report features and change requirements. Unit Tests
- Developed extensive unit tests, which are run prior compiling beta software
as to minimize risk of introducing bugs. Kelley has implemented countless other
test tools in addition to his daily development tasks. The above-mentioned
items provide a limited example of all, which Kelley has completed while at
Bosch. In short, it continues to be a pleasure to work with Kelley now and in
the future. I have learned a great deal
from his wisdom. Above all, I cannot
thank him enough for his willingness to teach and be a mentor. The lessons he has taught me will carry on
through my career and I will always be grateful for this.“ -- Eric Oglanian,
Product Test Engineer, Robert Bosch, LLC, Bosch Diagnostics
- "Kelley Harris
was a key developer and architect for a system which significantly reduced
time & risks in managing content for an OEM tool project. The
outcome of the project phases Kelley was involved in helped us improve our
overall content management response times demanded by our OEM customers.
We continue to extend the system Kelley helped create for new OEM vehicle
content, and improve our response times even more. Kelley also created an
important web-based data aggregation system. Kelley is respected &
valued by the entire team.” – Bill Rose, -- Product Development Manager,
Robert Bosch LLC
- “I worked alongside
Kelley to facilitate learning workshops and assessments for our customers at
ThoughtWorks. He ranks among the top agile coaches that I've met because
he has the right mix of temperament, experience and teaching-mentoring
posture to help people at all experience levels learn.
As one of the main technical coaches in our
team, Kelley helped developers learn agile development practices and
object-oriented programming. When you've got people remarking that they
‘learned more in two weeks than I could have in an entire semester at
college’ and referring to Kelley as a ‘world-class instructor,’ you know
you're working with the best.” --
Matthew Phillip, Learning and Development Architect, ThoughtWorks
- “Kelley successfully
delivered trainings, hands-on workshops and coaching to important clients
in Europe and in US for ThoughtWorks. Attendees, clients and stakeholders were all delighted.
He demonstrated confidence, deep
understanding and hands-on experience in Agile coding, engineering and
team practices, in OO programming, in OO design and principles, in Lean
Startup and Continuous Delivery, in coaching and technical training and in
consulting.
Working and pairing with Kelley has been
easy and enjoyable. I could always trust and count on his competence,
experience, and professionalism.” – Luca Minudel, Trainer &
Coach, ThoughtWorks