An experienced software engineer embracing judicious design to rapidly produce state-of-the-art software

  • Professional full-stack software engineer with UI to backend, cloud to embedded experience
  • Solid computer science as well as classical engineering training and background
  • Experienced team leader, also extremely self-motivated for individual work; excellent communication skills
  • Inspired and energized by software development challenges

Languages
JavaScript C++20 embedded C HTML/CSS/Sass bash Python Swift Kotlin C# Java PHP
Frameworks and libraries
Node.js React Meteor MongoDB Docker Bootstrap PostgreSQL boost D3/vega-lite websockets quicktype.io Babel
Patterns
agile asynchronous/multi-threaded functional programming OOP automated testing continuous integration MVC/MVVM JSON schema defined APIs RESTful APIs DRY separation of concerns reusability 80/20 rule microservices message queues
Tools
Visual Studio Code GCP AWS Proxmox TrueNAS haproxy git GitLab JIRA CMake gcc/gdb Apache Chrome/FF devtools Raspberry Pi i3
  • Deep analysis, design and development experience
    • high-volume load-balanced cloud-based containers and microservices
    • UI/UX design targeting many web, mobile and desktop platforms
    • embedded device development
    • experienced in capturing scientific and engineering domain knowledge into expert systems
    • reuse of best-practice patterns from object-oriented, functional and other paradigms
    • knowledgeable application of algorithms and data structures
  • High-speed development practices
    • agile and test-driven development practices
    • thoughtful design of reusable components
    • continuous integration
    • automated end-to-end and performance testing
    • rapid assimilation of new technologies
    • optimal use of return values, exceptions, assertions, and other preventative coding practices
  • rad-scripts an open-source node.js module for git semantic versioning
  • quick-http an open-source https API server
  • bitpost control panel for my projects
  • Hang The DJ cloud-based music system with web and all-platform clients
  • A better Trader stock trading application
  • Github Michael's github profile
  • Stack Overflow Michael's stack overflow profile
  • Favorites: modern C++, node.js, bootstrap, d3, C ARM development
  • Cross-platform C++11 and beyond with boost, C++ Standard Library, my own reusable libraries
  • Full-stack development of map-based data-driven websites using Play, Scala, leaflet, haproxy, mongodb, cassandra, bootstrap, etc.
  • Cross-platform embedded C development targeting ARM and other small chipsets with cross-compiled libcurl, libwebsockets, zlib, openssl, busyboxy libraries
  • Custom C++ http RESTful server, RESTful client, websockets client written with the boost ASIO library
  • Cross-platform desktop development using C++ and Qt for docking UI, http web services, multimedia playback, sqlite database, multithreading, etc.
  • Android and iOS app development via native SDKs, as well as cross-platform write-once HTML5-based web app development using Jquery Mobile (jQuery, jQuery Mobile, jPlayer, javascript/DOM/AJAX, LAMP backend)
  • Linux C++ development with gcc, CMake/autotools, gdb/ddd, valgrind
  • Windows C++ and C# development with Visual Studio, unmanaged and managed (.NET), Enterprise Library
  • Mozilla Firefox add-on development, greasemonkey scripting, Firebug debugging
  • Continuous integration automation using Jenkins, command consoles built with node.js, bash scripting, command-line building
  • Cloud computing with Amazon EC2 web servers running apache, mysql, PHP, etc.
  • VM usage with VMWare on blade servers
  • Service bus application integration with webMethods, Java and C# web services, Oracle stopros and triggers, etc.
  • Linux use and administration, with Gentoo and Ubuntu distributions, including kernel and userspace compiling and configuration, scripting with python, bash, PHP, perl, software like apache, mysql, Kodi/OpenELEC media center, mediawiki, wordpress, trac, phpBB, and hosting of many websites.
  • Development environments have included: Visual Studio on all flavors of Windows; IDEA IntelliJ+CLion/Qt Creator/Eclipse/sublime/emacs/Android Studio/etc. on gentoo, fedora, ubuntu, arch, centos, RHEL, Raspian flavors of linux, usually using i3 tiling window manager; OS X with Xcode

