Hello there!

I'm
MATHEW ESTAFANOUS A DEVELOPER

About Me

Welcome! I’m glad you're here! My name is Mathew and I am an enthusiastic developer who is excited to use my growing development knowledge to make a difference. I am a computer science student who is currently studying at Ryerson University, located in downtown Toronto.

During my spare time, I take any opportunity to work on some Personal Projects. If you don’t find me working on software projects, you can find me reading a book, out with friends, or snowboarding - if the weather allows it.

I am always excited to connect with others and learn about their involvement in tech and talk about our different experiences. Please reach out to me either through my LinkedIn or by Email. As always, it’s great to meet you!

My Projects

Open Stage

A Q&A platform that allows and promotes open dialogue.

Site Github Dropdown-arrow

Open Stage is a Q&A platform that promotes discussions and dialogue free from judgement. Users can simply join a room and begin asking questions, related to the topic, while also remaining anonymous. The backend of the app is built using Golang and it exposes a REST API to the client. The API also enforces general security by requiring JWT access tokens when the client is trying to access sensitive information. To better understand how this API is built, checkout the GitHub repository and associated documentation.

  • Golang
  • Docker
  • PostgreSQL
  • JWT Authentication
  • Redis
  • Github Actions

Ur-Codebin

A simple, easy to use, code sharing website.

Site Github Dropdown-arrow

Ur-Codebin is a website aimed at creating an easy to use code-sharing platform, that allows users to quickly and efficiently share their code with others. Quickly paste a snippet of your code, choose from a variety of options then click “Upload!” From that, you can now take the link and share it with the world! The goal of creating this website is to create a well-designed system that incorporates many technologies like RESTful APIs, Docker, Spring Boot and Nginx to ultimately come out with the optimal product. Ensuring proper security was a crucial aspect of this project in which I learned about different security technologies such as JWT and BCrypt algorithm to ensure user information and authentication was secured.

  • Java
  • Spring Boot
  • Docker
  • Github Actions
  • MySQL
  • Vaadin
  • Nginx
  • AWS EC2

Raft Implementation

Implementation of a data consenus algorithm for distributed systems.

Github Dropdown-arrow

I built and tested my own implementation of the raft consensus algorithm, which is a distributed systems algorithm. It allows for a cluster of finite state machines to contain the same committed data while also remaining fault tolerant in the case of an unexpected server crash. Programmed the raft nodes to communicate using gRPC as the standard for communication.

  • Golang
  • gRPC
  • Distibuted Systems
  • Consensus Algorithm

Ur-Weather App

A minimilistic weather app that displays relevant weather information!

Github Dropdown-arrow

The goal of the Ur-Weather App is to quickly provide all the weather information you will need in a very simple and easy to use manner. You can get the current, hourly and daily weather for any location that you chose. This application integrates the GeoDB API for city coordinates which are then used to get weather information from the ClimaCell API. To ensure up to 4x faster response times, all information is asynchronously retrieved and processed to ensure maximum use of resources.

  • Java
  • Spring Boot
  • Vaadin
  • ClimaCell API
  • GeoDb API
  • AWS EC2

Space Generator

Procedurally generate and interact with an expansive universe.

Download Github Dropdown-arrow

A space simulation that generates an entire universe through the use of one universe seed. Generated planets have their set of moons, colours, size, etc. which can all be simulated. Orbiting moons and a simulation of the planet's land can be shown and will always remain consistent if the user would like to revisit the planet. This project was started after I had an interest in object generation and persistence. To ensure minimal memory usage, only visible objects are generated and when they are out of view they are all destroyed. Data persistence is as simple as storing a space region and its seed ID. whenever the space region becomes visible, it looks up the ID in a HashTable and generate the region using the seed ID!

  • Java
  • Perlin Noise
  • HashTable
  • Binary Search

Desktop Poro

A cute poro that walks around and keeps you company as you work!

Devpost Github Dropdown-arrow

Desktop poro is a cute interactable pet that walks around ontop of your desktop while you are working. Watch poro as he sends you motivational messages or even play with him by tossing him around and watching him bounce. This project was completed in about 30hrs for HackTheNorth 2020++, which is a major hackathon run by the Waterloo Engineering department. Some noteable aspects of the project involve state management, physics handling and the graphics of the pet.

  • Java
  • Maven
Let's Connect

Thanks for taking the time to learn about me.

Now it's time for me to learn about

YOU!

Email Me

arrow

LinkedIn

arrow