Software Engineer who is versatile, but prefers data science, robotics, firmware design, machine learning, communication systems, and/or Computer Vision. Can do Web Development, but prefer to not make it a career focus.
- Education
-
B.S. in Computer Engineering
Virginia Polytechnic Institute and State University
Blacksburg, VA 24061
Graduated August 2019
- Technical Skills
-
Programming Languages: Python, C, C++, Javascript, Java, Matlab, Bash, Verilog, MIPS assembly
Markup Languages: HTML, JSON, XML, LaTeX
Libraries: Tensorflow, Anaconda Suite, Matplotlib, OpenCV, Qt, ProcessingJS
Databases: MySQL, MongoDB
Operating Systems: Cloud computers (usually Ubuntu), FreeRTOS, Unix based systems
- Positions
-
Software EngineerOctober 2021 to present
Aalta.io
Seattle, WA (remote)
This is a small AI and data analytics software company. Work in Artificial Intelligence, Machine Learning, Web Development, Digital Image Processing, Predictive Analytics, Text Mining, etc
Software Engineer Team MemberSeptember 2017 to August 2019
RboGrinder
Blacksburg, VA
International collegiate robot team for RoboMaster. Work in Embedded Systems, Computer Vision, Artificial Intelligence, Robotics, etc
Electrical EngineerSeptember 2015 to May 2016
Virginia Tech Bradley Department of Electrical & Computer Engineering (Part-time)
Blacksburg, VA
Communications research in UAVs' embedded systems under Dr. Saad. Work in Signal Processing, Embedded Systems, Communications, etc
- Projects and Experience
-
Maritime Aerial Object Detection AIProject for Aalta
Proof of concept developed for an open project for the Navy.
- Tried a simple Neural Network and then a deep neural network but the machine was not effectively learning object detection
- Constructed a Convolutional Neural Network, and performance still didn’t improve
- Mapped the convolutions and poolings visually, and saw the objects were too small to be recognized in the noise of the sea
- Re-cropped dataset and immediately fixed performance and achieved 89% accuracy with the Cross-Validation Set
- Implemented sliding-window object detection
- Parsed, formatted, and labeled raw video footage into a dataset
- Built a ResNet50 Convolutional Neural Network architecture because it measurably performs well with satellite imagery
- Froze and transferred training weights from a model trained off of the COCO 2017 dataset
- Reached a Loss less than 0.002 with very original maritime aerial footage then concluded the Proof of Concept
Ionic Liquid Analysis AIProject for Aalta
We were contracted by a university's chemistry department to assist with a machine learning research project. Had a couple extra interns hired to work with
- Extracted image data manually and algorithmically from Chemistry PDF Textbook
- Cleaned and organized the collected data
- Collected, cleaned, and prepared data for a Machine Learning Model
- Transformed the image data with various image processing techniques to make the model run more accurately and quickly
- Implemented a Regression model in a Multi-layer Neural network to get a numerical value
- Expanded the image dataset by using image augmentation
- In the process of implimenting a Conv NN for the next steps
Scraping and processing Sam.govProject for Aalta
Collected, cleaned, and prepared data for a Machine Learning Model
- Programmed a cloud computer to continously extract data from Sam.gov with a multithreaded python script
- Customized the program to continuously gather 100M+ data points from an API as stably and quickly as possible
- Web-scraped some pages with Python script and web scrawler
- Parsed data into a MongoDB database
- Cleaned data by fixing entires in the DB
- Prepared data in the process of Feature Engineering so that a ML model can process all data points
Market PredictionPersonal Project
Use unorthodox algorithms to make a self-learning bot to predict relational inflation and deflation of currencies around the world. It basically models a future of the Foreign Exchange Market based on data gathered in the past. As the system gathers more data, it may become more accurate and may be a useful assistance to making wise financial investments in the future
- Collected data by sampling API and WebScrapping
- Extract data from public documents with multiple acclimated parsers
- Store data onto a MySQL Database (using MariaDB)
- Multi-thread the project environment and use FICO Queues to simulate multiple clients for future integration
- Quantify market predicting methods into a system controller to be scale-able actions that can be tuned
- Compare technique to a Time-series Convolutional NN application (in progress)
- Simulate the market to be an accurate reflection of reality while also making success measurable in that market
- Design a visually helpful GUI to show the system processes for diagnostics and debugging
- Visually model numerical results to help understand what predictive methods work best and possibly reveal why those methods are successful
- Automate self optimization for a self-learning ability
Inventory on Blockchain (POC)Project for Aalta
Proof of Concept to draft an inventory control system on a niche permissioned blockchain network with unique smart contracts and token system.
- Develop ERC-20 token system logic deployed in a simulated Ethereum blockchain system with permissioned accessibility for extra security
- Make token design as the drafted permission settings to verify users into the network for added security
- Deploy nodes using docker images and manage the clusters using Kubernetes
- Design network and software architecture of a private blockchain implementing the Hyperledger Fabric Framework
Computer Vision for Robot Navigation and Combat Robomasters
Developed an image processing software in an international robot team called RoboGrinder primarily focused on a Chinese competition called Robomasters hosted by DJI in Shenzhen, China. I worked on the software subteam, where we focused on Computer Vision. Specifically we focused on image processing for our robots' guns and turrets to automatically target enemies without the use of a pilot and it's navigation around the field. My team's website can be found here.
- Design the image processing feed of our robots to auto-detect and target our enemy robots with our turret gun.
- Use the OpenCV library to apply various image filtering to our feed in our Embedded Environment
- Implement a Flood-Fill algorithm for object detection of that filtered image feed
- Train our turrets to target special locations in a separate competition mini-game (hosted in Quebec). Trained with Tensorflow library and Machine Learning techniques
- Work on team with a massive language barrier
- Document trips and handle technical writing to sponsors
P.I.D. Embedded Systems Controller Capstone Project
P.I.D. is simply a design in the field of systems engineering. In robotics, there is inevitably a cross over with system design when software interacts with real-time mechanics and operates under real-time constraints on embedded computer systems. In the feedback loop between my written software and the motor system in my rover robot, there are inconsistencies with response and a significant delay in the feedback. Correcting error in the environment in an efficient manner can be really difficult without leading to system instability. For example, my rover would literally shake and tremble when attempting to travel because my software was rapidly over-correcting itself with delayed path reading. This problem was solved with a formal systems engineering method, and after researching and reading "PID without a PhD," I employed the Proportional Integral Derivative controller. Project Page
- Tune my rover's motor systems to consistently reach its coordinates with no more than +/- 1.0 cm error, every 30.0 cm of travel.
- Develop an embedded system on a PIC32 board with C programming and FreeRTOS
- Design low-level TCP communication to communicate with other Team members' PICs and my designed server system.
- Change P, I, and D constants in the embedded system through server communication for efficient debugging and testing.
- Send motor error real time to the server, and plot the error over time to see how to monitor the stability of the system.
- Use the stability plots to tune the PID control system via the PID constants on the server.
Reverse Proxy Server Capstone Project
A server system must to be able to connect with 5 clients and communicate via a customized network protocol in order to read and write information in a database.
- Design network communication protocol unique to our embedded systems
- Create Reverse proxy server to establish connection with clients, multi thread communications, parse network packets, and process information
- Implement Flask server and communicate with the reverse proxy server via HTTP requests
- Make a MongoDB API, and use it as a database within the Flask Server
2D Game EngineSenior Design Project
This is The Legend of Zelda: A Link Between Time created by Jasher Grunau and Alex Laisney as a senior design project. To have a functioning game, I needed to build and design a game engine. It’s design was meticulous and difficult. It's performance is atrocious because our class's development platform doesn't allow us to store custom sprites in cache or in memory. Meaning each sprite is manually being regenerated many times a second. I am working on fixing it with a better platform that will migrate the code well. In the meantime, play the current version displayed below or click here>
MIPS Assembly Simulator Class Design Project
Large individual project to simulate the MIPS Assembly compiler and its code execution.
- Code in C++, while using Git and CMAKE for the project management
- Create robust unit testing for 100% code coverage
- Write language parser for MIPS assembly language
- Use object-oriented design for command executions previously parsed
- Manually allocate memory in C++ and fix any measured memory leakage
- Design a UI using the Qt graphics library for an easier access for clients
- Multi-thread environment and measure increased program execution speed
- Achievements
- Third prize for team RoboGrinder, ICRA 2019 International A.I. Challenge
- Second prize for team RoboGrinder, Robomaster 2018 Final Tournament
- First prize for team RoboGrinder, Robomaster 2018 International Regional Competition
- Third prize for team RoboGrinder, Robomaster 2017
- Eagle Scout