Justin Hiemstra

Justin Hiemstra

Graduate Student

Madison, WI

About Me

Hi, all! Whatever happens to be bringing you to my page, I’m glad to see you! (umm, well, to see your IP address, anyway)

I’m Justin, a technophile grad student in the department of Electrical and Computer Engineering at the University of Wisconsin - Madison. While that may make me sound like someone who spends all day soldering bits and bobbles onto pieces of perf board (I do that, too), I actually study machine learning and signals processing, a very exciting new-ish field that’s behind lots of the things you love, from spot on Netflix suggestions to self-driving cars. I love this field because it lives at the intersection of all that heavy, theoretical math, which is my background, and applied science – getting all that theory to actually do something for us! It’s also great because it has the potential to transform society for the better in practically uncountable ways (proof is left as an excercise for the reader - Hint: try applying Cantor’s Diagonalization argument, or find a bijection between ℝ), as long as we use it carefully and don’t fire the ethics experts. If you really want to get me excited, try mixing ML with anything related to privacy and digital/physical security. Did somebody say adversarial ML??

When I’m not slogging through my studies, I’m still learning about the world, pursuing that big-picture, well-rounded understanding of life. I won’t list all the ways I try to do this, but a few of them include lots of reading, scuba diving, hiking/camping, tinkering with my 3D printers, flipping the house I bought (feel free to ask), or slowly making progress on any of my many coding/electronics projects.

If any any of this intrigues you, or you think I might be a good fit for your company, please drop me a line! I’m currently accepting all applications 😎

Education

M.S. Electrical Engineering -- Signals Processing and Machine Learning
2020 - 2022 · University of Wisconsin Madison
Thesis: Denoising and Intensity Inhomogeneity Correction of MR Images using Deep Learning
B.S. in Mathematics
2015 - 2019 · Haverford College
Thesis: Improved Brute Forcing with Markov Models
B.A. in Russian
2015 - 2019 · Bryn Mawr College
Thesis: Encryption, Democracy, and the Peculiar Case of Russia’s Telegram

Projects in Progress

UnStucco ⟵ Link to Github Repository
While working as a lowly stucco tender to supplement income during the summers between college, I noticed that the closely guarded industry ‘secret’ for finding the correct ratio of dye pigments to match the color of new stucco to the existing was… guess, check, and repeat until that magical ‘close enough’ was obtained. Sounds like an industry that has been around since Ancient Greece could use some 21st-century modernization! Cue the UnStucco, a simple device that’s built on a Raspberry pi with python. When you’re stuck and can’t match your new cement to that old, crumbling stucco, get UnStucco!
PMKID Brute Forcer ⟵ Link to Github Repository
I recently built a Pwnagotchi and decided I wanted a little bit more under-the-hood experience with some of the wifi attacks it makes possible. I had an opportunity to leverage GPU coding during my ME 759 High Performance Computing class and decided to use the project to see how fast I could get a GPU to crack PMKID’s. Compared to the industry standard, HashCat, my program leaves a lot to be desired (including speed, and generalization to different password sets), but the finished project was my own implementation of several crypto libraries and the parallelization of PMKID generation on a GPU.
Automated French Press
Awhile ago, a good friend of mine decided he wanted to build a custom server rack, and that he wanted it to have some sort of peculiar twist. I said, why not build in an automated coffee machine – because what could possibly go wrong with scalding coffee inches away from thousands of dollars in computer parts? And so we started developing one! The goal is to make a device that grinds coffee beans, puts those beans in a French press brewing chamber (a chunk of specialty PVC), heats some water to the perfect temp, adds the heated water to the brew chamber, drives a French press plunger, extracts the brewed coffee to a second ‘keep warm’ chamber, and then cleans itself by dumping the grounds. When you’re ready to pour yourself a cup, just turn on the spigot. If that sounds like a lot of moving parts, its because it is – everything from custom-etched PCBs to planetary gear drives and semi-functional 3D-printed gate valves driven by an assortment of stepper motors. Oh, and it’s steam punk, because let’s not forget aesthetics. Eventually we want to find another use for the waste coffee grounds… maybe a soap exfoliant? As for integration into the server, it lives in the rack, but in a separate, sealed compartment.

Skills

Python
Machine Learning
C/C++
3D Printing
FreeCAD
Final Cut, Premiere Pro
Russian

Hobbies

  • • Machine Learning
  • • Hiking
  • • Scuba Diving
  • • Reading
  • • Finance
  • • Raspberry Pi
  • • 3D Printing
  • • Mycology!
  • • Fixing my beloved-but-unreliable Subie just about every month when it breaks down 🙃

Eggs

You’ve made it this far, but how far do you care to go? For your fun and enjoyment, or if there’s a rainy day and you just don’t have anything better to do, I’ve decided to bake a few easter eggs into this delicious cake. Can you find them? As of this update to my site, there’s only one, but there are more to come! Time for an egg hunt…