An experienced software developer embracing judicious design to rapidly produce state-of-the-art software
Two decades of professional software engineering experience across a wide range of environments
Solid computer science as well as classical engineering training and background
Experienced in capturing a wide range of scientific and engineering domain knowledge into expert systems
Experienced team leader, also extremely self-motivated for individual work; excellent communication skills
Inspired and energized by software development challenges
Software Development
Excellent object-oriented analysis, design and programming skills
Knowledgeable application of algorithms and data structures
High-speed development via...
agile development practices
thoughtful design of reusable components
rapid assimilation of new technologies
working "smarter" (auto-generated database code, daily automated building testing and reporting, etc.)
Quality assurance through preventative coding practices, unit testing, performance testing, etc.
Current Software Development Tools in use
in 2009
Windows C++ development with Visual Studio (2008, 6.0), Visual C++, MFC, .NET
Linux C++ development with gcc, autotools, emacs, gdb/ddd, Eclipse and CDT, etc. under various distributions (gentoo, ubuntu, etc.)
My own cross-platform reusable C++ class library
C++ Standard Template Library under Windows and Linux
boost C++ libraries (serialization of objects across Windows and Linux, etc.)
Web 2.0 development with AJAX, DOM, Javascript, CSS; familiar with toolkits like mootools, dojo, GWT, prototype, etc.
Mozilla Firefox add-on development, greasemonkey scripting
Linux LAMP development with PHP, Perl, etc.
Java development with Sun JDK, wsdl and web services using Java 6, Eclipse IDE, JDBC, etc.
Experience with cross-platform GUI toolkits like wxWidgets, Qt, Swing, Flex, etc.
Experience with gaming development and 3D modeling tools (Direct X, OpenGL, SDL, UnrealEd, OGRE, Torque engine, Maya PLE, Modo, gimp/Photoshop, Wings3D, etc.)
ABB
Inc.
Developer, Distributed Information Systems
April
2001 - present
The NM-DMS department develops a graphical information system that allows management of large power utilities' electrical network distribution systems. The software not only manages customer calls, outages, crews, etc., but also maintains a three-phase energized representation of the electrical state of the network, including dynamic linecuts and jumperlines, near-realtime SCADA and AMI integration, and advanced powerflow analysis. Many major utilities in the U.S. and abroad are customers. Michael has worked on several components of the product, but he is lead developer for the CAD-like map display component. The map component was written in C++ using MFC and STL. In addition, Oracle OCI provided database storage and Tibco Smartsockets provided middleware pub/sub messaging. Functionality that Michael designed and implemented in whole or extended from the beta-level product of 2000 includes:
Performance enhancements
Enhanced the
performance to best-in-class levels. One large customer's entire
9-million-object network can be loaded at once and dynamically
zoomed and panned. Includes a double-buffered display, a cell-based
object filtering mechanism for smooth operation at all scales, and a
dynamic node-reduced network for fast drawing when zoomed out to the
full map.
SCADA realtime analog display
Added a
performance-enhanced double-buffered drawing layer to display SCADA
realtime analog values like voltage, current and power, color-coded
by SCADA quality. The gui subscribes to all analogs visible within
any view, updating the subscription as the user pans and zooms. At
full zoom, 1800 points were updated every second without issue.
Advanced Metering Infrastructure (AMI)
display
Updated the display to include AMI-generated information.
The external AMI interface sends information to the gui, which has a
variety of ways of summarizing the information on the display.
Unbalanced loadflow server
Wrapped
unbalanced loadflow expert system, which calculates per-phase
powerflow in even the largest complex electrical networks, into a
server mode that runs continuously, summarizing violations that
exceed allowable tolerances.
Dynamic symbology and annotations
All
symbology and annotations can be configured to declutter at given
zoom levels. The result is a map that gains detail as the user zooms
in and simplifies as s/he zooms out.
Multiple view support
Unlimited number of
views of the network are available. View types: geographic,
schematic, site, auto-schematic, zoom overview, simulation.
Zoom overview
A bird's-eye view of the
map that allows zooming and panning of the corresponding main view.
Auto-schematic
A subset of the network
can be dynamically selected, and a non-overlapping schematic layout
can be automatically generated on the fly.
Custom coding for every large customer
Each
large customer requires development of some custom features. During
analysis and design, Michael ensured that new functionality was made
as generally useful as possible for merging into the baseline
product.
Automated build-and-test environment with daily web reports for all components; used Perl to scrape build and test results into an HTML report; the report summarized errors, with expandable sections containing full build and test logs
Michael has submitted over 1000 code submissions, big and small, over the course of 5 years.
Utenzi
Windows
Developer, Research & Development
November 2000 - March 2001
R&D developed the CXFS Filesystem (aka “Charon”), a cross-platform distributed file system, to allow synchronization across the service provider's multiple locations. CXFS was first implemented as a Unix filesystem supporting Solaris, Linux, BSD, HPUX, etc.; Michael was involved in taking the filesystem to the Windows platform:
CXFS required binary compatibility across platforms, while maintaining the user-interface "feel" of the native OS
Abstracted the Unix code base as needed into platform dependent and platform-independent modules
Updated platform-independent code base to be cross-platform with Windows
Provided Windows implementation of platform-dependent code using VC++ and MFC:
COM library to host tools in the Microsoft Management Console (MMC)
MMC-hosted formatting of CXFS volumes
MMC-hosted editor of the contents of CXFS volumes
Software Development Lead
April 1996 -
September 2000
Michael led the software development team in developing a truly state-of-the-art software program, designed from the ground up, to capture mining engineering expertise and provide results in easy-to-understand productivity reports. The product was completely object-oriented from the first design session, with all code in C++. The interface included MFC and custom controls and views. The team's goal was to complete an earthmoving engineering expert system with the following features:
Minimal information from equipment manufacturers' simplified "glossy specification sheets" was expanded through reverse-engineering into a complete component-based simulation of the machine
The machine could then be driven on a virtual mine site to predict production and ownership and operating costs
Rigid and articulated haulers, loaders and other types of mining equipment were modeled
Modeled components included body, frame, engine, torque converter, gearing, linkage, tires including tread detail, soil, road profile, etc.
Mining operation details were fed along with the wide number of variables involved into a Monte Carlo style simulation that produced clear easy-to-read productivity reports
Earlier work included development of software that used fluid mechanics to automatically size the plumbing of fire sprinkler piping, and proof-of-concept software to balance hauler and loader usage across a fleet, minimizing the equipment required for a given multiple-phase production schedule.
A better Software - wiki
- blog
Owner
1994
– present
Contract and personal projects include Firefox add-on development, a MythTV media center plugin, a data-driven MP3 player, a corresponding server, several LAMP-driven web sites, several Windows applications, etc. See the project examples site for more details.
Epi-Systematics, Inc.
Software
Developer
April 1994 - April 1996
Michael was a core member of a software development team of three. The team worked on an expert system in the field of infection control. The project included extensive relational database design and programming. More details...
University of Florida
Gainesville,
Florida
August 1990 - December 1990
Completed Graduate-level Civil Engineering and
Computer Science classes
Attended for one semester to finish the
last few credits required for VU degree closer to home
Valparaiso University
Valparaiso,
Indiana
August 1984 - May 1989
Completed the following degrees and programs at VU:
Civil Engineering BS
Computer Science minor
Cooperative Education Program participant (one semester, two summers)
Humanities Honors College Associate Degree
Overseas Study Program participant (one semester)
University of Florida
Gainesville,
Florida
Summer 1983
Attended program for high school students to assist in graduate-level work; involved in fluid dynamics studies
Edison Community College
Fort Myers,
Florida
August 1982 - May 1984
Enrolled in college coursework during last two high school years, full-time during senior year
Cypress Lake High School
Fort Myers,
Florida
August 1980 - May 1983
Valedictorian of the 350-member class of 1984
217 Ramshorn Ct
Holly Springs, NC 27540
Home
(919)577-6135
Cell (919)753-5539
Email m@thedigitalmachine.com
from LinkedIn.com
“Michael was instrumental in pushing our product forward. His technical skills put him in the top of his field- he increased application performance/capability by an order of magnitude. Also, during requirements analysis and design, he always proved insightful, ensuring new functionality improved the baseline product for all customers. Definitely a great team asset.” July 30, 2009
Bill Boswell, Engineering Manager, ABB Network Management
managed Michael at ABB, Inc.
“Michael is a flexible, gung-ho developer who really fits in well with the team he is on. He takes the initiative to learn what he needs and apply it quickly and efficiently to whatever problems he is solving. At Utenzi, he began making positive contributions in short order on our filesystem project, rapidly understanding both the overall system design and the existing code. He provided much-needed expertise as he led development of the Windows management tools for the product. Anyone who hires Michael will get a talented developer, a hard worker and a nice guy.” August 9, 2009
Michael Rothwell, Director, Research and Development, Utenzi
managed Michael at Utenzi
“Mike is a very smart, very creative programmer with a passion for software development. He devours new technologies and concepts with enthusiasm. Mike is always looking for the best solutions to problems while keeping the needs of the business in mind. I would love to work with Mike again some day, and would recommend him for any position he is seeking.” August 26, 2008
John Carpenter, Senior Programmer / Analyst, Accelerator Software
worked indirectly for Michael at Accelerator, Inc.
“If it can be done on a computer, Michael can deliver. He can program any application in any programming language on any platform. He writes clean, concise code that is well documented and debugged. It just works. I will hire Mike again for my next project.” August 9, 2009
Top qualities: Great Results, Expert, Creative
Dan Miller
hired Michael as a IT Consultant in 1999, and hired Michael more than once
Family fun with my wife Andrea and daughters Reiley (13) and Wren (10); soccer coach; environmentalist (bike commuter, vegan, etc.); PC and board gamer; books/movies/music; raquetball; etc.
References available upon request