BIN
Pictures/adverience.png
Normal file
After Width: | Height: | Size: 9.1 KiB |
BIN
Pictures/express.png
Normal file
After Width: | Height: | Size: 11 KiB |
BIN
Pictures/firebase.png
Normal file
After Width: | Height: | Size: 15 KiB |
BIN
Pictures/htmlcss.png
Normal file
After Width: | Height: | Size: 13 KiB |
Before Width: | Height: | Size: 116 KiB After Width: | Height: | Size: 23 KiB |
BIN
Pictures/javascript.png
Normal file
After Width: | Height: | Size: 11 KiB |
BIN
Pictures/jumpplus.jpeg
Normal file
After Width: | Height: | Size: 25 KiB |
8
Pictures/nextjs.svg
Normal file
@ -0,0 +1,8 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!-- Uploaded to: SVG Repo, www.svgrepo.com, Generator: SVG Repo Mixer Tools -->
|
||||
<svg width="800px" height="800px" viewBox="0 0 256 256" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" preserveAspectRatio="xMidYMid">
|
||||
<g>
|
||||
<path d="M119.616813,0.0688905149 C119.066276,0.118932037 117.314565,0.294077364 115.738025,0.419181169 C79.3775171,3.69690087 45.3192571,23.3131775 23.7481916,53.4631946 C11.7364614,70.2271045 4.05395894,89.2428829 1.15112414,109.384595 C0.12512219,116.415429 0,118.492153 0,128.025062 C0,137.557972 0.12512219,139.634696 1.15112414,146.665529 C8.10791789,194.730411 42.3163245,235.11392 88.7116325,250.076335 C97.0197458,252.753556 105.778299,254.580072 115.738025,255.680985 C119.616813,256.106338 136.383187,256.106338 140.261975,255.680985 C157.453763,253.779407 172.017986,249.525878 186.382014,242.194795 C188.584164,241.068861 189.00958,240.768612 188.709286,240.518404 C188.509091,240.36828 179.124927,227.782837 167.86393,212.570214 L147.393939,184.922273 L121.743891,146.965779 C107.630108,126.098464 96.0187683,109.034305 95.9186706,109.034305 C95.8185728,109.009284 95.7184751,125.873277 95.6684262,146.465363 C95.5933529,182.52028 95.5683284,183.971484 95.1178886,184.82219 C94.4672532,186.048207 93.9667644,186.548623 92.915738,187.099079 C92.114956,187.499411 91.4142717,187.574474 87.6355816,187.574474 L83.3063539,187.574474 L82.1552297,186.848872 C81.4044966,186.373477 80.8539589,185.747958 80.4785924,185.022356 L79.9530792,183.896422 L80.0031281,133.729796 L80.0782014,83.5381493 L80.8539589,82.5623397 C81.25435,82.0369037 82.1051808,81.3613431 82.7057674,81.0360732 C83.7317693,80.535658 84.1321603,80.4856165 88.4613881,80.4856165 C93.5663734,80.4856165 94.4172043,80.6857826 95.7434995,82.1369867 C96.1188661,82.5373189 110.007429,103.454675 126.623656,128.650581 C143.239883,153.846488 165.962072,188.250034 177.122972,205.139048 L197.392766,235.839522 L198.418768,235.163961 C207.502639,229.259062 217.112023,220.852086 224.719453,212.09482 C240.910264,193.504394 251.345455,170.835585 254.848876,146.665529 C255.874878,139.634696 256,137.557972 256,128.025062 C256,118.492153 255.874878,116.415429 254.848876,109.384595 C247.892082,61.3197135 213.683675,20.9362052 167.288368,5.97379012 C159.105376,3.32158945 150.396872,1.49507389 140.637341,0.394160408 C138.234995,0.143952798 121.693842,-0.131275573 119.616813,0.0688905149 L119.616813,0.0688905149 Z M172.017986,77.4831252 C173.219159,78.0836234 174.195112,79.2345784 174.545455,80.435575 C174.74565,81.0861148 174.795699,94.9976579 174.74565,126.348671 L174.670577,171.336 L166.73783,159.17591 L158.780059,147.01582 L158.780059,114.313685 C158.780059,93.1711423 158.880156,81.2862808 159.030303,80.7108033 C159.430694,79.3096407 160.306549,78.2087272 161.507722,77.5581875 C162.533724,77.0327515 162.909091,76.98271 166.837928,76.98271 C170.541544,76.98271 171.19218,77.0327515 172.017986,77.4831252 Z" fill="#000000">
|
||||
</path>
|
||||
</g>
|
||||
</svg>
|
After Width: | Height: | Size: 3.0 KiB |
BIN
Pictures/react.png
Normal file
After Width: | Height: | Size: 186 KiB |
39
Pictures/sql.svg
Normal file
@ -0,0 +1,39 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="167.58pt" height="190pt" viewBox="0 0 167.58 190" version="1.1">
|
||||
<defs>
|
||||
<g>
|
||||
<symbol overflow="visible" id="glyph0-0">
|
||||
<path style="stroke:none;" d="M 0 0 L 0 -55.796875 L 39.84375 -55.796875 L 39.84375 0 Z M 6.375 -3.984375 L 33.46875 -3.984375 L 19.921875 -24.3125 Z M 3.984375 -7.578125 L 17.53125 -27.890625 L 3.984375 -48.21875 Z M 35.859375 -7.578125 L 35.859375 -48.21875 L 22.3125 -27.890625 Z M 19.921875 -31.484375 L 33.46875 -51.8125 L 6.375 -51.8125 Z M 19.921875 -31.484375 "/>
|
||||
</symbol>
|
||||
<symbol overflow="visible" id="glyph0-1">
|
||||
<path style="stroke:none;" d="M 21.28125 0.953125 C 17.9375 0.953125 14.828125 0.316406 11.953125 -0.953125 C 9.085938 -2.234375 6.773438 -4.132812 5.015625 -6.65625 C 3.265625 -9.175781 2.390625 -12.296875 2.390625 -16.015625 C 2.390625 -16.335938 2.398438 -16.65625 2.421875 -16.96875 C 2.453125 -17.289062 2.46875 -17.5625 2.46875 -17.78125 L 13.078125 -17.78125 C 13.078125 -17.71875 13.0625 -17.539062 13.03125 -17.25 C 13 -16.957031 12.984375 -16.707031 12.984375 -16.5 C 12.984375 -13.894531 13.753906 -11.796875 15.296875 -10.203125 C 16.835938 -8.609375 18.992188 -7.8125 21.765625 -7.8125 C 24.835938 -7.8125 26.984375 -8.488281 28.203125 -9.84375 C 29.429688 -11.195312 30.046875 -12.671875 30.046875 -14.265625 C 30.046875 -16.128906 29.566406 -17.617188 28.609375 -18.734375 C 27.648438 -19.847656 26.382812 -20.765625 24.8125 -21.484375 C 23.25 -22.203125 21.523438 -22.851562 19.640625 -23.4375 C 17.753906 -24.019531 15.851562 -24.679688 13.9375 -25.421875 C 12.03125 -26.171875 10.289062 -27.140625 8.71875 -28.328125 C 7.15625 -29.523438 5.894531 -31.078125 4.9375 -32.984375 C 3.976562 -34.898438 3.5 -37.347656 3.5 -40.328125 C 3.5 -43.785156 4.347656 -46.640625 6.046875 -48.890625 C 7.753906 -51.148438 10.003906 -52.835938 12.796875 -53.953125 C 15.585938 -55.066406 18.601562 -55.625 21.84375 -55.625 C 25.03125 -55.625 27.960938 -55.066406 30.640625 -53.953125 C 33.328125 -52.835938 35.476562 -51.097656 37.09375 -48.734375 C 38.71875 -46.367188 39.53125 -43.300781 39.53125 -39.53125 L 39.53125 -38.578125 L 29.09375 -38.578125 L 29.09375 -39.296875 C 29.09375 -41.628906 28.441406 -43.472656 27.140625 -44.828125 C 25.835938 -46.179688 24.015625 -46.859375 21.671875 -46.859375 C 19.234375 -46.859375 17.347656 -46.3125 16.015625 -45.21875 C 14.691406 -44.132812 14.03125 -42.742188 14.03125 -41.046875 C 14.03125 -39.453125 14.503906 -38.175781 15.453125 -37.21875 C 16.410156 -36.257812 17.671875 -35.460938 19.234375 -34.828125 C 20.804688 -34.191406 22.550781 -33.59375 24.46875 -33.03125 C 26.382812 -32.476562 28.285156 -31.828125 30.171875 -31.078125 C 32.054688 -30.335938 33.78125 -29.367188 35.34375 -28.171875 C 36.914062 -26.972656 38.175781 -25.429688 39.125 -23.546875 C 40.082031 -21.660156 40.5625 -19.285156 40.5625 -16.421875 C 40.5625 -12.222656 39.738281 -8.859375 38.09375 -6.328125 C 36.445312 -3.804688 34.175781 -1.960938 31.28125 -0.796875 C 28.382812 0.367188 25.050781 0.953125 21.28125 0.953125 Z M 21.28125 0.953125 "/>
|
||||
</symbol>
|
||||
<symbol overflow="visible" id="glyph0-2">
|
||||
<path style="stroke:none;" d="M 34.265625 9.890625 L 26.375 0.953125 L 25.421875 0.953125 C 18.359375 0.953125 12.804688 -1.351562 8.765625 -5.96875 C 4.722656 -10.59375 2.703125 -17.71875 2.703125 -27.34375 C 2.703125 -37.007812 4.722656 -44.140625 8.765625 -48.734375 C 12.804688 -53.328125 18.359375 -55.625 25.421875 -55.625 C 32.492188 -55.625 38.046875 -53.328125 42.078125 -48.734375 C 46.117188 -44.140625 48.140625 -37.007812 48.140625 -27.34375 C 48.140625 -20.488281 47.101562 -14.921875 45.03125 -10.640625 C 42.957031 -6.359375 40.035156 -3.265625 36.265625 -1.359375 L 46.78125 9.890625 Z M 25.421875 -7.8125 C 29.515625 -7.8125 32.570312 -9.363281 34.59375 -12.46875 C 36.613281 -15.582031 37.625 -19.875 37.625 -25.34375 L 37.625 -29.328125 C 37.625 -34.804688 36.613281 -39.097656 34.59375 -42.203125 C 32.570312 -45.304688 29.515625 -46.859375 25.421875 -46.859375 C 21.390625 -46.859375 18.347656 -45.304688 16.296875 -42.203125 C 14.253906 -39.097656 13.234375 -34.804688 13.234375 -29.328125 L 13.234375 -25.34375 C 13.234375 -19.875 14.253906 -15.582031 16.296875 -12.46875 C 18.347656 -9.363281 21.390625 -7.8125 25.421875 -7.8125 Z M 25.421875 -7.8125 "/>
|
||||
</symbol>
|
||||
<symbol overflow="visible" id="glyph0-3">
|
||||
<path style="stroke:none;" d="M 4.78125 0 L 4.78125 -54.671875 L 14.984375 -54.671875 L 14.984375 -9.5625 L 38.09375 -9.5625 L 38.09375 0 Z M 4.78125 0 "/>
|
||||
</symbol>
|
||||
</g>
|
||||
<clipPath id="clip1">
|
||||
<path d="M 10 10 L 158 10 L 158 179 L 10 179 Z M 10 10 "/>
|
||||
</clipPath>
|
||||
<clipPath id="clip2">
|
||||
<path d="M 81.203125 11.453125 L 12.734375 50.984375 C 11.304688 51.808594 10.144531 53.816406 10.144531 55.464844 L 10.144531 134.53125 C 10.144531 136.179688 11.304688 138.1875 12.734375 139.011719 L 81.203125 178.542969 C 82.632812 179.371094 84.949219 179.371094 86.378906 178.542969 L 154.851562 139.011719 C 156.28125 138.1875 157.4375 136.179688 157.4375 134.53125 L 157.4375 55.464844 C 157.4375 53.816406 156.28125 51.808594 154.851562 50.984375 L 86.378906 11.453125 C 84.949219 10.625 82.632812 10.625 81.203125 11.453125 Z M 81.203125 11.453125 "/>
|
||||
</clipPath>
|
||||
</defs>
|
||||
<g id="surface1">
|
||||
<path style=" stroke:none;fill-rule:nonzero;fill:rgb(0%,20.783997%,39.99939%);fill-opacity:1;" d="M 81.203125 11.453125 L 12.734375 50.984375 C 11.304688 51.808594 10.144531 53.816406 10.144531 55.464844 L 10.144531 134.53125 C 10.144531 136.179688 11.304688 138.1875 12.734375 139.011719 L 81.203125 178.542969 C 82.632812 179.371094 84.949219 179.371094 86.378906 178.542969 L 154.851562 139.011719 C 156.28125 138.1875 157.4375 136.179688 157.4375 134.53125 L 157.4375 55.464844 C 157.4375 53.816406 156.28125 51.808594 154.851562 50.984375 L 86.378906 11.453125 C 84.949219 10.625 82.632812 10.625 81.203125 11.453125 Z M 81.203125 11.453125 "/>
|
||||
<g clip-path="url(#clip1)" clip-rule="nonzero">
|
||||
<g clip-path="url(#clip2)" clip-rule="nonzero">
|
||||
<path style=" stroke:none;fill-rule:nonzero;fill:rgb(22.698975%,43.099976%,64.698792%);fill-opacity:1;" d="M -55.324219 11.496094 L 222.910156 178.5 C 224.324219 179.351562 225.472656 178.699219 225.472656 177.050781 L 225.472656 12.945312 C 225.472656 11.296875 224.132812 9.957031 222.484375 9.957031 L -54.898438 9.957031 C -56.550781 9.957031 -57.886719 8.621094 -57.886719 6.96875 C -57.886719 8.621094 -56.742188 10.644531 -55.324219 11.496094 Z M -55.324219 11.496094 "/>
|
||||
<path style=" stroke:none;fill-rule:nonzero;fill:rgb(0%,30.599976%,59.599304%);fill-opacity:1;" d="M 222.910156 11.496094 L -55.324219 178.5 C -56.742188 179.351562 -57.886719 178.699219 -57.886719 177.050781 L -57.886719 12.945312 C -57.886719 11.296875 -56.550781 9.957031 -54.898438 9.957031 L 222.484375 9.957031 C 224.132812 9.957031 225.472656 8.621094 225.472656 6.96875 C 225.472656 8.621094 224.324219 10.644531 222.910156 11.496094 Z M 222.910156 11.496094 "/>
|
||||
</g>
|
||||
</g>
|
||||
<g style="fill:rgb(100%,100%,100%);fill-opacity:1;">
|
||||
<use xlink:href="#glyph0-1" x="16.603" y="117.873"/>
|
||||
<use xlink:href="#glyph0-2" x="60.199556" y="117.873"/>
|
||||
<use xlink:href="#glyph0-3" x="111.048922" y="117.873"/>
|
||||
</g>
|
||||
</g>
|
||||
</svg>
|
After Width: | Height: | Size: 7.1 KiB |
BIN
Pictures/unity.png
Normal file
After Width: | Height: | Size: 8.0 KiB |
292
index.html
@ -1,75 +1,243 @@
|
||||
<!DOCTYPE html>
|
||||
<html lang="en">
|
||||
<head>
|
||||
<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=Roboto+Slab&display=swap" rel="stylesheet">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||||
<title>Ethan's Github</title>
|
||||
</head>
|
||||
|
||||
<body>
|
||||
<a href="https://github.com/ethanglide" target="_blank"><img src="Pictures/github.png" alt="github logo" style="float: right; width: 50px; margin-top: 50px;"></a>
|
||||
<a href="https://www.linkedin.com/in/ethan-cook-76b9b81a5/" target="_blank"><img src="Pictures/linkedin.png" alt="linkedin logo" style="float: right; width: 50px; margin-top: 50px;"></a>
|
||||
<a href=""><img src="Pictures/gmail.png" alt="gmail logo" style="float: right; width: 50px; margin-top: 57px;" onclick="window.alert('My email address is ecook2489@gmail.com')"></a>
|
||||
<img src="Pictures/thedeer.ico" alt="my profile picture" style="width: 100px; float: left; margin-top: 45px;">
|
||||
<h1 style="text-decoration: underline;">Ethan Cook</h1>
|
||||
|
||||
<h2>My Programming Languages</h2>
|
||||
<div style="float: left; padding-right: 10px;">
|
||||
<img src="Pictures/c.png" alt="C Logo" style="width: 100px;">
|
||||
<img src="Pictures/csharp.png" alt="C# Logo" style="width: 100px;">
|
||||
<br>
|
||||
<img src="Pictures/python.webp" alt="Python Logo" style="width: 100px;">
|
||||
<img src="Pictures/java.png" alt="Java Logo" style="width: 100px;">
|
||||
<br>
|
||||
</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>
|
||||
<p><span class="bold">• C:</span> I've been coding in this language since 2018. Mostly for school related projects. In this language I learned most of my essential skills in programming. Functional programming, abstract data types such as Linked Lists, Binary Search Trees, Stacks, etc. I learned about recursion, memory models, pointers, sorting algorithms, and more.</p>
|
||||
<p><span class="bold">• C#:</span> My personal favourite language. I have been using this one since 2019 and have done a lot with it. This language introduced me to object oriented programming and had me go much more in depth with APIs and documentation. I have made Windows Forms Apps with Visual Studio like the polynomial factorer, and I have programmed 3D video games with Unity using their API like the Telepuzzle game.</p>
|
||||
<p><span class="bold">• Python:</span> Starting in 2018 this was my introduction to programming. This language is particularly important to me because it is what made me appreciate the simplicity of C so much more. Of course this language is the easiest to code in, but the syntactic sugar gets a little too sweet for me somtimes. However I am proficient with python and made things like discord bots using the discord.py API.</p>
|
||||
<p><span class="bold">• Java:</span> Even though I've just started using this language in 2022 I have been using C# since 2019 and these languages are really quite similar. I learned this language for my Software Design class where we used Java to go more in depth with OOP, SOLID principles, Design Patterns, etc. My most notable project in Java is developing an android application.</p>
|
||||
<p><span class="bold">• HTML/CSS/JS:</span> These languages are actually my introduction to coding as a whole. I've technically been using these languages since 2016. I've just made some simple websites like this one here.</p>
|
||||
<br>
|
||||
<h2>My Projects</h2>
|
||||
|
||||
<div class="block">
|
||||
<iframe width="560" height="315" src="https://www.youtube.com/embed/HS9tsFQpMUA" title="YouTube video player" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture" allowfullscreen style="float: left; padding-right: 15px;"></iframe>
|
||||
<h2 class="sub">Cosmotica</h2>
|
||||
<p>Cosmotica is the debut title of my indie game company<a href="https://twitter.com/MarbieGames" target="_blank">Marbie Games</a>. I worked as the director, programmer, UI/UX designer, and level designer on the game. It was developed in Unity and programmed in C#. The game features physics-based movement, an incredible soundtrack, 30 levels, a save feature that saves your settings and progress, and steam integration with in-game leaderboards and achievements.</p>
|
||||
<p>Cosmotica can be found on its<a href="https://store.steampowered.com/app/2117410/Cosmotica/?curator_clanid=4777282&utm_source=SteamDB" target="_blank">steam page</a>.</p>
|
||||
<div class="social-media">
|
||||
<a href="mailto:ecook2489@gmail.com" target="_blank">
|
||||
<img src="./Pictures/gmail.png" alt="gmail logo">
|
||||
</a>
|
||||
<a href="https://www.linkedin.com/in/ethan-cook-76b9b81a5/" target="_blank">
|
||||
<img src="./Pictures/linkedin.png" alt="linkedin logo" style="border-radius: 0.25rem;">
|
||||
</a>
|
||||
<a href="https://github.com/ethanglide" target="_blank">
|
||||
<img src="./Pictures/github.png" alt="github logo" style="border-radius: 50%;">
|
||||
</a>
|
||||
</div>
|
||||
|
||||
<div class="block">
|
||||
<img src="Pictures/courseplanner.jpg" alt="course planner home screen" style="float: right; width: 15%;">
|
||||
<h2 class="sub">UTSC Course Planner</h2>
|
||||
<p>UTSC Course Planner was created as a university project in my Software Design class. It is an android application developed using Android Studio and Java to help UTSC students plan their courses. Simply specifcy which courses you have taken and which courses you want to take, and our app will provide you with a timetable.</p>
|
||||
<p>This project was a collaborative effort of myself and four other students to work together using the Agile Scrum framework to create an app in a process that emulates the industry standard. The app was designed with SOLID principles in mind to be easily extendable and maintainable.</p>
|
||||
<p>We used Google's Firebase Realtime Database and Authentication to store and sync our data across devices and to authenicate users.</p>
|
||||
<p>Although each group member touched every part of the project at some point, my role in the project was largely Backend and Backend-UI integration. I created an API that communicated with the database to get the data needed so that integrating the backend to the UI would be a breeze and there would need to be little to no logic in the frontend.</p>
|
||||
</div>
|
||||
|
||||
<div class="block">
|
||||
<img src="Pictures/telepuzzle.png" alt="screenshot from my telepuzzle game" style="float: right; width: 35%;">
|
||||
<h2 class="sub">Telepuzzle</h2>
|
||||
<p>I made this game in Unity in around 4 days of work for the Unity Developer Community Game Jam. The theme was teleportation so I made a puzzle game where you are in a level trying to get to a seemingly unobtainable exit. However, you have a gun that can teleport objects around the level to solve the puzzles or make your own way out. The game has a good handful of levels that should not take very long to complete and it features a timer system for speedrunning. It's really fun to play around with the physics and try to break the game.</p>
|
||||
<p>You can download the game at<a href="https://ethanglide.itch.io/telepuzzle1" target="_blank">itch.io</a> or view the source code of my scripts in<a href="https://github.com/ethanglide/telepuzzle-scripts" target="_blank">this github repository</a>.</p>
|
||||
<div class="content">
|
||||
<div>
|
||||
<div class="section">
|
||||
<h2>About</h2>
|
||||
<p>I am a 3rd year Computer Science student at University of Toronto Scarborough with a focus on Software Development. Passionate in developing scalable, high quality web and games software with readable, optimized, and well tested code. 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="block">
|
||||
<img src="Pictures/glidebot.png" alt="profile of my discord bot" style="float: left; width: 20%;">
|
||||
<h2 class="sub">Discord Bot</h2>
|
||||
<p>This bot was written in python using the discord.py API. I made it for fun just to test out and learn some more about python as well as asyncronous coroutines in code. This bot can do things like add numbers, roll dice, direct message users, kick users (and create invites to bring them back), and even knows ping pong. I have actually created a discord bot in C# as well using the DSharpPlus API, but the code for that bot was unfortunately lost. But that one could join into voice channels and stuff.</p>
|
||||
<p>The source code for this bot can be found in<a href="https://github.com/ethanglide/glide-bot" target="_blank">this github repository</a>.</p>
|
||||
<div class="section">
|
||||
<h2>Skills</h2>
|
||||
<ul>
|
||||
<li style="margin: 0;">
|
||||
5+ 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 (MySQL, SQLite) and NoSQL (Firebase, MongoDB) 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 class="block">
|
||||
<img src="Pictures/polyfactor.png" alt="my polynomial factorer app" style="float: right; width: 40%;">
|
||||
<h2 class="sub">Polynomial Factorer</h2>
|
||||
<p>This Windows Forms App was coded using the C# .NET framework to help me with my math homework back in high school. You simply enter in the coefficients of your polynomial into the text box and the program will find the roots. This saved me so much time in math class because we would have to guess and check roots for higher-degree polynomials and that can take a while. Sure symbolab or wolfram alpha exists but I did not know this at the time and I learned a lot about OOP on my own coding this program.</p>
|
||||
<p>The entire Visual Studio project for this can be found in<a href="https://github.com/ethanglide/polynomial-factorer" target="_blank">this github repository</a>.</p>
|
||||
|
||||
<br><br>
|
||||
<p>If you would like to see more of my projects or get in contact with me, the top right corner of this webpage has links to my Github repositories, my LinkedIn profile, as well as my email address. <span class="bold">Thank you for visiting!</span></p>
|
||||
<div class="section">
|
||||
<h2>Work Experience</h2>
|
||||
<div class="experience">
|
||||
<div class="advertience-wrapper">
|
||||
<div>
|
||||
<img src="./Pictures/adverience.png" alt="adverience logo">
|
||||
</div>
|
||||
|
||||
</body>
|
||||
</div>
|
||||
<div class="experience-text">
|
||||
<div class="experience-header">
|
||||
<h2>advertience Inc. | Ad Analytics Developer</h2>
|
||||
<p>05/2023 - Present</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 web application to help nonprofit organizations create customized donation pages with
|
||||
optimized payment forms, resulting in an over 25% increase in donation conversions for our clients
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
<div class="experience">
|
||||
<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 class="jump-wrapper">
|
||||
<div>
|
||||
<img src="./Pictures/jumpplus.jpeg" alt="jump+ logo">
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="section">
|
||||
<h2>Projects</h2>
|
||||
<div class="experience">
|
||||
<div class="cosmotica-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 Development</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="experience-text">
|
||||
<div class="experience-header">
|
||||
<h2>UTSC Course Planner | Android App Development</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 class="course-planner-wrapper">
|
||||
<div>
|
||||
<img src="./Pictures/courseplanner.jpg" alt="course planner demo">
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="experience">
|
||||
<div class="cosmotica-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 Development</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>
|
||||
<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>
|
360
style.css
@ -1,63 +1,323 @@
|
||||
body {
|
||||
background-color: #093647;
|
||||
background-color: #353535;
|
||||
margin: 0;
|
||||
height: 100vh;
|
||||
}
|
||||
|
||||
p {
|
||||
color: white;
|
||||
padding-left: 10px;
|
||||
font-size: 20px;
|
||||
font-family: Arial, Helvetica, sans-serif;
|
||||
main {
|
||||
display: flex;
|
||||
flex-flow: column;
|
||||
height: 100%;
|
||||
}
|
||||
|
||||
.bold {
|
||||
font-weight: bold;
|
||||
color: #92becf;
|
||||
p, h1, h2, h3, h4, h5, h6, li {
|
||||
color: #fff;
|
||||
font-family: 'Roboto Slab', sans-serif;
|
||||
margin: 0;
|
||||
}
|
||||
|
||||
h1 {
|
||||
color: #9bcde2;
|
||||
font-size: 60px;
|
||||
font-family: Arial, Helvetica, sans-serif;
|
||||
}
|
||||
|
||||
h2 {
|
||||
color: #658c9c;
|
||||
padding-left: 10px;
|
||||
font-size: 30px;
|
||||
font-family: Arial, Helvetica, sans-serif;
|
||||
}
|
||||
|
||||
h2.sub {
|
||||
color: #9bcde2;
|
||||
}
|
||||
|
||||
img {
|
||||
margin: 10px;
|
||||
margin-right: 20px;
|
||||
border-radius: 8px;
|
||||
}
|
||||
|
||||
li {
|
||||
color: lightgray;
|
||||
padding-left: 10px;
|
||||
font-size: 20px;
|
||||
font-family: Arial, Helvetica, sans-serif;
|
||||
p, li {
|
||||
font-size: 1.5rem;
|
||||
}
|
||||
|
||||
a {
|
||||
color: #9bcde2;
|
||||
padding-left: 10px;
|
||||
font-size: 20px;
|
||||
font-family: Arial, Helvetica, sans-serif;
|
||||
}
|
||||
a:hover {
|
||||
color: #cdf0ff;
|
||||
}
|
||||
a:active {
|
||||
color: #ffffff;
|
||||
color: #ae00d1;
|
||||
text-decoration: none;
|
||||
transition: all 0.1s ease-out 0s;
|
||||
}
|
||||
|
||||
.block {
|
||||
float: left;
|
||||
padding-bottom: 10px;
|
||||
a:hover {
|
||||
color: #c500ec;
|
||||
}
|
||||
|
||||
a:active {
|
||||
color: #d400ff;
|
||||
}
|
||||
|
||||
div.header {
|
||||
display: flex;
|
||||
flex: 0 1 auto;
|
||||
flex-wrap: wrap;
|
||||
justify-content: space-between;
|
||||
align-items: center;
|
||||
gap: 1rem;
|
||||
padding: 1rem;
|
||||
border-bottom: 0.25rem solid #fff;
|
||||
}
|
||||
|
||||
div.profile-name {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
gap: 1rem;
|
||||
height: 5rem;
|
||||
}
|
||||
|
||||
div.profile-name img {
|
||||
width: 5rem;
|
||||
height: 5rem;
|
||||
}
|
||||
|
||||
div.profile-name h1 {
|
||||
font-size: 3rem;
|
||||
padding: 0%;
|
||||
}
|
||||
|
||||
div.social-media {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
gap: 1.5rem;
|
||||
}
|
||||
|
||||
div.social-media a img {
|
||||
width: 3rem;
|
||||
height: 3rem;
|
||||
transition: box-shadow 0.2s ease-out 0s;
|
||||
}
|
||||
|
||||
div.social-media a img[src="./Pictures/gmail.png"] {
|
||||
width: 3.7rem;
|
||||
height: 3rem;
|
||||
border-radius: 0.4rem;
|
||||
transition: box-shadow 0.2s ease-out 0s;
|
||||
}
|
||||
|
||||
div.social-media a:hover img {
|
||||
box-shadow: 0 20px 25px -5px rgb(255 255 255 / 0.1);
|
||||
}
|
||||
|
||||
img.profile-picture {
|
||||
width: 10rem;
|
||||
height: 10rem;
|
||||
}
|
||||
|
||||
div.content {
|
||||
display: flex;
|
||||
flex: 1 1 auto;
|
||||
overflow-y: auto;
|
||||
padding: 1rem;
|
||||
}
|
||||
|
||||
div.content > div {
|
||||
display: flex;
|
||||
width: 100%;
|
||||
flex-flow: column;
|
||||
gap: 1rem;
|
||||
}
|
||||
|
||||
div.section {
|
||||
display: flex;
|
||||
flex-flow: column;
|
||||
gap: 2rem;
|
||||
padding: 1rem;
|
||||
border-radius: 0.5rem;
|
||||
border: #18181800 0.15rem solid;
|
||||
transition: all 0.25s ease-out 0s;
|
||||
}
|
||||
|
||||
div.section:hover {
|
||||
border-color: #181818;
|
||||
background-color: #414141;
|
||||
}
|
||||
|
||||
div.section h2 {
|
||||
font-size: 2rem;
|
||||
margin: 0%;
|
||||
}
|
||||
|
||||
div.languages-images {
|
||||
width: 15%;
|
||||
}
|
||||
|
||||
div.languages-images div {
|
||||
display: grid;
|
||||
grid-template-columns: repeat(2, 50%);
|
||||
gap: 1rem;
|
||||
}
|
||||
|
||||
div.languages-images img {
|
||||
width: 100%;
|
||||
height: 100%;
|
||||
border: #00000000 0.15rem solid;
|
||||
border-radius: 1rem;
|
||||
transition: all 0.25s ease-out 0s;
|
||||
}
|
||||
|
||||
div.languages-images img:hover {
|
||||
border: #fff 0.15rem solid;
|
||||
background-color: #5a5a5a;
|
||||
}
|
||||
|
||||
ul {
|
||||
margin: 0;
|
||||
}
|
||||
|
||||
li {
|
||||
margin-top: 1rem;
|
||||
}
|
||||
|
||||
li li {
|
||||
font-size: 90%;
|
||||
}
|
||||
|
||||
div.advertience-wrapper {
|
||||
width: 20%;
|
||||
padding: 1rem;
|
||||
min-width: 7rem;
|
||||
}
|
||||
|
||||
div.advertience-wrapper > div {
|
||||
position: relative;
|
||||
width: 100%;
|
||||
padding-bottom: 140%;
|
||||
}
|
||||
|
||||
div.advertience-wrapper > div > img {
|
||||
position: absolute;
|
||||
top: -0.6rem;
|
||||
left: -0.6rem;
|
||||
right: 0;
|
||||
bottom: 0;
|
||||
height: 100%;
|
||||
width: 100%;
|
||||
padding: 0.6rem;
|
||||
background-color: #fff;
|
||||
border-radius: 1rem;
|
||||
}
|
||||
|
||||
div.jump-wrapper {
|
||||
width: 20%;
|
||||
min-width: 10rem;
|
||||
}
|
||||
|
||||
div.jump-wrapper > div {
|
||||
position: relative;
|
||||
width: 100%;
|
||||
padding-bottom: 100%;
|
||||
}
|
||||
|
||||
div.jump-wrapper > div > img {
|
||||
position: absolute;
|
||||
top: 0;
|
||||
left: 0;
|
||||
right: 0;
|
||||
bottom: 0;
|
||||
height: 100%;
|
||||
width: 100%;
|
||||
border-radius: 1rem;
|
||||
}
|
||||
|
||||
div.cosmotica-wrapper {
|
||||
width: 50%;
|
||||
min-width: 20rem;
|
||||
}
|
||||
|
||||
div.cosmotica-wrapper > div {
|
||||
position: relative;
|
||||
width: 100%;
|
||||
padding-bottom: 56.25%;
|
||||
}
|
||||
|
||||
div.cosmotica-wrapper > div > iframe, div.cosmotica-wrapper > div > img {
|
||||
position: absolute;
|
||||
top: 0;
|
||||
left: 0;
|
||||
right: 0;
|
||||
bottom: 0;
|
||||
height: 100%;
|
||||
width: 100%;
|
||||
border-radius: 1rem;
|
||||
}
|
||||
|
||||
div.course-planner-wrapper {
|
||||
width: 1%;
|
||||
min-width: 10rem;
|
||||
}
|
||||
|
||||
div.course-planner-wrapper > div {
|
||||
position: relative;
|
||||
width: 100%;
|
||||
padding-bottom: 197%;
|
||||
}
|
||||
|
||||
div.course-planner-wrapper > div > img {
|
||||
position: absolute;
|
||||
top: 0;
|
||||
left: 0;
|
||||
right: 0;
|
||||
bottom: 0;
|
||||
height: 100%;
|
||||
width: 100%;
|
||||
border-radius: 0.5rem;
|
||||
}
|
||||
|
||||
div.experience {
|
||||
display: flex;
|
||||
gap: 2rem;
|
||||
flex-wrap: nowrap;
|
||||
}
|
||||
|
||||
div.experience-text {
|
||||
flex-grow: 1;
|
||||
}
|
||||
|
||||
div.experience-header {
|
||||
display: flex;
|
||||
justify-content: space-between;
|
||||
align-items: center;
|
||||
gap: 1rem;
|
||||
}
|
||||
|
||||
.large-list li {
|
||||
font-size: 2rem;
|
||||
}
|
||||
|
||||
@media only screen and (max-device-width: 700px) {
|
||||
div.profile-name {
|
||||
gap: 0.8rem;
|
||||
height: 3rem;
|
||||
}
|
||||
|
||||
div.profile-name img {
|
||||
width: 3rem;
|
||||
height: 3rem;
|
||||
}
|
||||
|
||||
div.profile-name h1 {
|
||||
font-size: 1.7rem;
|
||||
}
|
||||
|
||||
div.social-media {
|
||||
gap: 1rem;
|
||||
}
|
||||
|
||||
div.social-media a img {
|
||||
width: 2rem;
|
||||
height: 2rem;
|
||||
}
|
||||
|
||||
div.social-media a img[src="./Pictures/gmail.png"] {
|
||||
width: 2.5rem;
|
||||
height: 2rem;
|
||||
border-radius: 0.2rem;
|
||||
}
|
||||
|
||||
div.experience {
|
||||
flex-flow: column;
|
||||
}
|
||||
|
||||
div.languages-images {
|
||||
width: 100%;
|
||||
}
|
||||
|
||||
div.languages-images div {
|
||||
grid-template-columns: repeat(3, 33%);
|
||||
}
|
||||
|
||||
div.cosmotica-wrapper {
|
||||
width: 100%;
|
||||
}
|
||||
|
||||
.large-list li {
|
||||
font-size: 1.5rem;
|
||||
}
|
||||
}
|