Compare commits

...

10 Commits

Author SHA1 Message Date
17586ae648 Add cscc43 project 2025-04-22 12:13:53 -04:00
ce7018251a Add d-ticketmaster project 2025-04-22 11:53:08 -04:00
c2e06b87bc Remove unneeded images 2025-04-22 11:29:38 -04:00
f6290b28b1 Add rust project
Also reorder projects
2024-12-27 21:12:05 -05:00
542b353f27 Add smartli experience
Also change some sizes of the top menu on mobile
2024-12-05 14:20:02 -05:00
b56415f2bb Reformat html and css files 2024-12-05 13:53:08 -05:00
7da858fea7 Add docker restarting 2024-10-26 01:11:58 +01:00
1c36eda4d0 Add rhdc experience 2024-10-13 15:09:55 -04:00
d92037f461 Dockerize website 2024-10-06 22:06:17 -04:00
65234a190c Gitea changes
Change title from Ethan's GitHub to Ethan's Portfolio

Change github logo to git logo and link to gitea account

Fix weird unicode chracter that didn't display well on all browsers

Change cpp-console-game entry to link to gitea rather than github repository
2024-10-06 21:48:05 -04:00
42 changed files with 552 additions and 353 deletions

1
.env.example Normal file
View File

@ -0,0 +1 @@
LOCAL_PORT=8080

1
.gitignore vendored Normal file
View File

@ -0,0 +1 @@
.env

2
Dockerfile Normal file
View File

@ -0,0 +1,2 @@
FROM nginx
COPY src /usr/share/nginx/html

Binary file not shown.

Before

Width:  |  Height:  |  Size: 8.4 KiB

View File

@ -1,10 +0,0 @@
<svg width="48" height="48" viewBox="0 0 48 48" fill="none" xmlns="http://www.w3.org/2000/svg">
<path fill-rule="evenodd" clip-rule="evenodd" d="M24.0432 0.179932C10.8147 0.179932 0.0876465 11.0878 0.0876465 24.5445C0.0876465 35.3096 6.95165 44.4426 16.4699 47.6643C17.6671 47.8899 18.1067 47.1358 18.1067 46.4922C18.1067 45.9112 18.0845 43.9919 18.0742 41.956C11.4097 43.4299 10.0034 39.0812 10.0034 39.0812C8.9137 36.265 7.34358 35.5161 7.34358 35.5161C5.17009 34.0039 7.50742 34.035 7.50742 34.035C9.91297 34.2065 11.1796 36.5458 11.1796 36.5458C13.3162 40.2707 16.7837 39.1938 18.1507 38.5712C18.3657 36.9969 18.9866 35.9212 19.6716 35.3132C14.3508 34.6971 8.7574 32.6079 8.7574 23.2719C8.7574 20.6118 9.6932 18.4383 11.2256 16.732C10.9769 16.1179 10.1569 13.6402 11.4577 10.2841C11.4577 10.2841 13.4693 9.62928 18.0472 12.7816C19.9581 12.2418 22.0074 11.971 24.0432 11.9618C26.0791 11.971 28.13 12.2418 30.0444 12.7816C34.6167 9.62928 36.6256 10.2841 36.6256 10.2841C37.9295 13.6402 37.1091 16.1179 36.8604 16.732C38.3964 18.4383 39.3259 20.6118 39.3259 23.2719C39.3259 32.6301 33.7218 34.6906 28.3874 35.2938C29.2467 36.0499 30.0123 37.5327 30.0123 39.8059C30.0123 43.0655 29.9845 45.6893 29.9845 46.4922C29.9845 47.1406 30.4157 47.9003 31.63 47.6611C41.1431 44.4357 47.9984 35.3059 47.9984 24.5445C47.9984 11.0878 37.273 0.179932 24.0432 0.179932Z" fill="white"/>
<path fill-rule="evenodd" clip-rule="evenodd" d="M9.16084 35.1623C9.10808 35.2837 8.92084 35.3196 8.75026 35.2365C8.57651 35.157 8.47892 34.992 8.53525 34.8706C8.58682 34.7459 8.77446 34.7116 8.94781 34.7943C9.12196 34.8742 9.22113 35.0408 9.16084 35.1623Z" fill="white"/>
<path fill-rule="evenodd" clip-rule="evenodd" d="M10.1312 36.263C10.0169 36.3707 9.79356 36.3207 9.64203 36.1504C9.48533 35.9805 9.45598 35.7534 9.57181 35.644C9.68963 35.5363 9.90622 35.5867 10.0633 35.7566C10.22 35.9285 10.2506 36.154 10.1312 36.263Z" fill="white"/>
<path fill-rule="evenodd" clip-rule="evenodd" d="M11.0757 37.6662C10.9289 37.7699 10.6889 37.6727 10.5405 37.456C10.3938 37.2394 10.3938 36.9795 10.5437 36.8754C10.6925 36.7713 10.9289 36.8649 11.0793 37.08C11.2256 37.2999 11.2256 37.5601 11.0757 37.6662Z" fill="white"/>
<path fill-rule="evenodd" clip-rule="evenodd" d="M12.3697 39.0219C12.2384 39.1692 11.9587 39.1296 11.754 38.9287C11.5446 38.7322 11.4863 38.4534 11.618 38.3062C11.7509 38.1585 12.0321 38.2 12.2384 38.3994C12.4463 38.5954 12.5097 38.8763 12.3697 39.0219Z" fill="white"/>
<path fill-rule="evenodd" clip-rule="evenodd" d="M14.1548 39.8091C14.0969 39.9999 13.8275 40.0867 13.5562 40.0056C13.2853 39.9221 13.1079 39.6985 13.1627 39.5057C13.219 39.3136 13.4896 39.2232 13.7629 39.31C14.0334 39.3931 14.2112 39.615 14.1548 39.8091Z" fill="white"/>
<path fill-rule="evenodd" clip-rule="evenodd" d="M16.1153 39.9552C16.122 40.1561 15.8919 40.3227 15.6071 40.3259C15.3207 40.3328 15.089 40.1702 15.0859 39.9725C15.0859 39.7696 15.3108 39.6045 15.5972 39.5997C15.882 39.594 16.1153 39.7554 16.1153 39.9552Z" fill="white"/>
<path fill-rule="evenodd" clip-rule="evenodd" d="M17.9397 39.6392C17.9738 39.8353 17.7758 40.0367 17.493 40.0899C17.2149 40.142 16.9575 40.0209 16.9222 39.8264C16.8876 39.6255 17.0892 39.4242 17.3669 39.3721C17.6501 39.3221 17.9036 39.4399 17.9397 39.6392Z" fill="white"/>
</svg>

