Headshot placeholder

Julien Chagnon

3rd Year Computer Engineering Student

at Queen's University

See Resume PDF icon Follow me on LinkedIn LinkedIn logo

Hello! I’m Julien Chagnon, a bilingual (French/English) computer engineering student at Queen’s University in my 3rd year.

About Me

Through my coursework, labs, and independent projects, I have built strong programming experience across C/C++, Python, Java, JavaScript, Assembly (Nios II), and the Qt framework, with proficiency in both Windows and Linux development environments. I frequently work with libraries and tools such as Scikit-learn, Pandas, h5py, Seaborn, and Matplotlib for machine learning, data analysis, and visualization.

My interests also extend into hardware systems and embedded design. I have applied VHDL, LTspice, and Arduino-based prototyping in hands-on labs and team design projects, strengthening my abilities in SPICE-based circuit simulation, hardware/software debugging, and CAD modeling using SolidWorks. I also have experience with data management using SQL and HDF5, as well as GIS tools like QGIS.

In recognition of my academic performance, I was awarded the Dean’s Scholar Distinction at Queen’s University for the 2024–2025 academic session, an honour given to top-performing students in the Faculty of Engineering and Applied Science.

Me (Left) in my FREC attire
Hover or tap to read

I'm involved in extracurricular activities at Queen’s, including the Ski and Snowboard Club. In second year, I was a member of the First-Year Engineering Committee (FREC), where I helped organize events and initiatives for incoming engineering students as a means to get involved within the Queen's Engineering community. As part of the role, I wore the iconic FREC outfit and dyed my body purple.

Biking with my brother and dad
Hover or tap to read

Outside of computer engineering, I’m passionate about outdoor sports like mountain biking, skiing, and kiteboarding, which are activities I enjoy regularly in and around my hometown of Ottawa with my family. The photo attached shows my dad, brother, and me at Mont Tremblant bike resort in Québec.

Projects

Hover or click to expand project window size.


Running and Jumping Detection using Machine Learning

Python, scikit-learn

</>

See Code

I developed a complete human activity recognition system that processes raw smartphone accelerometer data to distinguish between walking and jumping. Following a structured workflow encompassing data collection, hierarchical HDF5 storage, signal visualization, preprocessing, feature extraction and normalization, classifier training, and GUI deployment, we leveraged Python’s scientific stack (pandas, h5py, scipy, scikit-learn) to import CSV files from an accelerometer app, clean and smooth the time series with forward-fill and moving-average filters, extract a suite of 40 statistical features per 5-second window, train a logistic regression classifier to over 95% accuracy, and finally package the process into a Tkinter desktop application.

Tkinter dashboard highlighting classified windows

A function segments incoming CSV data into time-based windows and feeds them through the trained logistic-regression model and normalization scaler (loaded via joblib), allowing the classify_csv routine to generate real-time predictions on user data. On the GUI side, the user interface was built using Tkinter, with classification results visualized using matplotlib. Colour coded overlays indicate detected activity types alongside timestamped labels.

Dynamic Time Allocating Calendar

C++, Qt
Qt calendar displaying classes and study blocks

As part of a semester-long Agile software development project, our team designed and implemented a dynamic time allocating calendar that intelligently adapts a student’s weekly schedule in real time. Built in C++ using the Qt framework, the application imports academic timetables directly from Queen’s University’s SOLUS system via .ics files and integrates them with user-entered events. The different time blocks consist of classes parsed from the .ics file, fixed events, and tasks which prompt the user for an estimated effort in hours and dynamically allocate study sessions around the existing schedule. Unlike static scheduling tools, this system dynamically redistributes the study sessions as new deadlines are added or priorities change, using a weighted time-allocation algorithm to balance workload.

The project followed the Agile Scrum methodology, with development structured around two-week sprints. Our programming was also managed through GitLab, with each feature tracked through milestones, issues, and merge requests across team members.

911 Dispatcher Training Device

Arduino, HTML, CSS, JavaScript
đź“„ Final Report

As part of a client-based design project, our team partnered with the Toronto Police Service to modernize the Perfex training device, a 911 dispatcher testing platform built around manual time checks and paper-based modules that is becoming outdated. We translated all five original test stations (short-story recall, reading aloud, copying critical information, simulated telephone dispatch, and map indexing) into a cohesive web interface seamlessly integrated with an Arduino taskbox housed in a portable briefcase with the goal of increasing test accuracy and repeatability.

Specifically, my roles included translating the physical layout of the original Perfex device into the physical Arduino taskbox, mapping push-buttons, sliders, and rotary encoders to mirror the look and feel of the legacy device's five stations. I co-developed the embedded Arduino code that generated physical stimuli tests through user prompts, timestamping every user action and allowing me to implement a real-time scoring system.

