<AboutMe />
Hello! I'm Michael McQuade.
I am a full-stack software engineer working with modern application development technologies such as: TypeScript, Node.js, React.js, Express, PostgreSQL, MySQL, and much more.
I'm available for freelance software engineering and web development work, if you need help with a project, please feel free to contact me.
<Experience />
Parallel Works
August 2021 - Present10 months
Director of Engineering
March 2022 - Present2 months
- Onboard, recruit, and lead team of developers, regular 1 on 1s with team
- Present architecture decisions to customers, facilitate discussions with partners (AWS, Google, Microsoft).
- Actively continue designing, developing, and architecting systems.
Senior Software Engineer
August 2021 - March 20227 months
Legacy Node.js migration
Background: The company was founded in 2015 and had a legacy Node.js stack running version 0.10 of Node, with frontend being delivered using Jade templates. In order to more quickly iterate on web development projects, I proposed and executed the project to migrate the application to modern Node.js and a React.js frontend.
- Designed and implemented processes for CI/CD, dockerizing all services with Dockerfiles, images built and pushed to DockerHub using GitHub actions, and deployed into kubernetes (GKE standard and autopilot) using Terraform.
- Migrated more than 150 routes from legacy v0.10 Node.js to modern TypeScript.
- Utilized NGINX as reverse-proxy solution to map certain content to new frontend/backend and other content to old backend. This provided a smooth transition during code migration process.
Version 2 cloud clusters
Background: Deploying an HPC cluster in the cloud was originally done by utilizing the vendor-specific solutions for each cloud, i.e. AWS ParallelCluster, Azure CycleCloud, and Google Deployment Manager. In order to quickly adopt new features and iterate faster with a small team, we redesigned Parallel Works to create a uniform cluster provisioning process utilizing Terraform on all three major clouds. This feature is now the centerpiece of the Parallel Works product, currently in use by the government organization NOAA for their R&D.
- Actively developed and led development process for version 2 cloud clusters.
- Provided on-going support according to customer demand and developed new features as needed.
- Fully integrated terraform-based cloud deployment solution into Parallel Works platform.
ConocoPhillips
June 2019 - July 20212 years 1 month
Cloud Architect
December 2020 - July 20217 months
Cloud Development Kit (CDK) Construct Library
Background: Most of the resources created within our AWS environment were architected from the console. This makes it hard to repeat the process when other business units want a similar solution and hard for new team members to understand the scope of a solution. In order to solve this, we want to introduce CloudFormation and CDK options to the business units using the cloud. However, it can be quite a bit of leg work to create a resource that is compliant with the various security policies required.
- Created CDK construct library in TypeScript
- Published package through Azure Artifacts
- Library includes importable constructs for common use cases like EC2, S3, ElasticBeanstalk, Lambda, RDS, etc.
- Library compiles to Python, JavaScript, and C# using AWS JSii
High Performance Computing
June 2019 - December 20201 year 6 months
Cluster information aggregrator
Background: During my time in this position, the HPC had over 5,000 compute nodes. With such a large amount of computers, and a small team, it can be hard to keep track of everything. In order to remediate this, I created a software which aggregated data from all 5,000+ machines into a single Node.js cache server and backing database.
- Created Python script which writes relevant system information (cpu usage, temperatures, power consumption, etc.) to networked filesystem every 3 minutes
- Created a Node.js server which monitors mounted filesystem, updating cache of cluster information. Server written in TypeScript.
- Created RESTful api using Express.js which served information directly from the Node.js cache server
- Created "point-in-time" PostgresQL database which has a copy of all information in the cache server, allowing for alternative querying
- Setup an instance of Hasura using Docker, which allowed for GraphQL access to the PostgresQL database
Visual cluster information interface
Background: While the data in the information aggregator I created was easier to access than previously, it still required users to access it via API, SQL, or GraphQL. It would be easier if there was some visual way to interpret the information. Because of this, I created a React.js application which was a visual representation of our data center, as if you were looking at it from a top-down view. You can drill down into individual racks, and then into servers, and see real time information about those servers. The views of the servers are color coded by either power usage, CPU usage, or temperature, so you can easily identify racks or nodes with outliers.
- Created React.js application which has drillable, color-coded view of entire HPC cluster
- Utilizes SWR to poll server for updated information, providing a live updating experience for users
- Secured access to the server using an Apache reverse proxy with LDAP authentication against remote company AD server.
- Created Ansible script to update certificates used for secure access to the domain controller
- Application connects using GraphQL to the backend Node.js caching server
- Entire application written in TypeScript
- Since both frontend and backend were written in Typescript, types were shared between backend and frontend using yarn workspaces
- Created extensive documentation explaining design decisions, how to access data, how to develop the application, and how to update configuration
Foundation Software
May 2018 - August 20183 months
Software Engineering Intern
May 2018 - August 20183 months
Marketing website rewrite
Background: Their marketing website was hosted on WordPress and had been hacked repeatedly, creating a negative image for the company. They asked if I had any ideas and I proposed switching the site to use Gatsby.js, as statically generated sites are inherently more secure.
- Utilized Gatsby.js to improve page load speeds from 6.2 seconds on Wordpress down to 800 ms
- Transitioned site to Netlify CDN
- Setup instance of Netlify CMS, an open source CMS which is powered by Git. This allowed managing pages with the Microsoft TFS.
- Rewrote 40 pages into React.js components and containers, fixing UI bugs along the way
UPS Label Printer
Background: As part of their business, Foundation Software mails paychecks to thousands of customers per week. The process of printing the labels for this was done with Microsoft Word and folders. This project replaced that process with an automated system.
- Created internal label printer application which interfaces with a UPS label printer.
- ETL existing labels from thousands of word documents into a new MS SQL database using PowerShell.
- Bootstrapped CentOS 7 server to host Node.js/Express app to serve the React frontend
- Created Electron version which could access the MSSQL database using Windows Integrated Security (active directory SSO on Windows).
<Education />
University of Houston
Master of Science, Computer Sience
In progress
Oklahoma State University
Bachelor of Science, Computer Science
3.70 GPA
Monterrey Institute of Technology and Higher Education
Full year international study abroad
<Certifications />