Matthew Rinker

Software Developer, Consultant, and Data Scientist

Overview
  • Portfolio Items are divided by project type.
  • Within each type header projects are listed in chronological order (newest first).
  • Click on the title of each item to expand it to view the details of each project.
  • The content for each portfolio item is structured as follows:
    1. Context (If Applicable).
    2. Relevant Links for Project.
    3. Details of Project.
    4. Relevant Screenshots of Project
Software Engineering
Here is a link to my github repository where I keep a log of all my solutions to online programming practice problems.

This project was the final project for my Software Engineering class (CS 349) at Denison University. This was a group project, my group consisted of:

Developers: Colin Smith, Emma Steinman, Matthew Rinker

Here is the link to my github repository which contains the source code for the water meter project.

Here is the link to the github repository which contains the source code for the rest of the project.

For this project we were given project descriptions from several clients from outside the university and within its various departments. We then gave pitches to each client and were ultimately selected by the Office of Sustainability at Denison. We were tasked with creating a reporting framework for information from the office of sustainability about utility consumption on campus. We originally planned to access live data feeds from the smart electric meters installed in all campus buildings and connect this with a database hosted by the university's ITS department. We also planned to create a react frontend for our datafeeds and to supplement it with an Arduino powered water meter.

Unfortunately, due to the Covid-19 pandemic our group ended up losing 2 members and lost access to campus resources due to being off campus for the remainder of the semester. Due to this, we had to restructure our approach and abandon some elements. Due to the Office of Sustainability already making a financial investment into the Water Meter Prototype I was assigned this portion of the project. Additionally, we switched to a google Firebase database and eliminated the elements concerning live data feeds from the smart electric meters. We replaced this element with google form entry of monthly bills.

In total, I was in charge of development of the Water Meter Prototype, the database, and data stream integration. This was due to the fact that the data would ultimately have to go from the Arduinos somewhere so it only made sense for me to be the most knowledgeable of how this works. The water meter itself used an analog hal effect sensor to detect the movement of the magnetic measurement wheel inside the water company's meter (the university was denied access to resources from the company to read the data from the meters). This data was then collected and intermittently sent to a free online service which would automatically submit a google form. This would then populate a google sheets which would intermittently be scraped and inserted into the firebase database through the google scripting interface.

Ultimately, we were unable to connect our database to the react frontend due to quirks of the API we chose and the NOSQL database. However, I am confident that given more time or with different world circumstances we would have been able to rework the frontend to use that database or to setup a new database with the support of our university's ITS Department.
Web Design
I am the former resident Web Developer/Designer for Studio Rhea.

Here is a link to the site.

I was initially hired to implement a quick redesign for the site however this role quickly to include design, development, and maintenance. I was responsible for all design changes to the theme as well as connecting and configuring apps. This includes editing code of existing apps to customize them and ensure they work correctly and have no conflicts with other aspects of the site.

Other things I have accomplished was the creation of a landing page popup that triggers only on a customer's first visit (no longer visible on the production branch) and streamlining and beautifying of product descriptions via metafields.

The following are some screenshots taken of various aspects of the site. Studio Rhea Home Page
Fig. 1: Studio Rhea Home Page
Studio Rhea Landing Page pt 1 Studio Rhea Landing Page pt 2
Fig. 2,3: Studio Rhea Landing Page
Studio Rhea Product Page
Fig. 4: Studio Rhea Product Page

I was hired to work on an in progress shopify store " BalikBox" to implement a volume based shipping cost calculator.

While my work was completed to the client's specifications they ultimately decided to not go forward with launching the store.

The following are some screenshots taken of various aspects of the site. BalikBox Old Cart Interface
Fig. 1: BalikBox Old Cart Interface
BalikBox New Cart Interface (Empty)
Fig. 2: BalikBox New Cart Interface (Empty)
BalikBox New Cart Interface (Full)
Fig. 3: BalikBox New Cart Interface (Full)

I was hired to work on Intellocharge.com to redesign the product pages.

Here is a link to the site.

I was hired because the original product page design was clunky and didn't perform exactly how the client wanted. I fixed this by reworking the code to handle different options as variants and to handle discounts using a volume based discount app. Specifically, the initial implementation consisted of scripts to add multiple products to the cart based on the bundle buttons and options selected. However, this came with the issue that upon removing an item from the cart they would inexplicably be removed in pairs and the discounts applied would stay. I remedied this by removing the uneccesary scripts and instead handling discounts via a promotion based on the quantity of specific items in the cart.

