Cody Guldner

B.S. in Computer Engineering
University of Illinois at Urbana-Champaign

Interactive Portfolio

Loading

Overview
I love working on many things computer related. I have a special interest in embedded systems, low-level software, operating systems, and drivers. I also have a lot of experience in web development and several web frameworks.
Research

Computer Security Research

During my time as an Undergraduate Research Assistant, I helped to analyze the results of the effectiveness of a TCP addition that my mentor had created.
His addition is similar to the Proof-of-Work concept found in Bitcoin. When clients want to connect to a server, they have to answer a challenge that the server sends them (how many 0s the hash should have), and if they are correct, the client will get access to the server.
My work involved creating daemons in Python to run on the clients and attackers to see how much work they would have to perform in order to get access, and capturing/plotting that data. We found that around 16 bits of difficulty, the attackers didn't have enough compute power (in our test environment) in order to connect to the server, so the clients were then able to connect.
The paper that my mentor wrote is going to be published in June 2019, which you can view here.
Side Projects
Pebble Metronome
Visual Metronome is a metronome built in C designed for the Pebble smartwatch designed to let musicians use a metronome in a variety of ways, including haptic feedback, a moving metronome arm, and a flashing screen. It has customizable colors, can toggle on and off each of the time-keeping methods, and can jump between common time ranges.
The app has been installed 600+ times. You can view the Appstore listing here.
Picture of the pebble metronome watch screen
Tiki-Toki CSV Script
A Python script designed to take a CSV file and format it into the .TKI file needed for the Tiki-Toki timeline software to work. Prevents bugs in the software from corrupting data that you enter into the system, because you keep your data separate from the application.
Stabiliteeth
Stabiliteeth is a tremor-reducing toothbrush designed for patients with Parkinson's, ALS, PTSD, or any disease that induces tremors. It is running on a Teensy, uses 2 servos to allow for stabilization in two planes, and uses a PCB that I designed to connect the electrical components. Our project got Best Real-World Project at the Illinois Engineering Open House 2018.
Picture of the breadboard
Thrmeaux
Thrmeaux is a smart coffee mug designed to help people prevent burns from drinks that are too hot, but also prevent drinks from getting too cold. It features a bluetooth sensor that connects to your phone and displays the temperature in the Android app, with customizable temperature ranges for different drinks. When the temperature goes below the cold threshold, a heating element inside the mug warms the temperature up until it is at the hot threshold, which prevents the mug from turning the heating element on and off right at the cold threshold.
Thrmeaux was a project for the Viasat 2017 Intern Hackathon.
Picture of the Thrmeaux app interface
TLDR Bot
With so many long articles on the Viasat Wikipedia page, it can be hard to know what article you are reading before reading most of the article. So we built a backend server that would run some NLP algorithms to summarize the article into a couple short sentences, so that the user could read our summary, and know whether it will be worth the read!
TLDR Bot was a project for the Viasat 2018 Intern Hackathon.
Bible Previewer
Bible Previewer is a Chrome and Firefox extension created to make it easier to read theological articles without having to separately look up the bible verse references in the articles. The extension searches for any bible references on a page, such as John 3:16-17, and turns the reference into a link, which can then be hovered, and a popup will appear above the link showing the contents of the verse. The link can also be clicked on to be taken to a bible website so that the verse can be read in more context.
Picture of a bible reference popup
RSA Chat
RSA Chat is a simple command line chat app that is fully encrypted. It adds random padding, so that replay attacks can't be executed. This was a good experiment into encryption in C++ (which I have found is very difficult). I used the open source library Crypto++, because you should never roll your own crypto system!
StandUp!
StandUp! is an app to get people to stop staring at their computers all day, never taking a break. It is built using ElectronJS, which is designed to make cross-platform app development easier. It features a reminder right before the break happens, and an aggressive mode to prevent people from bypassing the break.
Classes
Digital Systems Lab

Digital Systems Lab

Created a 2 bit RAM unit, and a simple logical processor using TTL chips. Also used SystemVerilog on an FPGA to create:
  • A simplified version of the LC3 architecture.
  • An AES cipher encrypter and decrypter.
  • PacmanX, a version of Pac-Man where you play as the ghost and catch the pacmen.
Picture of the first level of PacmanX
Computer Systems Engineering

Computer Systems Engineering

Functioning Linux Operating System complete with basic file system, scheduling, multiple terminals, command history, and more.
Applied Parallel Programming

Applied Parallel Programming

Computer Organization and Design

Computer Organization and Design

5-stage pipelined LC-3b architecture with 2-level 4-way cache, data forwarding, hazard detection, and branch prediction.
Distributed Systems

Distributed Systems

Created a complete distributed system in Go. Our system featured
  • A distributed GREP that would search log files across several machines
  • A SWIM-like failure detectore
  • A distributed file system that could store up to 1GB files, with replication
  • A stream processing system similar to Apache Storm
Computer Networking

Computer Networking

  • Created our own TCP client and server, complete with congestion control.
  • Created Link-State and Distance-Vector network layer update algorithms.
  • Created a simplified CSMA simulator.
Artificial Intelligence

Artificial Intelligence

  • Graph searching algorithms (BFS, DFS, Greedy, A*)
  • Alpha-beta and Minimax Gomoku agent
  • Machine learning number recognizer using Naive-Baies and a Multi-class perceptron
  • Q-Learning (TD and SARSA) and Deep Learning Pong agent, averaging about 13 bounces.
Control Systems

Control Systems

Created a stabilizing pendulum using a full state feedback controller with a decoupled observer.