Bringing digital efficiency to private companies and their shareholders.

  • Michael works on a small agile team doing full-stack development of the company’s flagship financial application. The tech stack includes Meteor (React, Bootstrap, MongoDB), and a private Ethereum-based blockchain.
  • The founders are domain knowledge experts in fintech. The application is developed in an agile style, with constant evaluation of market and customer requirements. The single-language stack allows Michael and the team to rapidly implement requirements. To increase speed further, the team continuously researches best-in-class third-party modules and APIs, integrating them where appropriate.
  • Quality is assured during rapid development through continuous testing, peer reviews, continuous communication via chat, and a strongly-linted code base.
  • Michael also fulfilled the role of Operations Manager to bring a complete continuous-integration environment to the GCP cloud, including build triggers, release management, full automation through a distributed command console, load balancing, and backups, including third-party auditing.
Prometheus Group creates asset management software for large industrial customers worldwide. The software provides asset management, advanced scheduling, permitting and related services. Prometheus Group has been recognized for its superior customer satisfaction, and has acquired funding to build its next generation product.

  • Michael worked as a full-stack engineer with the emerging products team. The tech stack included Spring Boost, React, Xamarin, RabbitMQ, PostgreSQL, and others.
  • He drove development of the site permitting app for the first major U.S. customer, shepherding it from an acquired product to generating millions in revenue in 2018 during an extremely short release schedule. He enhanced the legacy app by wrapping it with Kotlin-based bidirectional RESTful APIs that allowed async access to RabbitMQ message queues.
  • He instituted Jenkins-based continuous integration to create sematic-versioned shippable apps on every commit.
  • He established JSON-schema-based code and API generation to drive compatibility across the legacy, middleware, and Xamarin-based mobile apps.
  • He wrote automated testing and used it to fix bugs and improve quality across the app stack.
Cisco is networking. The Cisco ST&O Adaptation team positively impacts revenue in the US Public Sector by offering software engineering assistance to BUs to accelerate requests, prioritized by revenue. The team supports products for 3 months and then moves on to the next request.

  • Michael and the Adaptation team enhanced several projects at Cisco.
  • Cisco's flagship Unified Communications Manager (CUCM), a product that manages millions of VOIP calls around the world, required enhancement to add the Mobile Voice Access (MVA) feature, which allows a user to call in from a mobile phone and, after authenticating, spoof themselves as their desk phone. Michael added PIN validation and locale handling so that the language provided in prompts could be set to a phone-specific preference first, then a profile, and then a global default.
  • Michael developed automated performance tests in Python, using Cisco’s test framework. The testing was capable of generating hundreds of simultaneous calls.
  • Virtual Telepresence Server (vTS), a part of Cisco's communications suite, has been used extensively for private communications. The team was tasked with enhancing it to meet Federal FEDRAMP certification. Michael worked on heartbeats, server log rotation, and secure remote logging, including logging of Windows and linux system logs to a secure central location using AWS CloudWatch. In addition, he worked with the team to provide auditing of any significant parameter change to the log.
  • Ongoing education included a DevOps "unconference" where Michael led a session on optimized git workflows, an OpenShift lab with hands-on management of Docker and Kubernetes containers, internal discussions on the application requirements for a best-practice microservice architecture, and constant learning in the areas of security, including the latest TLS ciphers and CVE security risks.
Causam's mission is to create software for the emerging market in transactional energy. As the power grid becomes deregulated, decentralized and distributed, opportunities exist for smaller generators to disrupt the generation monopolies of existing utilities and feed energy back into the shared grid. Causam is a startup creating software to empower this transformation. Causam split off from Power Analytics (see below).

  • Fully engaged with small startup team to architect, design, and implement a map-driven website based on leaflet and Play!, an AWS-enabled back end supporting high volumes of traffic, load balancing through haproxy and kafka, nosql database support through mongodb and cassandra, and IoT software to securely ingress meter data from devices strategically distributed on the power grid.
  • Established aggressive browser caching of versioned html, js, css, image assets. This included a Javascript tile caching mechanism for pans and zooms in the client map, following OpenStreetMap data tiling patterns, and a Scala backend to serve the tile assets by timestamp of the most recent change within the tile data.
  • Created an embedded device library in C that was pushed to a variety of small SoC devices like ARM-based Verizon cell modems. Leveraged libraries included custom busybox builds, libwebsockets, openssl, libmodbus and libcurl. Testing proved the ability to deliver secure, frequent, consistent meter data using local buffering; network outages did not affect SLA metering.