The following are some screenshots taken of various aspects of the site. Intellocharge Old Product Page
Fig. 1: Intellocharge Old Product Page
Intellocharge New Product Page
Fig. 2: Intellocharge New Product Page
Game Design
The Ludum Dare Game Jam is a game development competition which takes place over the course of a weekend two times a year. A theme is given at the start of competition and competitors have 72 hours to create a game from scratch to meet that theme. The theme for this specific competition was "Stuck in a Loop".

Here is the link to the itch.io profile for this game.

Here is the link to the Luden Dare Ranking page for this game.

Here is the link to my github repository containing the source code for this game.

For this project, I wanted to practice my sprite asset making skills. Specifically, I wanted to focus on animations. Thus, I resolved to not use any free assets and make everything that appears in the game myself (With the exception of music and sound effects -- All 3 of these files are credited in the README file that accompanies both the final build and the source code of the project).

To meet the theme of "Stuck in a Loop" I implemented a simple Infinite Runner type game. I chose a very basic gameplay loop in order to focus more on the animations and art assets in the game.

In the end, there are a few things I could have done to make the controls feel more fluid, but I did not have time to implement them before the end of the competition. For example, the current animations are fixed time animations where I could have made the length of the animations based on the length of button presses (with reasonable constraints for jumping) in order to give the player more control over the character.
Dungeon Escape Main Gameplay Screen
Fig. 1: "Dungeon Escape" Main Gameplay Screen

Measles Mania is the final product of my Game Design (CS 314) class at Denison University. This was a group project, my group consisted of:

Developers: John Fernow, Jesse Nhan, Matthew Rinker, Zack Wang

Composer: Marco Balic

Here is the link to the course website page for this game.

Here is the link to the github repository containing the source code for this game.

The final project for this class was to create a game with some kind of message on a social issue. My group decided to create a game that would speak to vaccinations as we feel that vaccinations are a vital part of modern medicine. Part of the requirements for this game was that all assets had to be made by the development team (with the exception of the music as that was part of a collaboration with the music department).

My main contributions to this project were in level design and overall gameplay loop design/implementation.

Measles Mania Title Screen
Fig. 1: Measles Mania Title Screen

Night Driving Simulator was the midterm exam project of my Game Design (CS 314) class at Denison University. This was a group project, my group consisted of:

Developers: Kush Patel, Matthew Rinker, Gezim Saciri

Writer: Izzy Otrowski

Composer: James Braham

Here is the link to the course website page for this game.

Here is the link to the github repository containing the source code for this game.

The task for this project was to create a game that centers around a single mechanic. We also were tasked with incorporating music composed for us by students in the Music department as well as a storyline written by Creative Writing students in the English department. The mechanic we chose for this game was a fatigue meter. I came up with the idea that I pitched to my team after a late night road trip from Cincinatti back to Granville after a convention and afterparty with my fraternity. I remembered being tired and having to stop to get energy drinks, repeatedly changing the temperature in the car, and changing the radio station to keep my brain occupied. We decided to simulate those aspects for our game.

My contributions to this project was the implementation of the core features, GUI, and Tutorial. This included, fatigue bar, interactable objects, movement of car, movement of player camera, blinking mechanic, and headlights.

Night Driving Simulator Title Screen
Fig. 1: Night Driving Simulator Title Screen

This game was my introductory project for my Game Design class (CS 314) at Denison University. This was a solo project.

Here is the link to the course website page for the game.

Here is the link to the github repository containing the source code for the game.

For this game we were given a weekend to produce a short game that had some theme to it. I chose the theme of old school/retro adventure games like the original Legend of Zelda. Due to time constraints, I got all assets from opengameart and all artists and musicians are credited in the "Credits" page in game. The length of this game was intentionally kept short as we only had a weekend to work on it and it was my first time working with Unity. Had I been given more time, I would have implemented better enemy AI (they currently pick a random direction to move in every few steps) and added more levels/my own assets.

Title Screen
Fig. 1: Title Screen
Game Start Screen
Fig. 2: Start Screen

This app was the first game I ever made and was for an English Class project in Highschool. I recently was able to find an old copy of the apk file and recover the source code from it.

