avatar

Mike Schinkel
Senior Software Engineer specializing in Go, Kubernetes, and CI/CD

Work Experience

NewClarity Consulting, LLC
January 2007 – Present
Owner
Highlights
  • Specializing in Go development with Kubernetes and automating CI/CD build systems
  • 10+ clients over almost two decades
  • Developed and released numerous open-source software projects
  • Currently working on PrefsCTL for managing Apple user preferences
Five9
August 2024 – October 2024
Contract Go Software Engineer
Highlights
  • Developed External DNS Provider in Go for Five9's internal proprietary DNS
  • Developed CLI for interacting with Five9's internal proprietary DNS
  • Developed tests for CLI and External DNS Provider
Technology Association of Georgia — Data Science SIG
November 2023 – March 2024
Database Engineer (Pro Bono)
Highlights
  • Prepared TAG client's data to be analyzed by Data Science competition participants
  • Worked with TAG's client to understand their business and desired outcomes
  • Exported SaaS data from QuickBooks, Salesforce, event management solutions
  • Wrote Go program to convert QuickBooks reports to CSV formats
  • Imported and consolidated data into a single Sqlite database file
  • Cleansed and related data to allow for accurate analysis
  • Anonymized data, removing personally identifiable information (PII)
  • Coordinated with contestants to understand to DB to allow them to compete
SingleStore
August 2022 – April 2023
Contract Go Software Engineer
Highlights
  • Implemented real-time debugging of Kubernetes Operator using Go's Delve debugger
  • Helped to maintain and evolve Kubernetes Operator for SingleStore
  • Developed solution to audit Go app for packages with incompatible licenses
  • Updated and streamlined build process for Kubernetes Operator
HPE
August 2021 – August 2022
Contract DevOps & Go Software Engineer
Highlights
  • Worked on HTTP client & server in Go for CentOS-based gateway and Windows Server-based client for the collection of machine status and SQL Server perf metrics
  • Built Jenkins jobs using Bash and Groovy to create CentOS-based RPMs and Ubuntu-based ISOs and OVAs
  • Automated deployment to Frog Artifactory using vCenter vSphere CLI running on VMware VM
  • Created Windows Server 2019 VM w/Packer for dev & test of Go-based Windows agents running locally on macOS, and wrote Packer plugin in Go
  • Implemented automated build and evaluate process for VMware OVA running Ubuntu on VM in vCenter triggered locally or GitHub Actions on:push
  • Implemented process orchestration for product build process of Ubuntu ISO then OVA for use in VMware/vSphere/vCenter
  • Implemented upload to jFrog Artifactory and push to Amazon AWS S3 for ultimate download by customers managed via GitHub Actions
LinkedIn Learning
August 2021 – September 2021
Contract Skills Assessment Test Author
Highlights
  • Worked with the team from LinkedIn Learning and two (2) other authors
  • Collaborated on the scope and outline for Go skills assessment test
  • Authored 50 Go skill-related questions
  • Coordinated with reviewers to make requested changes
Resideo Technologies for FrontSide
February 2021 – May 2021
Contract Go Software Engineer
Highlights
  • Developed pattern for client to use for Go-based microservices
  • Developed CLI to support a Node JS-based Backstage developer portal implementation focusing on testability
  • Used the Echo web framework w/OpenAPI code gen for microservice scaffolding.
  • Implemented GitOps w/change management via Github Pull Requests to control jobs for a Jenkins build system
  • Developed Go-based MitM proxy as a test double for GitHub API
  • Integrated Node JS-based Mountebank for additional API testing
  • Diagnosed, remediated and submitted PR for Mountebank's no support of HTTPS CONNECT
  • Implemented pattern for BDD-based testing using Ginkgo and GoMega
  • Developed techniques to validate duplicated string literals throughout a test suite
Various
– July 2022
Prior non-Go/Kubernetes/CI-CD related roles
Highlights
  • Led development teams for clients
  • Developed solutions for clients in a variety of programming languages
  • Hosted various Meetups for both Entrepreneurs and software developers
  • Founded and grew a startup to #123 on Inc 500 within five years
  • Trained programmers professionally for several years
  • ASK if you need more details about these

Volunteer

