Multivariate   Gaussian   Mixture   Models

A multivariate Gaussian mixture model is the unsupervised clustering of data into multiple multivariate gaussian curves. The algorithm utilizes randomness, probability, and iteration to produce the gaussians that best represent the provided data, and inefficient coding of this algorithm can increase the runtime by a factor of 100 or more. This particular implementation of the process uses K-means++ initialization, a preprocessing step that increases the accuracy of the models produced. The pictures on the left show an image where the pixels (based on RGB values) are clustered into 2, 3, and 5 gaussians and normalized to that gaussian's mean.

    Skills/Concepts Used:
  •   Statistical Modeling
  •   Python
  •   Efficient Code Vectorization

Stock   Market   Training   Simulator

Using stock data from 2003-present for a huge variety of symbols, this simulator can evaluate the performance of a trading strategy given statistical indicators. The simulator only looks backward, so it's an honest 'no cheating' evaluator. The image on the left is comparing the results of a 'hold long' strategy for JPM stock, and the results of trading based on the stochastic oscillator statistical symbol, described here . The simulator can evaluate performance for many indicators, such as momentum or bollinger bands, over any period of time between 2003 and 2018.

    Skills/Concepts Used:
  •   Statistical Stock Analysis
  •   Data Visualization
  •   Pandas Library

Brailler

Brailler is a Braille printing system designed to be easily used by the blind and non-impaired. The integrated microphone uses Google Speech API to recognize voice, produce a text translation, and send this data to a Raspberry Pi controller. The Pi is wired to a repurposed CNC machine, and using PyCNC libraries it can convert text into motor controls that allow the CNC to print Braille on paper. Additionally, the on-board interface allows for selection of image, PDF, and text files. PyTesseract libraries allow for image-to-text translation, and can feed its output into the Pi as well. Created as part of my senior capstone project at Texas A&M.

    Skills/Concepts Used:
  •   Software Development Cycle
  •   Python
  •   UI Design
  •   Image Recognition

GitHub

BerrySafe

BerrySafe is a home security system using a Raspberry Pi, Arduino sensors, and an integrated Android application. After setting up motion sensors, cameras, and door sensors around a house, the Raspberry Pi can constantly read sensor data and relay it to the user via the mobile application. The user can 'lock' or 'unlock' the system from anywhere, and when the system is locked the Pi will trigger an alarm if motion is sensed or a door is opened. Additionally, the Pi captures and stores photos constantly to record a timeframe of activity in a room, and a user can request the most recently photo be displayed on their phone at any time.

    Skills/Concepts Used:
  •   Android Development
  •   Java
  •   Software Architecture Design
  •   Sockets & Network Programming

Github

MyMuseum

This was a really fun project created with my little brother at Texas A&M's 2018 Hackathon, which was a great experience. MyMuseum is a content-sharing website that was intended as a place to share data about your experiences and sentimental posessions. The user can customize a page dedicated to a certain memory or object, and upload text, audio, video, or images related to it. The site then generates a QR code linking to your page, and you can share it with anyone that has the code. However, the site can be used generally to share content through a QR code for any reason. The backend was created using the EC2 service on AWS, and having a mySQL database that interacted through the webpage with PHP. Some challenges were securely storing user information and making sure that you could access a user's page only through a certain url with PHP arguments coded in the QR code.

    Skills/Concepts Used:
  •   Secure Software Development
  •   PHP
  •   UX Design
  •   Amazon Web Services

Github

This   site!  

This site is a great experience in UI design, JavaScript, HTML, CSS, and learning more about hosting services and web domains! I'm learning more and more as I update these pages, so I'm planning on this being a ever-growing project.

    Skills/Concepts Used
  •   UI Design
  •   HTML/CSS/JavaScript
  •   Code Optimization

Github

Perceptron   Guessing   Game

This game was an implementation of a simple perceptron unit accompanied by a game that would allow the program to predict a user's input patterns. Utilized online learning and a learning phase, followed by a testing phase. Users 'train' a perceptron by choosing 1 or 2 repeatedly, and then is challenged to 'beat' the program. Relatively simple in the scope of machine learning, but includes a lot of key concepts central to the field.

    Skills/Concepts Used:
  •   Machine Learning
  •   Data Structures
  •   Python
  •   Tensorflow

For   the   Queen!

For The Queen is an HTML multiplayer game based on Node.js and JavaScript. Two players play as spies for England working towards infiltrating a facility to gain valuable information. They work cooperatively to progress through a mansion map, facing randomly generated challenges along the way. This project was completed by a team of four, and my role in this game was handling all server/client interactions, as well as being responsible for being the lead on engine usage. The game engine we used for this project was phaser.io.

    Skills/Concepts Used:
  •   Node.js
  •   Server/Client Communication
  •   Game Design

Download

Buddy   Memory   Allocator

This project was an implementation of a buddy memory allocator in C. As shown in the image, the memory allocator uses a binary tree approach to allocate the most ideal amount of memory to a user. This project utilized malloc() and free() functions to separate and coalesce memory blocks.

    Skills/Concepts Used:
  •   Memory Allocation
  •   C Language
  •   Binary Trees

Download

Multi-Room   Chat   Application

This was a two-person project to implement a multi-room chat application in C. The application involved connecting to a server process and choosing to CREATE, JOIN, or DELETE a chatroom. Within a room, you're free to chat with any other users within. Spawning a new chatroom with p_threads was a great insight into multithreading and sockets in C. My role was handling technical implementation, while my partner handled documentation and presentation elements.

    Skills/Concepts Used
  •   Threads
  •   Server/Client Communication
  •   C Language

Download

Single-Cycle   CPU   Implementation

This project was an implementation of a single-cycle CPU in Verilog. Each module was constructed and created from scratch, and the connected final product could read 32-bit MIPS instructions and complete basic R and I type instructions.

    Skills/Concepts Used
  •   CPU Architecture
  •   CPU Instruction Format
  •   Verilog

Download