Thomas Hansen

Computer Science, Electrical Engineering

Hi, I'm Thomas Hansen. I earned a double major in Electrical Engineering and Computer Science from UW-Madison in 2018, and earned my Master's in Electrical Engineering studying autonomous vehicles and machine learning in 2023. I love working on hard problems, and have worked for two startups and Odyssey Space Research in the past. Most of my experience is in aerospace flight software, machine learning, and robotics.

Parent Controls Win, Inc

Founder

A child monitoring software that users AI and parental-defined filters to filter content, with an emphasis on social media and political content. The monitoring software worked by running all of the child's internet through a Wireguard VPN to our server, where we ran a man-in-the-middle proxy to break the TLS and see the content. Inappropriate requests were stopped, and incoming content was removed in-line. Content was then re-encrypted and sent on its way.

Website: https://parentcontrols.win

    Skills used:
  • MobilNetV2 (image classifying)
  • BERT (text classifying)
  • mitmproxy (man-in-the-middle proxy)
  • Wireguard VPN (embedded and server)
  • Python
  • .NET 7/C#
  • Elixir/Phoenix Framework
  • Pow Authentication

Master's Thesis

Research

My thesis was titled Towards Supporting End-to-End Learning Inside a Hardware-Software Infrastructure in Robotics. It built off of my work in SBEL with the Autonomy Research Testbed (ART), where I designed an end-to-end reinforcement learning algorithm to train a vehicle to drive in simulation, which could then be translated into real life.

    Skills used:
  • Project Chrono
  • ART
  • Python/C++
  • ROS2
  • Proximal Policy Optimization
  • Computer Vision
  • Docker/Docker Compose/ATK

Simulations Based Engineering Lab (SBEL)

Research Assistent

While obtaining my Masters degree in Electrical Engineering I worked in Dan Negrut's lab working with Chrono, a physics based simulation environment, and our autonomy research testbed, or ART. ART contained an autonomy stack which could be run both in real world and in simulation (called digital ART, or dART). Here we worked on a number of projects including MPC control, GPS simulation, and end to end autonomy.

Odyssey Space Research

Flight Software Engineer

I worked for Odyssey Space Research on a Space Force contract through MEIT, where we worked on the H7/H8 satellites which were eventually attached to the ISS. You can read about their launch here as well the press release.

    Skills used:
  • Core Flight System (cFS)
  • C
  • SPI/Serial
  • Hardware testing
  • Confluence/Bitbucket/Jira

Tivan Seabed Mining Documents

Startup

Founded with Michael Zhou, we aimed at using autonomous system to mine rare earth metals used in battery production from the pacific. Originally we wanted to partner closely with my cofounder's parents who owned a number of refineries in China, however as the trade war progressed that fell through. We were eventually unable to secure investments from other sources and shut down.

We produced a variety of documents and hardware models for the startup, including a website, financials, business canvas, VC lists, slide deck, and a business plan. In hindsight there are a number of things I wish I could change about these, however for history's sake I've decided to upload them as is.

Autonomous Car Communications paper for ECE707

Course Project

This was a paper a partner and myself wrote for our ECE707 course, where we created a system for cars to communicate using the ultrasonic speakers already on the cars. The purpose of the system is to act like a more advanced blinker, where nearby cars will get messages about basic intents of the cars nearby, similar to turn signals, but with more advanced functionality.

    Skills used:
  • Signal Processing
  • STFT/FFT
  • Ultrasonic Communication
  • Matlab
  • Audio Processing

Associate Software Developer (Co-op position)

Sentry Insurance

This is my current position where I'm working in Madison mainly on data pipelines. Projects include working with Kafka and Kibana to find packet errors and figure out how to reduce their occurance.

    Skills used:
  • Kafka
  • Kibana
  • SMARTS
  • Java/JSP

Julia Routing Optimization project

Class project, CS524 at UW-Madison

This was a class project completed by myself and a few other classmates (Yullia K, Julian N, Zuf W.) where we constructed an optimization model to find the optimal location to place datacenters based off server cooling/maintence costs and maximum allowed latencies. We primarily used a Mixed Integer Model (MIP) to obtain the final cities where the data centers would be built, as well as

It was submitted for CS524 (Intro. to Optimization), where we received an A on the project overall. You can view the project here (unfortunately we had issues getting the internal links to work when the Julia .jl code gets converted over to latex, however the content is still there)

    Skills used:
  • Julia
  • MIP and LP optimization models

Theremin Project

Class project, ECE370 at UW-Madison

We built a Theremin, based off of course designs, using surface mounts, soldering, and testing it. Additionally we built another one using a software called LTSpice, which allowed us to predict expected values and then compare what we were seeing with an osciliscope. You can view our final report here

    Skills used:
  • Surface mount soldering
  • Through hole soldering
  • LTSpice
  • Oscilliscope

A look into Security Issues in P2P Networks

Class project, ECE537 at UW-Madison

We wrote a paper based off what we precieved as some of the most significant security threats to peer-to-peer networks, which included both traditional P2P networks such as torrent as well as more recent networks such as blockchains. This was written my sophomore year in college.

You may view our final paper here.

    Skills used:
  • P2P Networks
  • DDoS/DoS
  • Network Security

Spooky Author NLP and LSR

Class project, CS532 at UW-Madison

My Junior year of college I took a machine learning course where we wrote a project in Matlab that tried to identify different horror authors based on their style of writing. It was based off a dataset from the Kaggle Spooky Author Identification compeition. Here we used Natral Language Processing (NLP) and different linear regression models to try and identify which author wrote which piece of writing.

You can view the project here.

    Skills used:
  • Machine Learning
  • Matlab
  • Natural Language Processing
  • Linear Algebra
  • Regression Models

Epub Compiler and stack

Personal project

There are three parts to this project. Originally I wrote a Java compiler to take a number of text files and convert them into a readable .epub file, which is availiable on my github here. Later I wrote a site to help guide you through the process of developing an epub file and what are in the contents of it. Finally I plan to build a full markup language to compile the markup into an epub file, however I haven't finished the compiler yet. The previous two projects are available on my github if you'd like to view them.

    Skills used:
  • .epub file knowledge
  • Text parsing
  • Java

Libpre

Personal project

This was one of the first sites I ever made that used AWS and Heroku. It was an image hosting site, where users could post images without creating an account, however it tracked their IP so that images that were posted from their computer would remain in a queue for a while if they needed to go back to them to get the links. The backend was made with RoR and it compressed images before saving them to save space. I never ended up trying to publish the site fully due to concerns with advertising/market dominance by other companies, and not being able to compress and share gifs how I wanted, however the code is still available here

    Skills used:
  • AWS
  • RoR
  • Paperclip for compression