Andrew Sison
Site Reliability Engineer

Projects

These are a collection of personal and school projects I've worked on over the years.

Food Interpreter


Go, GitHub Actions, Terraform

Github

I've designed a language that I've been using on my own personal food diary to help me watch my overall health. The goal of this project is to turn any input of the language, like a food diary and eventually a http request, into a csv that could then be used to visualize and graph a user's food intake. The idea is to show the user the amount of foods they eat, the nutrition, and eventually more. Other than food intake, other goals for the interpreter include food output, sleep, and exercise.

Right now I've written the Lexer along with its automated CI/CD tests, and I'm currently working on the CI/CD portion to deploy its infrastructure to GCP.

Isolation Game


C++, Qt

Github

Two players start on an 8x8 board, and each player can move spaces like they would a queen in chess. The spaces that each player moves to become occupied, can't be moved to anymore, and become a barrier when left. The goal is to isolate your opponent to the point that they have no more available moves.

I implemented the GUI using C++ and Qt, and my friend did more finishing touches on the AI. I wanted the player to understand it easily from just playing it without having to rely on a tutorial, hints, tips etc. I made the controls click-and-drag and had viable positions for them to move onto have a visual indicator.

Isolation Game

Lexical and Syntax Analyzer


Java

Github

This program reads an input or text file, tokenizes it and checks for proper syntax according to the lexical and syntax conventions of the Toy programming language.

Together with my teammate we worked on this for our Compilers and Interpreters course, probably my most favorite course while attending Cal Poly Pomona. The things we learned in that course I still use directly and indirectly to this day.

On this project, I worked on both the scanner, parser, and trie table. I used both JFlex and CUP to create the scanner and parser respectively. I also resolved grammar conflicts such as shift-reduce and reduce-reduce conflicts by rewriting the grammar so that the conflicts never occurs. I even taught my teammate how to use Git and GitHub so that we could more easily work on the program together.

Below is an example of the syntax analysis.

Syntax Analysis

Below is an example of the lexical analysis.

Lexical Analysis


Purple Air Data Visualizations of Cal poly Pomona


Python, NumPy, Pandas, MatPlotLib

Github

This program was used to make graphs of Particulate Matter (PM) of Cal Poly Pomona and other cities in California as comparisons. Using public Purple Air sensors, I was able to extract it's data containing PM levels, temperature, humidity, etc. and graph them with relation to time.

Below is an example of one of the graphs.

Median PM 2.5

You can view more of the graphs on the readme in the GitHub repository here.