The Linux Foundation — OpenAPI Initiative
January 2025 – Present
Volunteer
Participating in various working group to help improve and promote the use of OpenAPI
Contributor
Active contributor to various open source projects, focusing on feature improvements and bug fixes
Highlights
  • micromdm/plist — PR #46: Allow `*any` when using `UnmarshalPlist()` (accepted, 2025)
  • sqlc-dev/sqlc — PR #123: Avoid generating empty Go imports statement (merged, 2024)
  • vmware/govmomi — PR #2840: Fixed docs for govc library.info w/-json (merged, 2022)
  • Plus over 100 more, 60 of which have been merged
Davis Direction Foundation
November 2023 – March 2024
Volunteer
Prepared source data for distribution to TAG-for-Good Data Science Competition

Projects

  • PrefsCTL: CLI tool for managing macOS preferences in a YAML file like kubectl for Kubernetes manifests
  • go-sofafeed: Golang package for fetching and parsing the JSON format Simple Organized Feed for Apple Software Updates hosted at sofa.macadmins.io
  • README Merge: GitHub Action, Dockerfile, and CLI tool to allow merging child Markdown docs into one README.md
  • SSOT: Single Source Of Truth CLI utility — Like envsubst, but in-place and with .yaml
  • SaveTabs: Chrome extension paired with local HTTP server for save links along with their tab groups
  • Bash Macros: GitHub Action, Dockerfile, and CLI tool to allow merging child Markdown docs into one README.md
  • go-diffator: Diffator is a Go package to provide a difference string for comparing two Go values during testing.
  • go-testdata-defaulter: Set table-driven test data defaults so that tables in tests only need include data that differs from defaults.
  • go-typegen: Simple Golang generator package for test fixtures.

Contact

Atlanta, Georgia GA 30308 US
678-772-8446
GitHub
LinkedIn
Twitter

Education

Skills

Go 8 of 10
Kubernetes development Goroutines & Channels Microservices CLI tools Testing aws-sdk-go docker oapi-codegen kin-openapi nethttp-middleware sqlc cobra yaml.v3
SQL 9 of 10
DB development 3rd-normal form Query parsing (in Go) sqlc for Go MySQL Sqlite
Kubernetes 7 of 10
Extension development (Go) Debugging External DNS kubectl K3s K3d
Virtual Machines 9 of 10
VMware VirtualBox Tart VM Parallels
VMware 7 of 10
ESXi esxcli Fusion Admin vSphere API Govc CLI PowerCLI Govmomi ovftool
Docker 8 of 10
Docker Compose Alpine Linux Portainer FROM..AS WORKDIR COPY ARG ENTRYPOINT
CI/CD 8 of 10
Infrastructure as Code (IaC) Github Actions Custom Runners CircleCI Gitlab Pipelines Jenkins
Packer 8 of 10
Image building Writing Plugins (in Go) HashiCorp HCL ISO OVA/OVF VMware vSphere VirtualBox Linux Windows
Github Actions 7 of 10
.github/workflow Custom Runners Matrix builds Artifacts Secrets github.workflow github.ref push: pull_request: workflow_dispatch: concurrency: jobs: steps: uses: on:
Git 9 of 10
Github GitLab GitOps GitHub API
Linux 7 of 10
Server-related Bash scripting Debian Ubuntu Cent/OS Alpine visudo nmcli systemctl journalctl avahi suduers.d sshd_config.d
Shell Scripting 8 of 10
Bash Linux macOS
Amazon Web Services 6 of 10
IAM S3 Route 53
Make 7 of 10
Makefile Build processes Task automation .PHONY
jFrog Artifactory CLI 6 of 10
jf rt
Browser Extensions 7 of 10
Chrome Microsoft Edge Safari manifest.json Manifest v3
JavaScript 6 of 10
Alpine JS jQuery macOS JAX
macOS 9 of 10
terminal ITerm2 Bash defaults Javascript for Automation (JAX)
Windows 6 of 10
Powershell scripting ISO creation w/Packer Virtual machines Windows System Image Manager autounattend
Powershell 6 of 10
Pester testing Invoke-WebRequest Invoke-RestMethod Get-Content ConvertFrom-Json Set-Service Install-WindowsFeature New-LocalUser Add-LocalGroupMember $PSVersionTable $Password $Env