Michael Hale's Portfolio

v.2026-03-10


What Is This?

This portfolio is intended to showcase my work and accomplishments. It contains professional and personal projects, along with a bit about me. For the nerds interested in "what is this site made of?", check out the Technology Stack section below. The to-do list for planned content and features is available on the repository's issues tracker.

Hire Me!

I am open to full-time employment (preferred) but also short and long term contracting engagements. That includes remote or hybrid/onsite in the Chicago area. Key roles of interest include:

  • Leadership - Senior team roles, Director
  • Early stage startups - Fractional CTO
  • Cloud - architecture, engineering, consulting

About Me

Oh boy, where does one begin? I am a technologist, recreational cyclist, roboticist, snowboarder, amateur photographer, foodie, and home-fixer-upper.

An analytical thinker who craves creativity?

A creative who's logical, a resourceful problem solver, and seeks truth in whatever task is at hand.

A team player who thrives in a collaborative environment where the sum is greater than the parts. A leader who inspires and motivates others to achieve their best. A mentor who guides and nurtures the next generation of talent. A lifelong learner who embraces new challenges and opportunities for growth. A passionate advocate for technology and its potential to change the world.

For more about me, the My Story or Resume pages are a good start.

Technology Stack

[ view source ]

This website was built using the following languages and frameworks:

Hosting comes via my homelab to be cheap and easy (no extra hosting bills!). It sits on a Raspberry Pi 4B (4GB) using Webmin/Virtualmin - a longstanding solution in my personal toolbox for hobbyist, non-cloud oriented services. The general pipeline is as follows:

  1. Builds and tests kick off automatically on code push.
  2. Upon successful build, the Docker artifact is pushed to GitLab's container registry.
  3. The container is pulled and managed by Docker Compose for easy orchestration and deployment.
  4. The site is accessed via an Apache HTTP reverse proxy which serves the container's Next.js application.
  5. This, and all other containers on the server are checked daily and automatically updated with Watchtower.

Final hosting to-do:

  1. Serve the site through AWS Global Accelerator so as to not expose the server directly.