About Me

I am currently pursuing my master's in Information Assurance and Computer Engineering at Iowa State University (ISU) in Ames, Iowa. As an officer of the Information Assurance Student Group (IASG), I work with other club members on cutting-edge security topics and strive to increase security awareness, knowledge, and enthusiasm throughout the community. I am part of ISU's nationally-recognized information assurance research lab ISEAGE (Internet-Scale Event and Attack Generation Environment), which runs a simulated yet realistic "internet" for Cyber Defense Competitions (CDCs), training/education, and security research. I am taking many classes relating to information security, networking, and software development, in addition to expanding my knowledge through my own projects and experiments. On the side, I enjoy playing, performing, and recording music. Scroll down to view my projects and activities in detail, or to contact me for more information.

Blog Music Website

Projects and Activities

Innovation Flight — Spring 2014

CPR E 186: Simple touch-based flight game designed for Android, using Java and LibGDX as an engine. The project focused around being easy to play yet addictive. The speed of the game would get faster over time and the player had to dodge obstacles while collecting speed and point boosts.

View on GitHub

Team Scratbot - PyRobot — Spring 2015

CPR E 288, Embedded Systems: The goal of the project was to navigate an iRobot (running on the Atmega128-based Vortex platform) through an obstacle course and into a goal, diverting from any dangers as necessary. My main contributions to the project consisted of a Flask web application and part of a Python communications library for interfacing with the robot over serial (Bluetooth). The Flask web application acted as a controller, providing control over the robot's movement and showing output from its sensors.

View webapp on GitHub View library on Github

Inshtant Meshenger — Fall 2015

COM S 309, Software Development Practices: Inshtant Meshenger (IM) is a distributed, peer-to-peer mesh-network chat client. Unlike most typical chat systems, there is no centralized infrastructure necessary for IM to function, similar to other peer-to-peer systems (i.e. Bittorrent). In addition, IM utilizes asymmetric cryptography to securely encrypt messages and prove the sender's identity. The application's libraries were developed in C++, heavily utilizing the Boost ASIO libraries to facilitate asynchronous network operations. To visualize the mesh network, a web application was created to collect data on the real time propagation of messages throughout the network and visualized them. For this project, I did most of the development on the networking module; notably, I designed and implemented an automatic peer discovery system that allowed peers to discover each other with zero configuration, as well as managing multiple networking threads in the application.

View on GitHub

Vehicle Intrusion Detection System — Fall 2016-Spring 2017

Senior Design: This project will explore the design and implementation of an Intrusion Detection System (IDS) testbed frameword for in-vehicle networks, capable of generating and tracking traffic on CAN networks. Project goals include the following: Construction of benchmarks (network traces) and attack trees for automotive in-vehicle networks, Instrumentation of a control unit in an automotive testbed, Development of infotainment and other in-vehicle applications, Proof-of-concept exploits and experiments detailing performance and security characteristics.

Project is completed. My role on the team was "Key Concept Holder", and I primarily worked on architecture, socket IPC, and middleware implementation.

Project Website

Smart Home Framework — 2016+

Personal project: a Pythonic smart home framework that strives to be hyper-modular and extensible, designed with security in mind. A websocket-based Flask web interface and RESTful API allow for control and integration with any client, such as Tasker for Android. The system supports dynamic construction of objects from the YAML config, allowing any IoT device to be integrated by writing a simple driver for it.

Design challenges:
  • Events, concurrency, and background tasks
  • Minimal hard-coded functionality, dynamic module loading
  • Automation and inter-connectivity
Example modules: View on GitHub