Projects

7/13/2021

The following is a collection of projects I have worked on in the past for both university, current, and past jobs. Any source code that is publicly available can be found on my GitHub or my GitLab.

Personal

Portfolio (this site)

I created a website to hold portfolio items like this, my resume, as well as create "blog-like" posts to keep track of my own personal development. It is a Markdown-based blog site built on Next.js and is hosted entirely in my own "cloud" (writing a post on it soon!). My site is open-source, viewable on GitHub if you would like to look through the code. I wrote a translation layer for react-markdown to enable easy integration and theming with the Material UI framework. I hope to publish this soon!

Wedding Homepage

I created a website for the wedding of myself and my incredible, super awesome fiancée Avery Owen. It links to our RSVP system, hosts a page for our registries, and displays a gallery of images on the homepage. Feel free to view it at owen2moen.com. Source code is here.

University

Over my time at university, I had the privilege of building a number of interesting projects:

Bot or not: modeling HTTP traffic to classify humans and bots

Data Collection Site

Paper

Source Code

For my Machine Learning and Computational Modeling, course, I chose to create a bot detection middleware for Python Flask applications (the goal of which was to generalize into an API or SaaS). It takes some metadata about an arbitrary request and attaches it to an identifiable 'session' (collection of requests from a 'user'), and gauges whether or not the session is associated with a bot or a real human.

Senior Design Projects

During my senior year, I had a required course called Senior Design, with its goal to demonstrate the knowledge gained over the course of one's time at George Fox. Some of the projects we worked on are discussed below:

VineViewer, an image quality and integrity checker

Coming soon

Rover Hardware

Coming soon

Rover Software

Coming soon

GFU Engineering Project Ideation Commission

This website is for my Servant Engineering project during my third year at Fox. We created a workflow and set of resources for teachers at a local high school to submit project ideas and have us create what they had envisioned. Feel free to view it at gfuprojects.com. The source is located here.

HansenLite compiler

I wrote a compiler for the HansenLite language, created by Dr. David Hansen of George Fox University. It targets the ARMv7 assembly language, is written in Java and located here.

Work

E&J Gallo Winery - AWS GuardDuty Alert and Auto-remediation System

I developed an alert and auto-remediation system powered by AWS GuardDuty, a threat detection service powered by machine learning. Personnel are notified via Microsoft Teams and compromised resources are contained or disabled when GuardDuty detects a new Finding, all in real-time. Implemented with Lambda, SQS, CloudFormation, Secrets Manager, and some vendor APIs to facilitate remediations.

Simple Monitors - Client Dashboard

I built a dashboard for Simple Monitors clients to manage their webhook configurations, authentication, and release channels. It leverages HTML/CSS/jQuery and is served by a simple Node.js application and it runs on a simple Heroku configuration.

Simple Monitors - Web Scraper Administration Dashboard

I built a dashboard for internal management of sites and products monitored by our web scraping platform. Each site 'platform' has a dedicated page to display its active configurations and perform C.R.U.D. operations.

Simple Monitors - Scalable Web Scraping Platform

The management dashboard would hold very little value without the scraping platform itself. I created a fully distributed scraping platform to monitor product additions and restocks. The platform is backed by a Kubernetes cluster and leverages technologies like Redis, an MPI-like layer on top of Redis, and various Node.js microservices.

Simple Monitors - Database REST API

I built a REST API for accessing our database configurations. It supported JWT and API key authentication and scope-based access for those using JWT to access (our admin dashboard). I used TypeScript and MongoDB as the primary technologies for this project, and it was hosted on a multi-node Heroku application.

Simple Monitors - HTTP client for TLS spoofing

I designed an HTTP client that allows for spoofing of TLS Client-Hello packets. These inital packets are used in many bot protections and allowed for fine-tuning of our scrapers to look like authentic browsers, even past a User-Agent modification. The library was written in Node.js and bootstrapped to a Go program that facilitated the network requests.

Simple Monitors - Grafana Implementation

I implemented Grafana and Prometheus to get live stats on our distribution pipeline and overall Kubernetes cluster health. Below is an abbrevatied view of the dashboard I created.

Grafana dashboard

Grafana dashboard

Updated 7/8/2022