<!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>
