mirror of
https://github.com/EthanPisani/ethanpisani.com.git
synced 2025-07-02 18:15:18 -04:00
547 lines
19 KiB
HTML
547 lines
19 KiB
HTML
<!DOCTYPE html>
|
||
<html lang="en">
|
||
<head>
|
||
<meta charset="UTF-8" />
|
||
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
|
||
<meta name="msapplication-TileColor" content="#2cbb00" />
|
||
<meta name="theme-color" content="#2cbb00" />
|
||
<title>Ethan Pisani - Portfolio</title>
|
||
|
||
<link
|
||
rel="preload"
|
||
href="{{ url_for('static',filename='css/main.css') }}"
|
||
as="style"
|
||
/>
|
||
<!-- Google Font -->
|
||
<link
|
||
href="https://fonts.googleapis.com/css?family=Roboto&display=swap"
|
||
rel="stylesheet"
|
||
/>
|
||
<link
|
||
rel="stylesheet"
|
||
type="text/css"
|
||
href="{{ url_for('static',filename='css/main.css') }}"
|
||
/>
|
||
|
||
<meta name="msapplication-TileColor" content="#000000" />
|
||
<meta name="theme-color" content="#000000" />
|
||
<link
|
||
rel="icon"
|
||
href="{{ url_for('static',filename='img/favicon.ico') }}"
|
||
/>
|
||
<!-- Particles.js Library -->
|
||
<script src="https://cdn.jsdelivr.net/particles.js/2.0.0/particles.min.js"></script>
|
||
</head>
|
||
|
||
<body>
|
||
<div id="particles-js"></div>
|
||
<div class="content">
|
||
<h1 class="text-pop-up-top">Ethan Pisani.</h1>
|
||
|
||
<p>
|
||
<a href="https://www.linkedin.com/in/ethanpisani" target="_blank"
|
||
>LinkedIn</a
|
||
>
|
||
⋄ <a href="https://www.ethanpisani.com" target="_blank">Website</a> ⋄
|
||
<a href="https://www.github.com/EthanPisani" target="_blank">GitHub</a>
|
||
</p>
|
||
|
||
<div class="section">
|
||
<h2>Introduction</h2>
|
||
<p>
|
||
Hey, I'm Ethan Pisani, a Computer Science student at the University of
|
||
Western Ontario, wrapping up my Bachelor's with an Honors
|
||
Specialization in 2025. I’m passionate about AI, machine learning, and
|
||
game development, with a strong focus on creating innovative solutions
|
||
through both software engineering and AI techniques.
|
||
</p>
|
||
<p>
|
||
My projects range from developing AI agents for games like CSGO, where
|
||
I compare traditional pathfinding with deep learning, to working on
|
||
real-time bus visualization using AI/ML for my city’s transit system.
|
||
I’m also building a 3D game in Godot with custom C++ modules that
|
||
interface with LLaMA, stable-diffusion, and more.
|
||
</p>
|
||
<p>
|
||
I’ve interned as a Junior Software Developer at the Canada Revenue
|
||
Agency, gaining hands-on experience with COBOL, JCL, and mainframe
|
||
debugging, while also doing QA and bug triaging. Additionally, I’ve
|
||
had a stint at the DFO Government of Canada as a Junior Communications
|
||
Officer, helping streamline communications and manage user stories for
|
||
software projects.
|
||
</p>
|
||
|
||
<p>
|
||
When I’m not coding, I’m probably tinkering with my homelab, I just
|
||
upgraded to 10gb LAN!, where I self-host apps and experiment with
|
||
different systems like Docker, TrueNAS, and Proxmox. You’ll often find
|
||
me deep-diving into emerging tech, whether it’s neural networks or new
|
||
software, always looking for that next creative challenge.
|
||
</p>
|
||
</div>
|
||
|
||
<div class="section">
|
||
<h2>Education</h2>
|
||
<p class="project-container-p">
|
||
<strong
|
||
>Bachelor of Computer Science
|
||
<em>University of Western Ontario</em></strong
|
||
>
|
||
<span class="project-date">2021 — 2025</span>
|
||
</p>
|
||
<p>Honors Specialization in Computer Science</p>
|
||
</div>
|
||
|
||
<div class="section">
|
||
<h2>Papers</h2>
|
||
<ul class="projects-list">
|
||
<hr />
|
||
<div name="Paper1">
|
||
<p class="project-container-p">
|
||
<strong
|
||
><a
|
||
href="https://github.com/michaelsalton/ProjectLambda/blob/main/Comparing_AI_Navigation_Methods_Using_Counter_Strike__Global_Offensive.pdf"
|
||
target="_blank"
|
||
>Comparing AI Navigation Methods Using Counter-Strike: Global
|
||
Offensive</a
|
||
></strong
|
||
>
|
||
<span class="project-date">2023</span>
|
||
</p>
|
||
<ul>
|
||
<li>
|
||
The paper presents two AI agents developed for playing the game
|
||
<i>Counter-Strike: Global Offensive</i> (CS:GO).
|
||
</li>
|
||
<li>
|
||
The first agent combines YOLOv7 object detection with the A*
|
||
pathfinding algorithm, while the second agent uses a deep neural
|
||
network trained through behavioral cloning and offline
|
||
reinforcement learning.
|
||
</li>
|
||
<li>
|
||
The project aims to create an AI that mimics human player
|
||
performance based solely on visual inputs, comparing the realism
|
||
and behavior of pathfinding-based AI versus machine
|
||
learning-based AI.
|
||
</li>
|
||
</ul>
|
||
</div>
|
||
</ul>
|
||
</div>
|
||
|
||
<div class="section">
|
||
<h2>Projects</h2>
|
||
|
||
<ul class="projects-list">
|
||
<!-- Projects: Project Lambda, Portfolio Website, Homelab, Tails of Ailurus, LTC Bus AI/ML, SMPLY-Navigate, Gan website, Project ASH --->
|
||
<hr />
|
||
|
||
<div name="Tails of Ailurus">
|
||
<p class="project-container-p">
|
||
<strong>Tails of Ailurus</strong>
|
||
<span class="project-date">September 2024 — Present</span>
|
||
</p>
|
||
<ul>
|
||
<li>Developing a 3D game in the Godot 4.3 Engine</li>
|
||
<li>
|
||
Wrote custom GDextension modules in C++ for the game engine
|
||
</li>
|
||
<li>
|
||
Custom modules include interfaces for llama.cpp,
|
||
stable-diffusion.cpp, whisper.cpp, and piper TTS
|
||
</li>
|
||
<li>
|
||
Dynamic story-telling and world-building ultizing Meta's Llama 3
|
||
models, c0 diffusion model and piper TTS models
|
||
</li>
|
||
</ul>
|
||
</div>
|
||
|
||
<hr />
|
||
|
||
<div name="LTC Bus AI/ML">
|
||
<p class="project-container-p">
|
||
<strong>LTC Bus AI/ML</strong>
|
||
<span class="project-date">October 2024 — Present</span>
|
||
</p>
|
||
<ul>
|
||
<li>
|
||
Partnered with Dr. Yili Tang and the MoTech Group to develop
|
||
tools for real-time bus movement visualization in London using
|
||
AI/ML techniques and data from the City of London transit
|
||
portal.
|
||
</li>
|
||
<li>
|
||
Utilized SQL and Multiple Linear Regression to store and analyze
|
||
real-time bus location data, aiming to enhance the accuracy of
|
||
existing bus time information through advanced machine learning
|
||
methodologies.
|
||
</li>
|
||
</ul>
|
||
</div>
|
||
|
||
<hr />
|
||
|
||
<div name="Project ASH">
|
||
<p class="project-container-p">
|
||
<strong>Project ASH</strong>
|
||
<span class="project-date">2023</span>
|
||
</p>
|
||
<ul>
|
||
<li>
|
||
Created a Virtual Personality by using a blend of cutting-edge
|
||
open-source AI models. Employed a diverse array of Machine
|
||
Learning techniques, including LLM, TTS, STT, and text analysis.
|
||
</li>
|
||
<li>
|
||
Designed a modular system over MQTT to integrate and control
|
||
these models and algorithms, resulting in the development of a
|
||
human-like real time conversational avatar that can be locally
|
||
hosted on consumer hardware.
|
||
</li>
|
||
</ul>
|
||
</div>
|
||
|
||
<hr />
|
||
|
||
<div name="ASL-Translate-GPT ">
|
||
<p class="project-container-p">
|
||
<strong
|
||
><a
|
||
href="https://github.com/EthanPisani/ASL-Translate-GPT"
|
||
target="_blank"
|
||
>ASL-Translate-GPT
|
||
</a></strong
|
||
>
|
||
<span class="project-date">2023</span>
|
||
</p>
|
||
<ul>
|
||
<li>
|
||
Contributed to a modular design approach that enabled
|
||
independent development and testing of project components,
|
||
improving team efficiency and streamlining code integration.
|
||
</li>
|
||
<li>
|
||
Addressed server crashes, API instability, and integration
|
||
issues through improved version control, error handling, and
|
||
coding standardization, resulting in a resilient and functional
|
||
application.
|
||
</li>
|
||
<li>
|
||
Led the implementation of an image recognition module that
|
||
captured and converted ASL hand signs into text, enabling
|
||
seamless communication with a chatbot using OpenAI’s GPT-3 API,
|
||
while supporting English, Spanish, and French for broader
|
||
accessibility.
|
||
</li>
|
||
<li>
|
||
Streamlined collaboration through Bitbucket for version control,
|
||
conducted regular in-person group work sessions, and implemented
|
||
weekly scrum meetings to enhance communication, track progress
|
||
using Jira, and ensure accountability across the team.
|
||
</li>
|
||
</ul>
|
||
</div>
|
||
|
||
<hr />
|
||
|
||
<div name="SMPLY-Navigate">
|
||
<p class="project-container-p">
|
||
<strong
|
||
><a
|
||
href="https://github.com/EthanPisani/SMPLY-Navigate"
|
||
target="_blank"
|
||
>SMPLY-Navigate</a
|
||
></strong
|
||
>
|
||
<span class="project-date">2022</span>
|
||
</p>
|
||
<ul>
|
||
<li>
|
||
This project for Western University Software Engineering Class
|
||
is an app that uses the university’s floor plans, allowing users
|
||
to search and navigate each floor of select buildings. The
|
||
application allows users to search for points of interest,
|
||
browse floor maps, and save personal points of interest. The
|
||
application will also have an editing tool for developers to
|
||
create and edit map metadata.
|
||
</li>
|
||
<li>
|
||
Involved using the complete software development cycle, from
|
||
initial requirements to design, to development utilizing Java,
|
||
JUnit 5, Git, BitBucket, and Swing, to testing a fully featured
|
||
desktop application.
|
||
</li>
|
||
</ul>
|
||
</div>
|
||
|
||
<hr />
|
||
|
||
<div name="Gan Flask Website">
|
||
<p class="project-container-p">
|
||
<strong
|
||
><a
|
||
href="https://github.com/EthanPisani/gan.ethanpisani.com"
|
||
target="_blank"
|
||
>Gan Flask Website</a
|
||
></strong
|
||
>
|
||
<span class="project-date">2021</span>
|
||
</p>
|
||
<ul>
|
||
<li>
|
||
Trained NVIDIA’s StyleGAN2-ADA on dataset of Galaxy Images to
|
||
generate new images
|
||
</li>
|
||
<li>
|
||
Developed and hosted a website for displaying the images using
|
||
Flask and Docker
|
||
</li>
|
||
</ul>
|
||
</div>
|
||
|
||
<hr />
|
||
|
||
<div name="chemistry Study Guide">
|
||
<p class="project-container-p">
|
||
<strong>
|
||
<a href="/chem12cpt" target="_blank">Chemistry Study Guide</a>
|
||
</strong>
|
||
<span class="project-date">2021</span>
|
||
</p>
|
||
<ul>
|
||
<li>
|
||
Developed a Flask web application to help students study for
|
||
their Chemistry 12 CPT exam
|
||
</li>
|
||
<li>
|
||
4 sections using different interactive study methods:
|
||
flashcards, quizzes, and a follow along, and 3D visualizer
|
||
</li>
|
||
<li>
|
||
Utilized Python, Flask, HTML, CSS, and JavaScript to create a
|
||
user-friendly study guide
|
||
</li>
|
||
</ul>
|
||
</div>
|
||
|
||
<hr />
|
||
|
||
<div name="Homelab">
|
||
<p class="project-container-p">
|
||
<strong>Homelab</strong> <span class="project-date">2019</span>
|
||
</p>
|
||
<ul>
|
||
<li>
|
||
A collection of computers and servers
|
||
<span class="project-date">both local and cloud-based</span>
|
||
running various software such as Debian, Proxmox, TrueNAS, and
|
||
OPNsense.
|
||
</li>
|
||
<li>
|
||
Experience self-hosting apps like Gitea, Jellyfin, Docker apps,
|
||
reverse proxy config, and more.
|
||
</li>
|
||
</ul>
|
||
</div>
|
||
|
||
<hr />
|
||
</ul>
|
||
</div>
|
||
|
||
<div class="section">
|
||
<h2>Skills</h2>
|
||
<ul class="skills-list">
|
||
<li>Python</li>
|
||
<li>Java</li>
|
||
<li>COBOL</li>
|
||
<li>C</li>
|
||
<li>C++</li>
|
||
<li>JCL</li>
|
||
<li>Bash</li>
|
||
<li>Rust</li>
|
||
<li>SQL</li>
|
||
<li>R</li>
|
||
<li>Numpy</li>
|
||
<li>TensorFlow</li>
|
||
<li>Docker</li>
|
||
<li>Jira</li>
|
||
<li>Git</li>
|
||
<li>Linux</li>
|
||
</ul>
|
||
</div>
|
||
|
||
<div class="section">
|
||
<h2>Experience</h2>
|
||
<p class="project-container-p">
|
||
<strong>Junior Software Developer | Canada Revenue
|
||
Agency</strong> <span class="project-date">May 2024 — August 2024</span>
|
||
</p>
|
||
<ul>
|
||
<li>
|
||
Trained on Batch/Online COBOL, JCL, Mainframe ISPF. Debugged
|
||
programs in Xpediter, Topaz Workbench.
|
||
</li>
|
||
<li>
|
||
Performed daily QA testing of regressions, enhancing team
|
||
efficiency.
|
||
</li>
|
||
<li>
|
||
Gained experience in agile development, using Jira, code reviews,
|
||
impact analysis, and Endevor.
|
||
</li>
|
||
</ul>
|
||
<hr />
|
||
<p class="project-container-p">
|
||
<strong>Junior Communications Officer | DFO Government of
|
||
Canada</strong> <span class="project-date">May 2022 — August 2022</span>
|
||
</p>
|
||
<ul>
|
||
<li>
|
||
Updating the team’s intranet site using Drupal, managed email
|
||
inboxes, documented user stories
|
||
</li>
|
||
<li>
|
||
Helped my team work more efficiently by helping with any requested
|
||
tasks
|
||
</li>
|
||
<li>
|
||
Gained experience in communicating with stakeholders about user
|
||
stories to be used in a large software project.
|
||
</li>
|
||
</ul>
|
||
</div>
|
||
|
||
<div class="section">
|
||
<h2>Extra-Curricular Activities</h2>
|
||
|
||
<hr />
|
||
|
||
<p class="project-container-p">
|
||
<strong>Team Lead | LTC Bus AI/ML | Western Developer Society</strong
|
||
><span class="project-date">October 2024</span>
|
||
</p>
|
||
<ul>
|
||
<li>
|
||
Partnered with Dr. Yili Tang to develop tools for real-time bus
|
||
movement visualization using AI/ML techniques.
|
||
</li>
|
||
<li>
|
||
Utilized SQL and Multiple Linear Regression to store and analyze bus
|
||
location data.
|
||
</li>
|
||
</ul>
|
||
|
||
<hr />
|
||
|
||
<p class="project-container-p">
|
||
<strong>Developer | Project ASH | Western AI</strong
|
||
><span class="project-date">2023</span>
|
||
</p>
|
||
<ul>
|
||
<li>
|
||
Created a Virtual Personality by using a blend of cutting-edge
|
||
open-source AI models. Employed a diverse array of Machine Learning
|
||
techniques, including LLM, TTS, STT, and text analysis.
|
||
</li>
|
||
<li>
|
||
Designed a modular system over MQTT to integrate and control these
|
||
models and algorithms, resulting in the development of a human-like
|
||
real time conversational avatar that can be locally hosted on
|
||
consumer hardware.
|
||
</li>
|
||
</ul>
|
||
|
||
<hr />
|
||
|
||
<p class="project-container-p">
|
||
<strong>Developer | Project Lambda | Western AI</strong
|
||
><span class="project-date">2022</span>
|
||
</p>
|
||
<ul>
|
||
<li>Created 2 Machine Learning Agents to play the video game CSGO</li>
|
||
<li>
|
||
Object detection Model using Yolov7 in Pytorch and A* path finding
|
||
</li>
|
||
<li>
|
||
Behavioural Cloning Model using JAX/FLAX running from a OpenAI GYM
|
||
environment
|
||
</li>
|
||
<li>Achieved 87% accuracy on custom data set of over 5,000 images</li>
|
||
</ul>
|
||
|
||
<hr />
|
||
|
||
<p class="project-container-p">
|
||
<strong>Developer | Pose Estimation | Western AI</strong
|
||
><span class="project-date">2021</span>
|
||
</p>
|
||
<ul>
|
||
<li>
|
||
Designed a custom ANN for Image Classification of a yoga pose.
|
||
</li>
|
||
<li>Developed model using TensorFlow and Numpy.</li>
|
||
<li>Detected using TensorFlow back-end to a HTML/CSS website.</li>
|
||
</ul>
|
||
|
||
<hr />
|
||
</div>
|
||
</div>
|
||
|
||
<script>
|
||
particlesJS("particles-js", {
|
||
particles: {
|
||
number: { value: 100, density: { enable: true, value_area: 800 } },
|
||
color: { value: "#2cbb00" },
|
||
shape: {
|
||
type: "circle",
|
||
stroke: { width: 0, color: "#000000" },
|
||
polygon: { nb_sides: 5 },
|
||
},
|
||
opacity: {
|
||
value: 0.5,
|
||
random: false,
|
||
anim: { enable: false, speed: 1, opacity_min: 0.1, sync: false },
|
||
},
|
||
size: {
|
||
value: 3,
|
||
random: true,
|
||
anim: { enable: false, speed: 40, size_min: 0.1, sync: false },
|
||
},
|
||
line_linked: {
|
||
enable: true,
|
||
distance: 150,
|
||
color: "#2cbb00",
|
||
opacity: 0.4,
|
||
width: 1,
|
||
},
|
||
move: {
|
||
enable: true,
|
||
speed: 6,
|
||
direction: "none",
|
||
random: false,
|
||
straight: false,
|
||
out_mode: "out",
|
||
bounce: false,
|
||
attract: { enable: false, rotateX: 600, rotateY: 1200 },
|
||
},
|
||
},
|
||
interactivity: {
|
||
detect_on: "canvas",
|
||
events: {
|
||
onhover: { enable: true, mode: "repulse" },
|
||
onclick: { enable: true, mode: "push" },
|
||
resize: true,
|
||
},
|
||
modes: {
|
||
repulse: { distance: 100, duration: 0.4 },
|
||
push: { particles_nb: 4 },
|
||
},
|
||
},
|
||
retina_detect: true,
|
||
});
|
||
</script>
|
||
</body>
|
||
</html>
|