Hi, my name's Alex Pegg. I am a 4th year computer scientist from the University of Toronto.


Background

I was born and raised in Hong Kong. I'm half British and half Filipino.


School

I've completed my major in both computer science and economics for an honours bachelors of science. I've been a tutorial and marking TA for CSC108.


Me right now

I'm into AI and full stack dev, trying to get a job.


I'm currently interested making nodejs apps with a react frontend, making the transition into the newer React hooks.


I recently bought a raspberry pi, so hopefully I can get a static ip and host my website there for non-static web apps. I just bought a domain https://alexpegg.com for a dollar for a year (15 dollars a year after the first), and a dollar a month for a small server from Ionos. Got reverse proxy working with nginx and some nodejs apps like this and this. I plan on migrating that stuff to the raspberry pi as soon as I figure it out.


I want to get some Wordpress experience, and my mum wants a website for her little side business so hopefully I can use that as an opportunity to learn. Those CMS sites like Wordpress and Squarespace make web design look really easy, I could learn a thing or two.


I made this site with self-learned html/css and before I took a university course in webdev. I want to change it into React hooks, and also make the layout a bit better. I want to add some of the css tricks I've picked up: snap-scrolling, media queries and css using rem/vw/vh -- right now a lot of sizing is hardcoded in px.


I also like making animated SVGs in illustrator with css/js, cycling and playing league with friends.


Go to the projects tab on the left to see some of the stuff I've made so far.

Microeconomics 2 Goods Model Grapher

https://mcsapps.utm.utoronto.ca/micrographer

Full stack application built for the economics department of University of Toronto.

Microeconomics indifference curve analysis application.

The optima is calculated using an algebraic parser sympy in the backend python.

The result is graphed with the Desmos API

The server is uses web sockets, with a flask backend, and a socket.io frontend.



Whisper

https://alexpegg.com/whisper, source: https://github.com/peggalex/whisper

Messaging app that encrypts messages so the server can't see.

React frontend, nodejs backend with express and websockets. Sqlite database.

Search users, send friend requests, talk to friends and see whos online in real time.

Front and backend validation for express routing calls and websocket connections.

Encryption done with subtle.crypto.



2048 Game

https://peggalex.github.io/test2048

Comprehensive model/view/controller game. Control with arrow keys.

Cookies store highscore.

Animations are pure css and js.



Simple grade calculator

https://peggalex.github.io/rachel.html

Calculate final grade given marks and weights.

Also assumes grades are normally distributed and can predict future grades using a PDF/CDF.

Uses the https://api.mathjs.org/ endpoint to calculate the CDF



T-shirt example website

https://peggalex.github.io/tShirtWebsite

My friend wanted to bring her t-shirt business online, so I made a template website.

Written using React hooks, has stateful carousel and snap scroll.

Renders differently depending on media queries (mobile).



Scotiabank Big Data AI competition

I participated in a competition hosted by scotiabank to identify human traffickting pertaining to money laundering in bank data.

We won the first place prize of $3000.

They gave us real bank data and tasked us with classifying accounts.

Using neo4j, I parameterised the data with addition aggregation parameters.

Then, using scipy and numpy, I generated a normal multivariate cdf of the data, and from there it's just selecting outliers at the tails

Here are some highlight slides and the entire presentation.



Fortnite2D

(!!!WORK IN PROGRESS!!!)

https://alexpegg.com/ftd, source: https://github.com/peggalex/multiplayerShooter

Multiplayer shooting game based off of fortnite.

React frontend (canvas for game), nodejs backend with express and websockets. Sqlite database.

Features graphics, sounds, weapons and ammo to pick up.

Front and backend validation for express routing calls and websocket connections.

This is the only project I put in my portfolio that was actually school work, as per this assignment.

There's a lot I'd like to fix:

  • I would like to redo the backend in typescript (never tried before).
  • The front end is currently in react (class components), I want to redo it in React hooks.
  • The assignment asked for a lot of fields in registration, I want to cut down on that.
  • Bug: network request to the server whenever audio played (even if preloaded property set).
  • Feature: Make weapons respawn automatically and add ring


Hong Kong SVG animation

(!!!WORK IN PROGRESS!!!)

https:/peggalex.github.io/hk

SVG artwork of Victoria Harbour in Hong Kong, animated using CSS.

Recommend firefox for optimal SVG performance.



Shortest Path Finder

https://peggalex.github.com/pathfinder.html

(!!!WORK IN PROGRESS!!!)

Shortest path from a point A to point B given drawn polygon obstacles.

Allows for uploading images to trace on top of.

Currently in the process of converting my working python code here to javascript



Converting Node Graphs to Latex

(!!!WORK IN PROGRESS!!!)

https://peggalex.github.com/grapher.html

Draw a node graph and then convert it into code that can be copied into latex.

Expands on features from this similar website: http://madebyevan.com/fsm/



HTML Resume

https://peggalex.github.com/resume3.html

Resume stylized to look like an ide using a combination of syntax from different programming languages.

Webfonts unpredictable in Safari, Firefox - recommend chrome

Compiled pdf version here.

Professional resume here.



Other

https://github.com/peggalex

Github with python and java apps and scripts