HouseHappy April - October 2019
Implemented new features in a mature monolithic Elixir Phoenix Framework based application, as well as a React.js front-end client* and a React Native mobile application.
Notably I optimized the creating of reports. Long running reports could generate memory leaks, breaking the beam. I converted it to a streaming process and implemented the ability for a user to cancel streaming process using ETS.
Fuel Medical - Full Stack Developer May 2016 - January 2019
Coded software applications on a small team developing an application which managed the many aspects of running the allergy side of an ENT medical clinic, including sending and receiving Electronic Medical Records, electronically signing documents, tracking data related to) patient demographics, testing and treatment.
Implemented a host of new features involving every aspect of the LAMP stack. Maintained and managed cloud technologies when necessary. Innovated on team processes and communication.
Optimized and improved a legacy enterprise app
- Managed Google Cloud VM instances with the Google Cloud SDK and Chef for large scale streaming practice conversions.
- Implemented functional programming paradigms in a PHP application dominated with overloaded controllers.
- Implemented unit testing in the app using PHPUnit.
- Championed and deployed the use of requirements documentation when creating new features yielding more robust features with many fewer edge-case errors, which allowed for more time for feature improvement and heavy refactoring.
Front end work
- Developed a prototype testing tooling for the front end.
- Implemented webpack for building frontend libraries.
- Worked with UX/UI designer to generate wireframes for UI interactions to achieve customer buy-in, allowing for easier agreement
- on development and implementation of new features.
Notable tools I created at Fuel Medical
Activity Logger Go service - systemd daemon - PHP client - MySQL The original implementation had HIPAA required activity log in same MySQL db as the functioning app. As the application grew the size of the log made the db bloated and less manageable. I created a separate Go application to listen on a secure endpoint and write the log to an ops configurable database, as well as adding the logging code in the PHP application.
Posty a cli tool
Created this prototype app as a kind of “one day build.” Given a csv file, and a config containing the correct headers and cookies, the app will http POST to the endpoint for every row in the csv. Useful for batch altering many records through the API.
Docker environment refactor
Our development environments were monolithic, highly-customized LAMP stacks running on a CentOS vagrant environment. There was high coupling in all aspects of the system, making evolution of the architecture very difficult. I implemented large portions of, and collaborated with, Ops to convert to a Service Oriented Architecture using Docker. Refactored many and disparate bash scripts into a Makefile interface, using targets to ensure unit tests were being run consistently, or to initialize a new instance of the app on the developer’s environment. Refactored or made Docker variations of the GNU make targets, moving the appropriate environmental variables to their respective services.
PDX Code Guild, Portland, OR Teaching Assistant
Umami Media - Owner - Producer - Director
October 2006 – August 2015 Managed complex productions for both filmed and animated media. Won numerous creative and technical achievement awards for excellence in visual effects and production.
Selection Of Projects
Maslow (https://github.com/umamiMike/maslow) - A tool to help people manage their Internet habits.
The administration, built in React, allows a user to select from sites on the Internet, manage their devices. The Go service, living on a DD-WRT enabled router, utilizes the date to create appropriate iptables rulesets. They are connected via firebase, acting as the datastore.
db-compare (https://github.com/umamiMike/db-compare) - Go service with Vue.js front end
A prototype tool in the vein of phpMyAdmin but configurable for multiple db connections which allows multiple databases queries in the same view. It was useful to query multiple instances of cloud application and compare data integrity. Oregon Historical Society “Oregon Voices” (https://www.ohs.org/museum/exhibits/oregon-voices.cfm) - Touch Interface Kiosks and
Poll, Flash PHP and MySQL
May 2012 - Umami Media - Sockeye
The exhibit called for six separate flash based touch screen kiosks for museum exhibit-goers to be able to watch various videos created for the exhibit. There was a questionnaire people could take at each kiosk. Their votes would be taken in by the Flash application in 1 of 6 Kiosks, read into PHP from actionscript, where the vote was saved to a MySQL database. The data was retrieved by final server/screen at the end of the exhibit which would display a rotating series of bar graphs showing the results to date in real time.