DAVIS | GOULET

I'm a software developer with a passion for graphic design, and recently graduated with a Master of Computer Science. From front-end web development to back-end servers and databases, distributed computing to app development, I have a love of everything computer science.

Interested in working together?

Reach out to me

Projects

Newsletter Django Web App

Python

Django

Docker

Nginx

AWS EC2

PostgreSQL

  • Multi-container docker application consisting of Nginx, a Django web app, and a PostgreSQL database. Incoming requests enter through the Nginx container which either passes them on to a container running Gunicorn and Django or returns static files directly.
  • A REST API was incorporated into the application using the Django Rest Framework, allowing users to subscribe to a newsletter.
  • Static files were automatically moved to the Nginx container during the build phase. This allowed for faster response times.
  • The application was hosted on AWS EC2 and configured with a custom domain. Let's Encrypt was used for SSL certificates, along with a script that would renew the certificate when it approached it's expiration date.

Distributed View Counter Application

Java

JavaFX + Scene Builder

  • Distributed application designed to keep a consistent count of the number of views. This would be used in situations where one machine is not capable of processing all requests.
  • Consistency was based on the eventual consistency model. This model is where all nodes will eventually enter a consistent state if no new updates are made for a given amount of time.
  • Worker applications process requests and send view count information to a central application through socket communication. The central application periodically sends out updated view counts to keep all workers approximately synchronized.

MacOS Pomodoro Timer Application

Swift

Xcode

  • MacOS application built using Swift and Xcode.
  • The application lives in the menu bar (where Wifi, Bluetooth, time, etc. are located) for easy access. The user simply has to click on the app's icon for the UI to open and click anywhere else for it to disappear (but still run in the background).
  • Customizable timer settings and count down visualization.
  • Alarm triggers when the timer is up.

Personal Website

HTML

CSS

Javascript

Adobe XD

  • Custom personal portfolio website created using bare HTML, CSS, and Javascript. No additional libraries or templates where used.
  • Website first underwent several mockup iterations using Adobe XD. Some SVG graphics were also created using Adobe Illustrator.
  • Media queries used for responsive design when using different screen sizes.
  • Custom page position animation that tracks what section of the webpage the user is currently in. Also acts as a quick way to jump to specific sections through the use of hyperlinks.
  • Website hosted through Github Pages, and configured with custom domain.
  • Integrates Google Analytics to track and report website traffic.

Apache Spark Agent-based Simulator

Apache Spark

Hadoop

AWS EMR

  • Agent-based simulator designed to run parallelly over a collection of nodes. Each node is responsible for processing agent-interactions for a specific region of the environment.
  • Each agent has a range regarding which other agents it can interact with. If this range overlapped another region that a different node was responsible for processing, a phantom copy of the agent would be sent to that node in case an interaction occurred.
  • Simulator was run using AWS Elastic MapReduce (EMR).

Serverless Web App

AWS Lambda

AWS S3

AWS DynamoDB

AWS API Gateway

JSON

REST Architecture

  • Web-form application used to collect data.
  • Client-side part of the application was stored in a publically availabe AWS S3 bucket. A custom domain then pointed to the bucket, allowing web browsers to access and retrieve it.
  • The application would then communicate to the server through a REST API built using AWS API Gateway. Every request would trigger an AWS Lambda instance to process the request.
  • All data was stored in an instance of the NoSQL database AWS DynamoDB.

Web-based Game to Learn Physics

HTML

CSS

Javascript

Phaser Game Framework

  • Web-based game designed to teach the player about the relationships between different physical properties (distance, velocity, acceleration, gravity, etc).
  • Used the Phaser HTML5 game framework to create a 2D platformer. Main game component consists of the user drawing graphs that effect the characters movement and world properties once the level is started.
  • Worked in a team of four over the course of two semesters using the agile methodology.
  • Another HTML page was overlaid on top of the game containing the UI. Animated bars were used to show how the character's properties changed throughout the level.
  • Wrote a library capable of interpolating a polynomial equation given a set of points. All decimal coefficients where automatically converted into irreducible fractions.