Power Analytics has two major offerings, Design Base and Paladin. Design Base allows engineers to design the layout of the electrical systems of large military sites, FAA facilities, data centers, etc. Electrical simulations can be run using the one-lines. Paladin uses Design Base electrical models and adds realtime monitoring using metering devices at the site.

  • Added features and fixed bugs in Design Base in C++ and C# using Microsoft Visual Studio and an Autodesk library that handles the underlying CAD layouts.
  • Added features and fixed bugs in Paladin in C++ and C# and ASP.NET and node.js. Created customizable widgets made with SVG and javascript for use in the web UI, which uses layouts that can be designed to model the physical layout of the site. Worked with the device gateway driver plugin code in C and C++ and C# to ingress from many different meter sources.
  • Established an agile development process to manage the two product teams, acting as scrum master for daily scrums and a JIRA-driven sprint cycle.
  • Established continuous integration processes to enable regular production quality semantic-versioned releases of both products from a central shared repository. The new product release cycle resulted in stable, feature-filled, and profitable releases throughout Michael's tenure.
Toshiba Global Commerce Solutions acquired the majority of IBM's point-of-sale business and now owns, develops and delivers the ACE SUREPOS point-of-sale systems to major corporations like Whole Foods, Walmart, Bed Bath & Beyond.

  • Added new features and delivered bugfixes in C++ for the base system as well as customer-specific overlays. The codebase has remained extremely stable throughout continuous expansion, via the use of a layering system based on templates, inheritance and factory patterns.
  • Worked in the large lab at RTP to deliver builds to the lab equipment that included gas pumps, sales kiosks and fully simulated grocery aisles. Builds are cross-compiled for the IBM 4690 OS and installed via USB drive.
  • Managed the contributions of a remote team in Bangalore, India. The remote team did not have direct access to the hardware, but worked with Windows builds for POS simulators. Michael provided training, prioritized and gave assignments, reviewed, corrected, and integrated contributions, performed lab testing, committed the code to Toshiba's code repository, and generally managed the team.
A small distributed team developed a next-generation outage management system for a larger development firm's power utility client. The software included a web-based Kendo UI, core services provided by the Play framework with Java and Scala, backend servers written in C++, a Cassandra database, and Solr for searching.

  • Chief architect and lead developer for the backend servers, written in modern C++11 and leveraging boost’s graph library, which performed outage analysis on utility powergrid networks. The system was capable of supporting massive networks of millions of energized nodes and lines. The server applications were multi-process and multi-threaded, synchronized via internal web services.
  • Components communicated using RESTful JSON-based APIs for component-to-component communication and easy web-based testing, SOAP for connection to existing external systems, and http chunking for realtime streaming of events. The component-based approach allowed the entire system to be scaled out to handle the extremely large data sets of the biggest utility customers. With this design, the server apps can be distributed across multiple processes on one machine, or using multiple machines, or any combination. The outage analysis logic was driven by coordinating with experts in the field to create complex but precise requirements specifications.
Duke Energy (which acquired Progress Energy) is the major utility for the Carolinas. Progress Energy was using two major software systems at the time: Telvent's Distribution Management System (DMS used for load flow analysis and smartgrid functionality) and ABB's Distribution Management System (OMS used for outage management).

  • Technical lead on creating a real time integration between the DMS and OMS systems. The two systems were not designed to communicate with each other directly, each maintaining separate models of Duke Energy's electrical network, but both systems provided a means of custom access. Telvent provided web services to programmatically access its DMS, and ABB's DMS was exposed through Oracle APIs.
  • Wrote custom software to integrate the disparate systems, using the following technologies: .net web services, webMethods service bus providers and consumers, custom webMethods flow and Java services, perl web server exposing web services, Oracle stored procedures and triggers. The entire DMS-OMS integration was designed, created, implemented and tested by Michael.
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.

  • Worked on several components of the product, 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.
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.

  • Ported 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
Accelerator developed a state-of-the-art application, designed from the ground up, to capture mining engineering expertise and provide results in easy-to-understand productivity reports.

  • Minimal information from equipment manufacturers' simplified "glossy specification sheets" was expanded through reverse-engineering into a complete component-based simulation of the machine, using object-oriented modeling
  • 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.
Contract work, as well as personal projects. Personal projects include an open-source https API server, an open-source node.js module for git semantic versioning, a stock trading application, a cloud-based music system with web and all-platform clients, Firefox add-on development, several web sites, several Windows applications, etc.

  • See the project examples section for more details.

Stanford University
MOOC Online Algorithms coursework through Coursera.org

University of Florida
Gainesville, Florida
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

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
Attended program for high school students to assist in graduate-level work; involved in fluid dynamics studies

Edison Community College
Fort Myers, Florida
Enrolled in college coursework during last two high school years, full-time during senior year

Cypress Lake High School
Fort Myers, Florida
Valedictorian