My name is Mathew Fleisch, and I am a Senior Infrastructure/DevOps Engineer from San Francisco. I love working on new projects and features, and often times, this means fixing and retrofitting existing products first. Every development team I have worked for, from non-profits to Apple, have all had a finite amount of resources, whether that is infrastructure or developer time. Throughout my career, I have lived by Larry Wall's philosophy and will automate as much as possible, adopting DevOps principles before there was such a title/role. I will try to automate tasks if possible, but if a task requires human input, I will create a tool that can allow someone closer to the data, to maintain it. This philosophy frees up developer time and reduces the amount of communication necessary to complete common tasks within the organization. I am also a firm believer that building stable CI/CD pipelines increases developer velocity and coupled with adequate testing coverage, can increase confidence in secure, scalable production code.
The "Scylla" team at Workday maintains a platform for automating the deployment of the Workday stack on Kubernetes clusters in AWS, GCP and on-prem. My team also maintains a number of custom built Kubernetes operators for service teams to provision cloud resources, like storage buckets and managed databases in each region. The automation to build and deploy the Workday stack uses a combination of Terraform, CloudFormation and Kubernetes. Multiple clusters can be built using this system in multiple regions and is used for developer testing and production environments.
I worked on developer tools in the infrastructure team at Sysdig, to increase developer velocity and productivity. Apart from participating in the on-call rotation for a multi-cloud, multi-region monitoring application, I have helped to migrate, upgrade and stabilize existing tools, and create a few of my own.
One of my first projects, was to migrate an on-prem installation of artifactory/jfrog from an ec2/docker/ebs setup to kubernetes/s3/velero. Upgrading to the latest version of artifactory, copying 1TB of artifacts to a new system, while developers continued to use the service, was challenging to coordinate; however, the outcome was successful, and unnoticed by most developers. This change was driven by cost, as the size and number of artifacts grew, the expensive aws-ebs volume had to scale as well. Using an s3 bucket for storage makes the potential artifact storage "unlimited," but required upgrading to the latest version to be a supported feature. I created scripts to copy the data from the ebs volumes to s3, verify parity, and practiced to ensure the migration would be unnoticed.
Though Sysdig is primarily a jenkins shop, I created a number of automations with GitHub Actions to plan/apply terraform, build docker containers, and entire Kops clusters, using GitOps principles. After creating "self-hosted" GitHub Action runners, I created a pipeline that would spin up a kops cluster, deploy a secondary gh-action runner, and use that secondary runner to deploy the full Sysdig stack; all triggered by merging to the main branch of a repository. These "on-demand" environments get route53 cnames to expose the web UI on a subdomain tied to a slack username, and kube-config is also made available for developers to access the cluster via kubectl. BashBot, an open-source slack bot I wrote, helps to extend the GitOps style pipeline, by triggering creation/deletion of environments, in slack. Developers type `bashbot dod-build` to create an on-demand development environment, and `bashbot dod-destroy` to tear it down.
Working for a start-up means constantly adapting to shifting requirements while making forward progress. In the back-end services team, I have been able to create tools to automate business tasks and help to retrofit a young application to scale efficiently.
I was hired to work in the marketing department to maintain a sunsetting web application that was being rebuilt by another team. I made modifications to make the application more stable, secure and added logging for debugging purposes. I also expanded my role to help maintain an internal content management system.
The Global Finance department at Apple created and maintained internal websites, to help facilitate secure communication and document sharing. The small team of developers primarily used LAMP Stack CodeIgniter, with some NodeJS/Grunt/Gulp/Sass optimization, for most projects, and Drupal CMS for others. Apart from other responsibilities, I wrote parallelized scripts to recover lost data for another team.
UBM is a parent company of many conferences like Black Hat and The Game Developer's Conference. While at UBM, I developed an application to allow conference attendees to view the speaker schedule and save a personal itinerary. The Schedule Builder application is still being used by many conferences at UBM.
Working with bioinformaticians gave me exposure to big data, automation pipelines and creating user interfaces that are easy to understand. I created web interfaces to enter large lists of genes, and various reports are displayed, based on research done at the Buck Institute.
See the Pen Column Sorting Game by Mathew Fleisch (@mathew-fleisch) on CodePen.Programming Challenges
When I am not messing with computers in some way, I like to play music, read sci-fi/fantasy, travel and eat great food.
Music: I grew up playing music and have played in performing bands most of my life. Most recently I played keyboards and saxophone in the pop punk band Our Vinyl Vows
Science Fiction/Fantasy: My favorite Authors are Robert Jordan, Brandon Sanderson, John Scalzi, Orson Scott Card, Daniel Suarez, James S.A. Corey, and Neal Stephenson. GoodReads Profile
Travel: I have visited half of the united states and went on safari in Tanzania with my wife.
Food: Whether we are in town or abroad, my family and I love to eat delicious food. We will go to restaurants or cook various dishes inspired from our families and our travels.