On the web side, I also aided our team to develop an HTML, CSS, and JavaScript web interface that replaced all paper testing modules with a modern interactive experience. Audio prompts are streamed using the Web Audio API, and spoken responses are recorded in-browser using MediaRecorder. For interactive modules like map indexing and transcription, the website validates answers in real time against expected inputs and calculates both accuracy and reaction times. Once all modules are complete, results are sent to a Node.js server which stores the data and generates a downloadable PDF report.

Fluid and Powder Dispensing Device

Arduino, C++
đź“„ Final Report

As part of a semester-long engineering design project in first year, I worked on the development of an Automated Fluid Dispenser designed for precise, autonomous mixing of pharmaceutical solutions within strict space, material, and safety constraints. The team prepared and submitted interim reports at key milestones.

My contributions to the project focused heavily on both the system design and the software development. I wrote the complete Arduino C++ codebase, which included coordinating three subsystems: a servo-powered powder dispensing mechanism, a motor rotating turntable, and a peristaltic pump liquid delivery system. The code used arrays to store and iterate over preset dosing instructions for five test tubes dispensing increments between 1 g and 2 g of powder per tube (± 0.2 g) and delivering 20 mL of liquid per tube, controlled with start and emergency stop buttons. I implemented precision timing and motion control logic to ensure accurate dosing, along with real-time interrupt checks for safety overrides.

SolidWorks assembly for the device

Beyond programming, I contributed to designing a full SolidWorks sketch of the final assembly for 3D printed components, ensuring the gearbox, limit switch system, and test tube platform met both functional and dimensional requirements. As well as authored sections of our extensive design reports.

Portfolio Website

HTML, CSS, JavaScript

As a personal web development project, I designed and built this portfolio website from the ground up using HTML, CSS, and JavaScript to showcase my skills, projects, and experience in an interactive format. The website is hosted on GitHub Pages and configured to use a custom domain.

In CSS, I implemented responsive design through dynamic viewport units to ensure optimal viewing across all devices. For instance, media queries detect viewports under 768px and automatically disable floats, stacking content vertically and converting all images to full width for improved readability on smartphones. To observe this firsthand, try changing your browser window width to watch the content wrap dynamically!

I developed JavaScript logic that powers all dynamic behaviors across the site. Mainly an interactive terminal that supports tab autocompletion, arrow key history recall using an array-based history buffer, and localized English and French command sets. The terminal dynamically adjusts its position from absolute to fixed based on scroll depth, with smooth transitions preventing visual jumps. I also included a French version of the entire website by toggling the lang class on the <body> element and dynamically swapping all visible content using data attributes. Another significant element is the matrix-inspired binary rain animation that responds to scroll velocity; moving upward when scrolling down and vice versa, with digit changes on a timed interval for visual interest. Other dynamic elements include a custom scrollbar that interpolates color from white to the primary theme color based on scroll position, and a sidebar with smooth position transitions triggered by scroll events.


Work History

.
  • Ottawa City Logo

    Traffic Services Intern, City of Ottawa

    As a Traffic Services Intern, I applied data analysis techniques to interpret pedestrian and vehicle survey data to enhance roadway safety across Ottawa. I used GIS tools to map and analyze traffic patterns for investigations and implemented automated form collection workflows using Microsoft Power Automate to streamline data processes.

  • City of Ottawa Logo

    Graffiti Management Assistant, City of Ottawa

    In this role, I managed a city-wide graffiti database, tracking service requests and task completion for cleanup operations. I actively participated in graffiti removal using specialized equipment such as pressure washers and heaters, while adhering to strict safety protocols for handling corrosive chemicals and maintaining gear.

  • Mountain Bike Kids Logo

    Camp Counsellor, Mountain Bike Kids

    I supervised and engaged with campers aged 8 to 14, leading mountain biking outings and day trips while ensuring safety and enjoyment. I also maintained communication with parents to address camper needs and resolve concerns, fostering a positive and inclusive camp environment.

  • Pedalheads Logo

    Trail Instructor, PedalHeads

    I managed groups of campers aged 4 to 8 in trail riding programs, ensuring safety and engagement throughout each session. I designed and delivered age-appropriate activities to support bicycle skill development, helping young riders build confidence and coordination in a fun and supportive environment.

Education

Bachelor of Applied Science in Computer Engineering, Queen’s University in Kingston (2023–2027)

  • Granted distinction of Dean’s Scholar (2024–2025 Academic Year) – Stephen J.R. Smith Faculty of Engineering and Applied Science; awarded for outstanding performance.
  • Cumulative GPA: 3.57

Certifications

Ontario G Class Driver’s License – Clean Record

Standard First Aid/CPR-C and AED Certification – Valid through 2026 | Obtained 2024

AODA Accessibility Training – Completed 2025