Before

Width:  |  Height:  |  Size: 3.2 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 37 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 47 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 18 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 99 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 39 KiB

View File

@ -4,4 +4,6 @@ The place to find out all about me and projects I have done or am currently doin
## Attribution
Beautiful social media svg icons from [gauravghongde](https://github.com/gauravghongde/social-icons)
Beautiful social media svg icons for GMail and LinkedIn from [gauravghongde](https://github.com/gauravghongde/social-icons)
Git logo svg from [Jason Long](https://x.com/jasonlong), hosted on [wikimedia commons](https://commons.wikimedia.org/wiki/File:Git_icon.svg), has been modified to be white rather than orange

6
docker-compose.yml Normal file
View File

@ -0,0 +1,6 @@
services:
web:
build: .
ports:
- "${LOCAL_PORT}:80"
restart: always

View File

@ -1,319 +0,0 @@
<!DOCTYPE html>
<html lang="en">
<head>
<link rel="stylesheet" href="style.css">
<link rel="icon" type="image/x-icon" href="Pictures/thedeer.ico">
<link rel="preconnect" href="https://fonts.googleapis.com">
<link rel="preconnect" href="https://fonts.gstatic.com" crossorigin>
<link href="https://fonts.googleapis.com/css2?family=Montserrat:ital,wght@0,100..900;1,100..900&display=swap" rel="stylesheet">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Ethan's Github</title>
</head>
<body>
<main>
<div class="header">
<div class="profile-name">
<img src="./Pictures/thedeer.ico" alt="Deer Profile Picture" class="profile-picture">
<h1>Ethan Cook</h1>
</div>
<div class="social-media">
<a href="mailto:ecook2489@gmail.com" target="_blank">
<img src="./Pictures/gmail.svg" alt="gmail logo">
</a>
<a href="https://www.linkedin.com/in/ethan-cook-76b9b81a5/" target="_blank">
<img src="./Pictures/linkedin.svg" alt="linkedin logo">
</a>
<a href="https://github.com/ethanglide" target="_blank">
<img src="./Pictures/github.svg" alt="github logo">
</a>
</div>
</div>
<div class="content">
<div>
<div class="side-by-side">
<div class="section">
<h2>About</h2>
<p>I am a 4th year Computer Science student at University of Toronto Scarborough with a focus on Software Development.</p>
<p>Passionate in developing scalable, high quality web and games software with readable, optimized, and well tested code.</p>
<p>In my spare time, my main hobby is music. I play Trombone and Piano, and enjoy most to play jazz music.</p>
</div>
<div class="section">
<h2>Skills</h2>
<ul>
<li style="margin: 0;">
6+ years experience programming in C/C++, C#, Java, Python, HTML/CSS, JavaScript
</li>
<li>
Solid Full-Stack Web Development experience with React/Next.js frontend, Express.js backend API
</li>
<li>
Experienced in SQL (PostgreSQL, SQLite) and NoSQL (MongoDB, Firebase Realtime DB) databases
</li>
<li>
Strong DevOps skills with AWS: API Gateway, Lambda, EC2, S3, CodePipeline
</li>
<li>
Effective communication for working in collaborative groups
</li>
</ul>
</div>
</div>
<div class="section">
<h2>Work Experience</h2>
<div class="experience">
<div class="advertience-wrapper">
<div>
<img src="./Pictures/adverience.png" alt="adverience logo">
</div>
</div>
<div class="experience-text">
<div class="experience-header">
<h2>advertience Inc. | Ad Analytics Developer</h2>
<p>05/2023 - 12/2023</p>
</div>
<p>Toronto, ON.</p>
<ul>
<li>
Implemented analytics tracking via Google Tag Manager and gtag.js on client's websites, resulting in a 30%
improvement in data accuracy, empowering clients to execute data-driven marketing strategies
</li>
<li>
Developed a unique attribution system to differentiate my agency from the competition, which led to the
agency taking on several new clients, beating last years profit records by 10%
</li>
<li>
Created a full-stack CRM web application to help our nonprofit clients leverage their geographical analytics, resulting in an over 25% increase in donation conversions for our clients
</li>
</ul>
</div>
</div>
<div class="experience">
<div class="square-wrapper">
<div>
<img src="./Pictures/jumpplus.jpeg" alt="jump+ logo">
</div>
</div>
<div class="experience-text">
<div class="experience-header">
<h2>Jump+ | Sales Associate</h2>
<p>05/2021 - 01/2023</p>
</div>
<p>Hamilton, ON.</p>
<ul>
<li>
Collaborated within a sales team to achieve a 20% increase in Apple product sales, leveraging effective
communication and product knowledge to drive customer engagement and satisfaction
</li>
<li>
Orchestrated seamless store operations by coordinating with team members to assign tasks and optimize workflow on the sales floor, contributing to a 15% boost in overall store efficiency
</li>
</ul>
</div>
</div>
</div>
<div class="section">
<h2>Projects</h2>
<div class="experience">
<div class="rectangular-wrapper">
<div>
<iframe
src="https://www.youtube.com/embed/HS9tsFQpMUA?si=8mIM_T5hKvkPNSYb&controls=0&autoplay=1&mute=1&loop=1&playlist=HS9tsFQpMUA"
title="YouTube video player" frameborder="0"
allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share"></iframe>
</div>
</div>
<div class="experience-text">
<div class="experience-header">
<h2> <a href="https://store.steampowered.com/app/2117410/Cosmotica/" target="_blank">Cosmotica</a> | Unity 3D Game</h2>
<p>01/2022 - 09/2022</p>
</div>
<ul>
<li>
Led a team of 6 to program, design, compose, model, and market a full video game
</li>
<li>
Programmed a game written in C# for the Unity game engine, with a focus on readable and scalable code
and systems design for future additions and bug fixes
</li>
<li>
Designed levels and UI while applying user feedback to get the best user experience
</li>
<li>
Published the finished product on Steam, the worlds largest online game storefront
</li>
</ul>
</div>
</div>
<div class="experience">
<div class="rectangular-wrapper">
<div>
<iframe
src="https://www.youtube.com/embed/rsZMfWVyc90?si=jERn5iKCQvnH3Y_g&controls=0&autoplay=1&mute=1&loop=1&playlist=rsZMfWVyc90"
title="YouTube video player" frameborder="0"
allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share"></iframe>
</div>
</div>
<div class="experience-text">
<div class="experience-header">
<h2><a href="https://ethanglide.itch.io/solitude-echoes" target="_blank">Solitude Echoes</a> | Unity 2D Game</h2>
<p>12/2023</p>
</div>
<ul>
<li>Developed in 9 days for the Unity Developer Community Game Jam #28, with the theme "Silence"</li>
<li>Puzzle/Horror game where you wake up in a decrepid dungeon and have to find your way out, while being stalked by the monsters within</li>
<li>Led an international team of 5 people, with programmers, artists, musicians, and level designers</li>
<li>Game is playable completely within the browser</li>
</ul>
</div>
</div>
<div class="experience">
<div class="rectangular-wrapper">
<div>
<img src="./Pictures/grantors.png" alt="grantors web app dashboard">
</div>
</div>
<div class="experience-text">
<div class="experience-header">
<h2><a href="https://github.com/GlassesNoGlasses/c01w24-project-grantors" target="_blank">Grantors</a> | React Web App</h2>
<p>02/2024 - 04/2024</p>
</div>
<ul>
<li>
Worked in a team of 7 to create an accessibility-focused grant platform
</li>
<li>
Developed with industry standard stack of React frontend, Express.js backend, and MongoDB database
</li>
<li>
Web Content Accessibility Guidelines (WCAG) compliant, with a focus on user experience and accessibility for grantors and applicants alike
</li>
<li>
Automated CI/CD with Jest, GitHub Actions, and Docker
</li>
</ul>
</div>
</div>
<div class="experience">
<div class="course-planner-wrapper">
<div>
<img src="./Pictures/courseplanner.jpg" alt="course planner demo">
</div>
</div>
<div class="experience-text">
<div class="experience-header">
<h2>UTSC Course Planner | Android App</h2>
<p>11/2022 - 12/2022</p>
</div>
<ul>
<li>
Collaborated with a team of 5 to develop an android app to help students plan their university courses
</li>
<li>
Used Googles Firebase Realtime Database to store course and user data and authenticate users
</li>
<li>
Followed industry best practices using agile methodologies (scrum)
</li>
<li>
Received a grade of 95 though good planning, teamwork, and execution
</li>
</ul>
</div>
</div>
<div class="experience">
<div class="rectangular-wrapper">
<div>
<img src="./Pictures/telepuzzle.png" alt="telepuzzle demo">
</div>
</div>
<div class="experience-text">
<div class="experience-header">
<h2> <a href="https://ethanglide.itch.io/telepuzzle1" target="_blank">Telepuzzle</a> | Unity 3D Game</h2>
<p>12/2022</p>
</div>
<ul>
<li>
Developed in 4 days for the Unity Developer Community Game Jam #16, with the theme "Teleportation"
</li>
<li>
Puzzle game where your goal is to get to the end of the level by manipulating the objects around you with your teleportation gun
</li>
<li>
Worked together with a 3D artist to create the game with fun gameplay and a unique art style
</li>
</ul>
</div>
</div>
<div class="experience">
<div class="square-wrapper">
<div>
<img src="./Pictures/cpp-console-game.png" alt="cpp-console-game demo">
</div>
</div>
<div class="experience-text">
<div class="experience-header">
<h2> <a href="https://github.com/ethanglide/cpp-console-game" target="_blank">cpp-console-game</a> | C++ Multiplayer Terminal Game</h2>
<p>07/2024</p>
</div>
<ul>
<li>
Developed as a side project to learn the C++ programming language, CMake build automation system, and RPC basics
</li>
<li>
Simple terminal-based game where you can move around a map and see other players moving in real-time
</li>
<li>
Uses a custom RPC library to communicate between the server and clients, which uses TCP sockets
</li>
</ul>
</div>
</div>
</div>
<div class="section">
<h2>Programming Languages, Tools, and Frameworks</h2>
<div style="display: flex; flex-wrap: wrap; gap: 2rem; justify-content: space-between; padding-right: 2rem;">
<div class="languages-images">
<div>
<img src="./Pictures/c.png" alt="c logo">
<img src="./Pictures/csharp.png" alt="c# logo">
<img src="./Pictures/python.webp" alt="python logo">
<img src="./Pictures/java.png" alt="java logo">
<img src="./Pictures/htmlcss.png" alt="html and css logo">
<img src="./Pictures/javascript.png" alt="javascript logo" style="overflow: hidden; border-radius: 0.5rem;">
</div>
</div>
<div style="display: flex; flex-grow: 1; flex-wrap: wrap; justify-content: space-between;">
<ul class="large-list">
<li>C/C++</li>
<li>C#</li>
<li>Python</li>
<li>Java</li>
<li>HTML & CSS</li>
<li>Javascript</li>
</ul>
<ul class="large-list">
<li>React</li>
<li>Next.js</li>
<li>Express.js</li>
<li>Firebase</li>
<li>SQL</li>
<li>Unity</li>
</ul>
</div>
<div class="languages-images">
<div>
<img src="./Pictures/react.png" alt="react logo">
<img src="./Pictures/nextjs.svg" alt="next.js logo">
<img src="./Pictures/express.png" alt="express.js logo">
<img src="./Pictures/firebase.png" alt="firebase logo">
<img src="./Pictures/sql.svg" alt="sql logo">
<img src="./Pictures/unity.png" alt="unity logo">
</div>
</div>
</div>
</div>
</div>
</div>
</main>
</body>
</html>

485
src/index.html Normal file
View File

@ -0,0 +1,485 @@
<!DOCTYPE html>
<html lang="en">
<head>
<link rel="stylesheet" href="style.css">
<link rel="icon" type="image/x-icon" href="pictures/thedeer.ico">
<link rel="preconnect" href="https://fonts.googleapis.com">
<link rel="preconnect" href="https://fonts.gstatic.com" crossorigin>
<link href="https://fonts.googleapis.com/css2?family=Montserrat:ital,wght@0,100..900;1,100..900&display=swap"
rel="stylesheet">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Ethan's Portfolio</title>
</head>
<body>
<main>
<div class="header">
<div class="profile-name">
<img src="./pictures/thedeer.ico" alt="Deer Profile Picture" class="profile-picture">
<h1>Ethan Cook</h1>
</div>
<div class="social-media">
<a href="mailto:ecook2489@gmail.com" target="_blank">
<img src="./pictures/gmail.svg" alt="gmail logo">
</a>
<a href="https://www.linkedin.com/in/ethan-cook-76b9b81a5/" target="_blank">
<img src="./pictures/linkedin.svg" alt="linkedin logo">
</a>
<a href="https://git.thingsnstuff.xyz/ethanglide" target="_blank">
<img src="./pictures/git.svg" alt="git logo">
</a>
</div>
</div>
<div class="content">
<div>
<div class="side-by-side">
<div class="section">
<h2>About</h2>
<p>I am a 4th year Computer Science student at University of Toronto Scarborough with a focus on Software
Development.</p>
<p>Passionate in developing scalable, high quality web and games software with readable, optimized, and well
tested code.</p>
<p>In my spare time, my main hobby is music. I play Trombone and Piano, and enjoy most to play jazz music.
</p>
</div>
<div class="section">
<h2>Skills</h2>
<ul>
<li style="margin: 0;">
7+ years experience programming in C/C++, C#, Java, Python, HTML/CSS, JavaScript, Rust
</li>
<li>
Solid Full-Stack Web Development experience with React/Next.js frontend, Express.js backend API
</li>
<li>
Experienced in SQL (PostgreSQL, SQLite) and NoSQL (MongoDB, Firebase Realtime DB) databases
</li>
<li>
Strong DevOps skills with AWS: API Gateway, Lambda, EC2, S3, CodePipeline
</li>
<li>
Effective communication for working in collaborative groups
</li>
</ul>
</div>
</div>
<div class="section">
<h2>Work Experience</h2>
<div class="experience">
<div class="smartli-wrapper">
<div>
<img src="./pictures/smartli.png" alt="smartli logo">
</div>
</div>
<div class="experience-text">
<div class="experience-header">
<h2>SmartLi Inc. | Analytics Developer</h2>
<p>05/2024 - Present</p>
</div>
<p>Toronto, ON.</p>
<ul>
<li>
Configured and maintained analytics tracking on client's websites through Google Tag Manager
for Google Analytics, Facebook Pixel, StackAdapt, Microsoft Clarity, and more
</li>
<li>
Implemented custom tracking solutions on a per-client basis to track specific user interactions
on custom web applications, resulting in a 20% increase in data accuracy
</li>
<li>
Developed a full-stack web application to automate lead generation with automatic reporting and
email notifications, resulting in a 50% increase in team efficiency for lead generation
</li>
</ul>
</div>
</div>
<div class="experience">
<div class="advertience-wrapper">
<div>
<img src="./pictures/adverience.png" alt="adverience logo">
</div>
</div>
<div class="experience-text">
<div class="experience-header">
<h2>advertience Inc. | Ad Analytics Developer</h2>
<p>05/2023 - 12/2023</p>
</div>
<p>Toronto, ON.</p>
<ul>
<li>
Implemented analytics tracking via Google Tag Manager and gtag.js on client's websites, resulting in a
30% improvement in data accuracy, empowering clients to execute data-driven marketing strategies
</li>
<li>
Developed a unique attribution system to differentiate my agency from the competition, which led to
the agency taking on several new clients, beating last year's profit records by 10%
</li>
<li>
Created a full-stack CRM web application to help our nonprofit clients leverage their geographical
analytics, resulting in an over 25% increase in donation conversions for our clients
</li>
</ul>
</div>
</div>
<div class="experience">
<div class="square-wrapper">
<div>
<img src="./pictures/jumpplus.jpeg" alt="jump+ logo">
</div>
</div>
<div class="experience-text">
<div class="experience-header">
<h2>Jump+ | Sales Associate</h2>
<p>05/2021 - 01/2023</p>
</div>
<p>Hamilton, ON.</p>
<ul>
<li>
Collaborated within a sales team to achieve a 20% increase in Apple product sales, leveraging
effective communication and product knowledge to drive customer engagement and satisfaction
</li>
<li>
Orchestrated seamless store operations by coordinating with team members to assign tasks and optimize
workflow on the sales floor, contributing to a 15% boost in overall store efficiency
</li>
</ul>
</div>
</div>
</div>
<div class="section">
<h2>Projects</h2>
<div class="experience">
<div class="rectangular-wrapper">
<div>
<iframe
src="https://www.youtube.com/embed/HS9tsFQpMUA?si=8mIM_T5hKvkPNSYb&controls=0&autoplay=1&mute=1&loop=1&playlist=HS9tsFQpMUA"
title="YouTube video player" frameborder="0"
allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share"></iframe>
</div>
</div>
<div class="experience-text">
<div class="experience-header">
<h2> <a href="https://store.steampowered.com/app/2117410/Cosmotica/" target="_blank">Cosmotica</a> |
Unity 3D Game</h2>
<p>01/2022 - 09/2022</p>
</div>
<ul>
<li>
Led a team of 6 to program, design, compose, model, and market a full video game
</li>
<li>
Programmed a game written in C# for the Unity game engine, with a focus on readable and scalable code
and systems design for future additions and bug fixes
</li>
<li>
Designed levels and UI while applying user feedback to get the best user experience
</li>
<li>
Published the finished product on Steam, the world's largest online game storefront
</li>
</ul>
</div>
</div>
<div class="experience">
<div class="rectangular-wrapper">
<div>
<iframe
src="https://www.youtube.com/embed/rsZMfWVyc90?si=jERn5iKCQvnH3Y_g&controls=0&autoplay=1&mute=1&loop=1&playlist=rsZMfWVyc90"
title="YouTube video player" frameborder="0"
allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share"></iframe>
</div>
</div>
<div class="experience-text">
<div class="experience-header">
<h2><a href="https://ethanglide.itch.io/solitude-echoes" target="_blank">Solitude Echoes</a> | Unity 2D
Game</h2>
<p>12/2023</p>
</div>
<ul>
<li>Developed in 9 days for the Unity Developer Community Game Jam #28, with the theme "Silence"</li>
<li>Puzzle/Horror game where you wake up in a decrepid dungeon and have to find your way out, while
being stalked by the monsters within</li>
<li>Led an international team of 5 people, with programmers, artists, musicians, and level designers
</li>
<li>Game is playable completely within the browser</li>
</ul>
</div>
</div>
<div class="experience">
<div class="rectangular-wrapper">
<div>
<img src="./pictures/cscc43-project.png" alt="D-Ticketmaster demo">
</div>
</div>
<div class="experience-text">
<div class="experience-header">
<h2><a href="https://github.com/ethanglide/cscc43-project" target="_blank">Social Investment
Platform</a> |
Full-Stack Web Application</h2>
<p>03/2025-04/2025</p>
</div>
<ul>
<li>
Social platform where users can manage stock portfolios, analyze market trends, and share investment
strategies with friends
</li>
<li>
Developed as a project for my university's database course, with a focus on smart schema design and
efficient queries
</li>
<li>
Built with React frontend, Express.js backend, and PostgreSQL database
</li>
</ul>
</div>
</div>
<div class="experience">
<div class="rectangular-wrapper">
<div>
<img src="./pictures/dticketmaster.png" alt="D-Ticketmaster demo">
</div>
</div>
<div class="experience-text">
<div class="experience-header">
<h2>D-Ticketmaster | Web3 Blockchain dApp</h2>
<p>03/2025</p>
</div>
<ul>
<li>
Decentralized ticket marketplace powered by the Ethereum blockchain, allowing users to buy, sell, and
trade tickets securely and transparently
</li>
<li>
Developed for my university's blockchain course for learning about smart contracts, wallet
connections, and decentralized applications
</li>
<li>
Ticket purchases are done using the platform's custom ERC-20 tokens, and tickets themselves are
ERC-721 NFTs with royalties built-in so that the original seller/artist gets a cut of all resales
</li>
<li>
Built with React frontend, Solidity smart contracts, and <a href="https://viem.sh/"
target="_blank">viem</a> for interacting with the Ethereum blockchain
</li>
</ul>
</div>
</div>
<div class="experience">
<div class="rectangular-wrapper">
<div>
<img src="./pictures/grantors.png" alt="grantors web app dashboard">
</div>
</div>
<div class="experience-text">
<div class="experience-header">
<h2><a href="https://github.com/GlassesNoGlasses/c01w24-project-grantors" target="_blank">Grantors</a> |
React Web App</h2>
<p>02/2024 - 04/2024</p>
</div>
<ul>
<li>
Worked in a team of 7 to create an accessibility-focused grant platform
</li>
<li>
Developed with industry standard stack of React frontend, Express.js backend, and MongoDB database
</li>
<li>
Web Content Accessibility Guidelines (WCAG) compliant, with a focus on user experience and
accessibility for grantors and applicants alike
</li>
<li>
Automated CI/CD with Jest, GitHub Actions, and Docker
</li>
</ul>
</div>
</div>
<div class="experience">
<div class="rectangular-wrapper">
<div>
<img src="./pictures/rhdc.png" alt="Romhacking.com home page">
</div>
</div>
<div class="experience-text">
<div class="experience-header">
<h2> <a href="https://romhacking.com/" target="_blank">Romhacking.com</a> | Full-Stack Web Development
</h2>
<p>08/2024 - Present</p>
</div>
<ul>
<li>
Joined group of developers to add features to an existing production-level project
</li>
<li>
Navigated the large codebases, frontend and backend, and learned the new technologies required to make
extensions to the functionality
</li>
<li>
Worked cloesly with maintainers to make sure code additions were consistent in quality and style with
the rest of the codebase
</li>
<li>
Added a live-updating activity feed to the home page to make the site more lively
</li>
</ul>
</div>
</div>
<div class="experience">
<div class="rectangular-wrapper">
<div>
<img src="./pictures/groq-model-comparison.png" alt="Groq Model Comparison demo">
</div>
</div>
<div class="experience-text">
<div class="experience-header">
<h2> <a href="https://git.thingsnstuff.xyz/ethanglide/groq-model-comparison" target="_blank">Groq Model
Comparison</a> | Rust Desktop App
</h2>
<p>12/2024</p>
</div>
<ul>
<li>
Desktop application for easily comparing LLM responses and response times to find the one
best suited for your project
</li>
<li>
Developed as a side project to learn the Rust programming language after becoming interested in memory
safety from a cybersecurity course
</li>
<li>
Uses the <code>egui</code> library for the GUI, <code>reqwest</code> for making HTTP requests, and
<code>tokio</code> for concurrency
</li>
</ul>
</div>
</div>
<div class="experience">
<div class="rectangular-wrapper">
<div>
<img src="./pictures/telepuzzle.png" alt="telepuzzle demo">
</div>
</div>
<div class="experience-text">
<div class="experience-header">
<h2> <a href="https://ethanglide.itch.io/telepuzzle1" target="_blank">Telepuzzle</a> | Unity 3D Game
</h2>
<p>12/2022</p>
</div>
<ul>
<li>
Developed in 4 days for the Unity Developer Community Game Jam #16, with the theme "Teleportation"
</li>
<li>
Puzzle game where your goal is to get to the end of the level by manipulating the objects around you
with your teleportation gun
</li>
<li>
Worked together with a 3D artist to create the game with fun gameplay and a unique art style
</li>
</ul>
</div>
</div>
<div class="experience">
<div class="course-planner-wrapper">
<div>
<img src="./pictures/courseplanner.jpg" alt="course planner demo">
</div>
</div>
<div class="experience-text">
<div class="experience-header">
<h2>UTSC Course Planner | Android App</h2>
<p>11/2022 - 12/2022</p>
</div>
<ul>
<li>
Collaborated with a team of 5 to develop an android app to help students plan their university courses
</li>
<li>
Used Google's Firebase Realtime Database to store course and user data and authenticate users
</li>
<li>
Followed industry best practices using agile methodologies (scrum)
</li>
<li>
Received a grade of 95 though good planning, teamwork, and execution
</li>
</ul>
</div>
</div>
<div class="experience">
<div class="square-wrapper">
<div>
<img src="./pictures/cpp-console-game.png" alt="cpp-console-game demo">
</div>
</div>
<div class="experience-text">
<div class="experience-header">
<h2> <a href="https://git.thingsnstuff.xyz/ethanglide/cpp-console-game"
target="_blank">cpp-console-game</a> | C++ Multiplayer Terminal Game</h2>
<p>07/2024</p>
</div>
<ul>
<li>
Developed as a side project to learn the C++ programming language, CMake build automation system, and
RPC basics
</li>
<li>
Simple terminal-based game where you can move around a map and see other players moving in real-time
</li>
<li>
Uses a custom RPC library to communicate between the server and clients, which uses TCP sockets
</li>
</ul>
</div>
</div>
</div>
<div class="section">
<h2>Programming Languages, Tools, and Frameworks</h2>
<div style="display: flex; flex-wrap: wrap; gap: 2rem; justify-content: space-between; padding-right: 2rem;">
<div class="languages-images">
<div>
<img src="./pictures/c.png" alt="c logo">
<img src="./pictures/csharp.png" alt="c# logo">
<img src="./pictures/python.webp" alt="python logo">
<img src="./pictures/java.png" alt="java logo">
<img src="./pictures/htmlcss.png" alt="html and css logo">
<img src="./pictures/javascript.png" alt="javascript logo"
style="overflow: hidden; border-radius: 0.5rem;">
</div>
</div>
<div style="display: flex; flex-grow: 1; flex-wrap: wrap; justify-content: space-between;">
<ul class="large-list">
<li>C/C++</li>
<li>C#</li>
<li>Python</li>
<li>Java</li>
<li>HTML & CSS</li>
<li>Javascript</li>
</ul>
<ul class="large-list">
<li>React</li>
<li>Next.js</li>
<li>Express.js</li>
<li>Firebase</li>
<li>SQL</li>
<li>Unity</li>
</ul>
</div>
<div class="languages-images">
<div>
<img src="./pictures/react.png" alt="react logo">
<img src="./pictures/nextjs.svg" alt="next.js logo">
<img src="./pictures/express.png" alt="express.js logo">
<img src="./pictures/firebase.png" alt="firebase logo">
<img src="./pictures/sql.svg" alt="sql logo">
<img src="./pictures/unity.png" alt="unity logo">
</div>
</div>
</div>
</div>
</div>
</div>
</main>
</body>
</html>

View File

Before

Width:  |  Height:  |  Size: 9.1 KiB

After

Width:  |  Height:  |  Size: 9.1 KiB

View File

Before

Width:  |  Height:  |  Size: 23 KiB

After

Width:  |  Height:  |  Size: 23 KiB

View File

Before

Width:  |  Height:  |  Size: 157 KiB

After

Width:  |  Height:  |  Size: 157 KiB

View File

Before

Width:  |  Height:  |  Size: 2.8 KiB

After

Width:  |  Height:  |  Size: 2.8 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 110 KiB

View File

Before

Width:  |  Height:  |  Size: 17 KiB

After

Width:  |  Height:  |  Size: 17 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 161 KiB

View File

Before

Width:  |  Height:  |  Size: 11 KiB

After

Width:  |  Height:  |  Size: 11 KiB

View File

Before

Width:  |  Height:  |  Size: 15 KiB

After

Width:  |  Height:  |  Size: 15 KiB

4
src/pictures/git.svg Normal file
View File

@ -0,0 +1,4 @@
<?xml version="1.0" encoding="UTF-8"?>
<svg xmlns="http://www.w3.org/2000/svg" xml:space="preserve" width="97" height="97">
<path fill="#FFF" d="M92.71 44.408 52.591 4.291c-2.31-2.311-6.057-2.311-8.369 0l-8.33 8.332L46.459 23.19c2.456-.83 5.272-.273 7.229 1.685 1.969 1.97 2.521 4.81 1.67 7.275l10.186 10.185c2.465-.85 5.307-.3 7.275 1.671 2.75 2.75 2.75 7.206 0 9.958-2.752 2.751-7.208 2.751-9.961 0-2.068-2.07-2.58-5.11-1.531-7.658l-9.5-9.499v24.997c.67.332 1.303.774 1.861 1.332 2.75 2.75 2.75 7.206 0 9.959-2.75 2.749-7.209 2.749-9.957 0-2.75-2.754-2.75-7.21 0-9.959.68-.679 1.467-1.193 2.307-1.537v-25.23c-.84-.344-1.625-.853-2.307-1.537-2.083-2.082-2.584-5.14-1.516-7.698L31.798 16.715 4.288 44.222c-2.311 2.313-2.311 6.06 0 8.371l40.121 40.118c2.31 2.311 6.056 2.311 8.369 0L92.71 52.779c2.311-2.311 2.311-6.06 0-8.371z"/>
</svg>

After

Width:  |  Height:  |  Size: 838 B

View File

Before

Width:  |  Height:  |  Size: 734 B

After

Width:  |  Height:  |  Size: 734 B

View File

Before

Width:  |  Height:  |  Size: 189 KiB

After

Width:  |  Height:  |  Size: 189 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 361 KiB

View File

Before

Width:  |  Height:  |  Size: 13 KiB

After

Width:  |  Height:  |  Size: 13 KiB

View File

Before

Width:  |  Height:  |  Size: 23 KiB

After

Width:  |  Height:  |  Size: 23 KiB

View File

Before

Width:  |  Height:  |  Size: 11 KiB

After

Width:  |  Height:  |  Size: 11 KiB

View File

Before

Width:  |  Height:  |  Size: 25 KiB

After

Width:  |  Height:  |  Size: 25 KiB

View File

Before

Width:  |  Height:  |  Size: 885 B

After

Width:  |  Height:  |  Size: 885 B

View File

Before

Width:  |  Height:  |  Size: 3.0 KiB

After

Width:  |  Height:  |  Size: 3.0 KiB

View File

Before

Width:  |  Height:  |  Size: 27 KiB

After

Width:  |  Height:  |  Size: 27 KiB

View File

Before

Width:  |  Height:  |  Size: 186 KiB

After

Width:  |  Height:  |  Size: 186 KiB

BIN
src/pictures/rhdc.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 324 KiB

BIN
src/pictures/smartli.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 7.9 KiB

View File

Before

Width:  |  Height:  |  Size: 7.1 KiB

After

Width:  |  Height:  |  Size: 7.1 KiB

View File

Before

Width:  |  Height:  |  Size: 49 KiB

After

Width:  |  Height:  |  Size: 49 KiB

View File

Before

Width:  |  Height:  |  Size: 175 KiB

After

Width:  |  Height:  |  Size: 175 KiB

View File

Before

Width:  |  Height:  |  Size: 8.0 KiB

After

Width:  |  Height:  |  Size: 8.0 KiB

View File

@ -10,7 +10,14 @@ main {
height: 100%;
}
p, h1, h2, h3, h4, h5, h6, li {
p,
h1,
h2,
h3,
h4,
h5,
h6,
li {
color: #fff;
font-family: 'Montserrat', sans-serif;
font-weight: 500;
@ -18,7 +25,8 @@ p, h1, h2, h3, h4, h5, h6, li {
margin: 0;
}
p, li {
p,
li {
font-size: 1rem;
}
@ -118,7 +126,7 @@ div.side-by-side {
div.section {
display: flex;
flex-flow: column;
gap: 1.5rem;
gap: 1.7rem;
padding: 2rem;
border-radius: 0.5rem;
border: #151920 0.15rem solid;
@ -172,6 +180,27 @@ li li {
font-size: 90%;
}
div.smartli-wrapper {
width: 20%;
max-width: 10rem;
}
div.smartli-wrapper>div {
position: relative;
width: 100%;
padding-bottom: 25%;
}
div.smartli-wrapper>div>img {
position: absolute;
top: 0;
left: 0;
right: 0;
bottom: 0;
height: 100%;
width: 100%;
}
div.advertience-wrapper {
width: 20%;
padding: 1rem;
@ -230,7 +259,8 @@ div.rectangular-wrapper > div {
padding-bottom: 56.25%;
}
div.rectangular-wrapper > div > iframe, div.rectangular-wrapper > div > img {
div.rectangular-wrapper>div>iframe,
div.rectangular-wrapper>div>img {
position: absolute;
top: 0;
left: 0;
@ -297,7 +327,7 @@ div.experience-header {
}
div.profile-name h1 {
font-size: 1.1rem;
font-size: 1.2rem;
}
div.social-media {
@ -305,14 +335,8 @@ div.experience-header {
}
div.social-media a img {
width: 1.5rem;
height: 1.5rem;
}
div.social-media a img[src="./Pictures/gmail.png"] {
width: 2.5rem;
height: 2rem;
border-radius: 0.2rem;
width: 1.75rem;
height: 1.75rem;
}
div.experience {
@ -327,7 +351,10 @@ div.experience-header {
grid-template-columns: repeat(3, min(33%));
}
div.rectangular-wrapper, div.square-wrapper, div.advertience-wrapper {
div.rectangular-wrapper,
div.square-wrapper,
div.advertience-wrapper,
div.smartli-wrapper {
width: 100%;
min-width: 0;
}