Here is the link to the github repository containing the source code and apk file for this app.

For this project we were to take a quote from a Shakespeare play we read in class and make something that embodies it through whatever creative avenue we want. I chose to make an app and taking a quote about Romeo wanting to fly over the garden wall to see Juliet I decided to make a FlappyBird clone. Thus, FlappyRomeo was born. Note: I did not choose Leonardo DiCaprio to be Romeo for no reason, the picture I used is from his role as Romeo in the 1996 film, Romeo + Juliet.

Note: Screenshots are slightly misformatted because they had to be taken on an emulator as I no longer own an Android phone.

Flappy Romeo Title Screen
Fig. 1: Flappy Romeo Title Screen
Flappy Romeo Game Start Screen
Fig. 2: Flappy Romeo Game Start Screen
Flappy Romeo Gameplay
Fig. 3: Flappy Romeo Gameplay
Information Security
NotHotdog is the team name of the ctf competition team I compete on. Currently, we have two members. Jordan Luong (Captain) and I. On leaderboards we appear as urmomkilledu (Jordan) and Thorn_ (Me).

Here is a link to my github repository where I keep a log of all my solutions to ctf competition problems.

Here is a link to my github repository where I keep a log of all my solutions to online ctf style practice problems.
Academia
These papers were the results from Lab Assignments/Projects as a part of my Advanced Topics in Data Analytics class (DA 350) at Denison University. The majority of these papers were group assignments.

Authors: Sally Hyde, Matthew Rinker

Here is a link to the Airbnb Lab paper (Group).

Here is a link to the Amazon Lab paper (Group).

Here is a link to the Credit Card Lab paper (Group).

Here is a link to the Titanic Lab paper (Solo).

Here is a link to the Youtube Lab paper (Group).

These papers represent my ability to synthesize data into useful information, specifically given the context of the data. These Data labs are significant because they both demonstrate my knowledge of realistic data analytics techniques as well as demonstrate my ability to work with real world datasets (All datasets used were taken from real sources). The format of each assignment was that we were given a set of real world data and a list of questions we needed to answer about the data. This came both in the form of open ended questions and some quantifiable questions. We then were to write a short paper summarizing both our methods in analyzing the data and our results to the questions given. We also had to provide some relevant charts and graphics about the data.

This paper was the product of my final project for my Algorithms course at Denison University (CS 371).

Author: Matthew Rinker

Here is the link to the paper.

For this project, I was tasked with taking some complex architecture in the technology world and produce a paper explaining the algorithms behind its operation. I chose Blockchain. However, since there were multiple other people in my class also working on Blockchain, I opted to not describe the mathematical operations behind SHA-256 and the hashing of blocks and instead wrote my analysis on the proof of work algorithm implemented for Bitcoin Mining. Had I had more time for this project, I would have added analysis of the hashing portion of the Bitcoin Blockchain as well as the proof of work algorithm.

This paper was the product of my final project for my Natural Language Processing course at Denison University (CS 401).

Author: Matthew Rinker

Acknowledgements: Scott Burger for providing code and datasets from his previous work on the subject.

Here is the link to the paper.

For this project, I was tasked to come up with some independent project within the realm of Natural Language Processing. I chose text classification and sentiment analysis. Specfically, I wanted to see if there was a way to classify sarcasm in text (a difficult task even for humans). I chose the natural place to find lots of examples of sarcasm, Steam Games Reviews. The process involved manually classifying a subset of my dataset to use to train the model. It would then try to classify the remaining parts of the Dataset and I would compare the result with my manual classification results. Unfortunately, the resulting model was not very accurate and had I had more time (manual classification was extremely time consuming as I started with an uncleaned dataset of over 10,000 reviews) I would have implemented more complex and accurate methods of analyzing the reviews and classifying them.

This is the resulting paper from my summer research project in 2018.

Authors: Quang Nguyen, Matthew Rinker, Dr. Ashwin Lall

Here is the link to the paper.

Our research centered on the k-Regret Operator, which is a novel database operator detailed in a paper in 2010 by Nanongkai et al. This database operator is a method used to help structure multi-dimensional queries in a relational database when specific utility functions are unknown. We sought to expand upon this original paper by expanding the set of utility functions covered to include decreasing monotonic utility functions.