Henry Mackay
B.S. in Electrical Engineering from George Washington University (May 2024) looking for work.
I approach challenges with a blend of self-reliance, curiosity, and a dash of creativity. When there's a real-world problem to solve, I believe in taking initiative and using every available resource. (I’m good at googling) My journey in Computer Science and Engineering has been marked by an unwavering drive to learn and create. I don't wait around; I get things done. As I'm on the verge of transitioning into the workforce, I'm eager to contribute my problem-solving skills and my passion for innovation to the field of C.S./Engineering. Explore my site to learn more about my journey, experiences, and interests, and feel free to reach out—I'm always excited to connect with fellow enthusiasts and professionals.
More About Me
This year I had the honor of accepting Austrian citizenship.Me accepting my citizenship from
the Austrian Minister of the EU.
My Portfolio
Below are a wide variety of projects I have completed for school, for research and for fun.
Automated Growing Environment (Current Project)
The purpose of this project is to construct a container that will maintain ideal conditions for mushroom cultivation. Mushrooms are highly sensitive to humidity, light, and contamination. The process is labor intensive and requires frequent monitoring and specialized equipment. Because of this, mushroom growing is infeasible for most home gardeners. This device is intended to remove these barriers and make mushrooms accessible to growers of all skill levels. At the present time, there are a few options on the market that serve this purpose. This project will be able to create and maintain an optimal environment for mushroom growing in an enclosure small enough to fit on a countertop. Sensors that measure temperature, humidity, and CO2 are collected and sent to a node server, which then processes the data and displays it to a userMicrosystems Lab Documentation
Documentation I have written for my research group at GWU. My precheck documentation has been circulated to other research groups at Brown and other universities.
Layout Automation
This is a python program with a GUI for automated device generation and layout. Most useful for tiling devices.
This is a python/tcl program for iteratively generating device layout.
16mm Film Projector
This is a less formal project I took on for fun.
At the end of the 2023 school year, I rescued a 16mm projector or “photo analyzer” from the dumpster at my university. At this point I knew practically nothing about old school film projection as my audio/video knowledge came from a digital signal processing class. Unfortunately, I could not find a manual online for this specific model of projector, so I had to spend some time learning the fundamental workings of film projection. It was at this point that I realized that although I could hear the motor, the film was not advancing. Thankfully, after disassembling the projector, I was able to preform a simple fix by replacing the secondary belt for the motor. (Thank you eBay)
I found some old 16 mm film in my basement to experiment with, and decided to see if the media already existed in digital form on the internet. As it turns out, some of it does, but I would argue that my digital rendering of “Chimp the Cowboy” (on the left) is superior to the one I found on YouTube. I optimized the lighting as much as possible when recording with my iphone, and further adjusted, sharpened and denoised the video using OpenShot. I attempted to use open source AI tools I found on github, but they all unfortunately outpaced my Thinkpad.
Galton Board WebGL Simulation
A particle simulator I wrote in WebGL for a Galton Board or a "Bean Machine"
Vulnerability Assesment Scorebot
The python I wrote to serve as a general “scorebot” for creating virtual machines to practice for the CyberPatriot cybersecurity competition
Build Your Own Guitar Pedal Workshop
A project I organized for the GWU maker space. Students assembled distortions pedals themselves and learned about signal processing.
Arduino Irrigation System
A fairly intensive project I took on in 2020 to pass time. There is also the archive from the website I had live streaming the plants.
Linux Training Modules
This are a training resources I made in high school for teaching Linux to underclassmen.
Module 1
This is meant to be used on a fresh Linux Machine and it checks and scores students for various tasks. I also included some of the teaching resources I created to go along with the scored training module (slides, lesson plan).
Module 2
Another training resource for teaching Linux.
Mysql Linux Image
A “scorebot” for a Linux image that is setup with vulnerabilities. I used this to help other people on my competitive cyber security team practice. It was a very long time ago, but I was a two time National Finalist for a competition called Cyberpatriot.
In case the reader is interested, the basic format of the competition was finding policy vulnerabilities, backdoors etc in Linux machines over a timed period. The team received a score based on how many of the vulnerabilities they found. The finalists were brought to Baltimore to compete in a live version of the competition with an active red team and the top placing teams won about $50,000.
Thermoelectrics Paper
My final paper for the graduate level nanoelectronics course I took in the Fall of 2022.
Rotary Phone Sound Board
I found an old rotary phone in the trash and decided to turn it into a soundboard powered by a state machine on an Arduino. Dialing each number plays a different sound.
The way these rotary phones work is actually rather intuitive, and their output is surprisingly easy to convert to a digital input. Where as more common push button dial pads usually require multiplexing, the input from a rotary phone can be fed straight into a state machine. When you dial a number on the rotor, all you are doing is generating a clock like signal from a that has as many level shifts as the number dialed. For example, dialing the number “3” pulls back the rotor, which then generates three level shifts which can be heard as clicks from a mechanical switch.
Automated Winter Break Irrigation
Before going on winter break, I used a raspberry pi to automate the watering of my wildflowers I grow from seed. I also used a motion server to monitor their status.
Miscellaneous Programming
Most of the time I write programs to achieve some sort of practical goal. This goal is often silly in nature. I compiled some of them together here:
Capstone Project Timeline