About

Hello! I am Connor Sweet, a 3B Computer Engineering student at the University of Waterloo. I am heavily interested in robotics, AI, and full-stack development. I am a candidate for an Option in Artificial Intelligence alongside my degree.

I am also an avid volunteer in the Waterloo region, having worked under former House of Commons Government Leader Bardish Chagger to improve the city's ecological footprint.

When I'm not busy, I will often be found producing and performing music, or putting a new idea into code.

I am thrilled to be joining Lincoln Electric for the role of Robotics Software Engineering in the Winter 2022 term. I am additionally searching for employment opportunities for the fall (Sept-Dec ) 2022 term!

Relevant Skills

Languages: C++, C, C#, Java, Javascript, Dart, Python, MATLAB, SQL, Bash, VB.NET, RISC-V, VHDL, Verilog

Software Tools: Node.js, MS Bot framework, MS SQL Server, Git, Vim, Arduino, ROS, Linux, PLCs, Docker

Hardware Design: Solidworks, AutoCAD, GD&T, LTSpice, Proteus

Employment

Developer and Automation Specialist - Mach7 Technologies

My most recent co-op term was with Mach7 Technologies, where I was once again given the opportunity to contribute to the medical field. Here, I attained skill in Dart application development, and created my own Javascript API to conduct performance tests on a clinical viewer.

Click here to learn more

My main goal for this term was to fully develop a Javascript API responsible for conducting frame rate performance tests on cinematics within an embedded viewer. Through this project, I developed asynchronous functions for sampling frame rates from multiple queried video instances, and wrote parsing utilities to translate the obtained data into results which could be compared to generated baseline documents to catch regressions in performance. I developed performance tests to recognize variance in functionality across multiple configurations of Webassembly, and different render engines.

I also contributed to an internal API for DICOM markups, to allow the creation, deletion, and querying of spine labeling markups in specific studies through console commands. These utilities are included in a PostMessage API which is interactable using external windows. Both APIs required testing infrastructure to be constructed as well, using Selenium for automation tasks. Creating the tests for API functionalities included generating anonymized DICOM studies, proper parsing of responses from each API, and the development of unique tools necessary to validate behaviour.

Developer and Test Specialist - Client Outlook Inc.

After transferring to Computer Engineering, I was given an extra couple of co-op terms, which I am proud to have spent at Client Outlook Inc. Here, I have had the opportunity to create my own Dart applications from the ground up, develop PostMessage APIs for a medical viewer, and maintain Maven automation suites to validate viewer performance.

Click here to learn more

In this position, I developed a Dart API for creating and manipulating DICOM markups in a clinical viewer through external applications. This involved the use of notification handlers, visitor patterns, and PostMessage requests. The API was initially written using ActionScript, and subsequently converted to Dart. With the commands introduced by this internal API, users could create, remove and query a number of unique markups with extreme precision. Extra care went into validation of the utility, given its usage in the medical field by external, third-party applications.

I was also tasked with contributing to and maintaining a series of Maven automation suites to run on a nightly basis. This involved using Groovy to script a Jenkins pipeline, and Selenium to conduct the required tests. I developed many utilities for the automation suites, including tools necessary for performing screen layout validations, updating preferences, and triangulation.

At Client Outlook, I contributed to a clinical viewer product in compliance with its PureMVC architecture. When I was not enhancing internal APIs, fixing bugs, or developing additional utilities, I also took part in regression testing prior to each product release.

One of my favourite projects I was assigned at Client Outlook was the creation of an external Dart application to control an embedded clinical viewer using PostMessage commands. I was tasked with modeling each component of the application, from conceptualizing the UI using wireframes, to full implementation. The application could distinguish commands from multiple origins, and conduct necessary actions in the embedded viewer.

Hardware Developer - Canadian Tire Innovations

My second work term took me to the Canadian Tire Digital Innovation Lab at the Communitech Hub. Here, I honed my hardware development skills by building a robotic retail solution to optimize shelf space and provide fast customer transactions for seasonal items. This position helped me achieve adeptability in robotics development, through circuit fabrication, memory-efficient programming, and 3D printing.

Click here to learn more

I worked as part of a small, multidisciplinary team to prototype a product retrieval system. My primary designation, as a hardware developer, was to construct the frame for the machine, and implement a functional gantry system including a programmable robotic arm.

I drafted components for many robotic system prototypes, using Solidworks for 3D printed components and AutoCAD for laser cutting templates. I had the opportunity to get my hands dirty as well, using a milling machine, miter saw, and table saw for more intricate components. What we could not easily make, we had to source from local aluminum providers. Sourcing aluminum extrusions, brackets, actuators, and microcontrollers has taught me a great deal about product management and self-reliance.

My favourite opporunity from this job was to construct and program a three-dimensional gantry, including a robotic arm for retrieving products from coordinated locations. The entirety of the system was powered using an Arduino, which I had ported FreeRTOS onto in order to multitask axial movement. I coded an acceleration profile for each of the gantry rails to ensure that stress on the included motors was minimized. Each gantry rail was controlled through PWM, which, using additional drivers, could translate the gantry to a precise postion. I was also required to make drastic modifications to the robotic arm's API for precise product retrieval.

This job was one of my first experiences with C, and taught me some fundamentals of concurrency, interrupts, multitasking, and I/O.

Robot Process Automation Developer - The Co-operators

For my first work term, I joined the Co-operators at their Kitchener Development Incubator to automate user processes and create communication channels between virtual robots and their users. Through this position I had the chance to explore server communication, databases and Artificial Intelligence.

Click here to learn more

Through the position, I leanred the inner workings of Node.js, VB.NET, C# and SQL. Work was accomplished using an Agile Sprint system.

I was given the opportunity to explore the Google Visual Recognition API when investivating the development of an AI bot. As well, I gained hands-on experience developing with the MS Bot Framework as I contructed a chat-bot which would receive and send questions and answers between a user and a virtual robot. I implemented a user-input verification system such that questions could specify what type of answer would be acceptable. Commands were implemented to improve user navigation and assistance. A waterfall dialog system was added as well to avoid having to hardcode any prompts, and thus the entire solution was completely modular and could work with any other solutions the company may devise in the future.

Communication was done through a server I constructed, which would not only hold information as JSON at endpoints but also timestamp and store data inside an MS SQL database. To accomplish this, a REST API was written to easily send queries to the DB.

Lastly a script was written for a virtual robot to execute in the VB.NET language. The bot would access internal services and apply data obtained from the server to existing fields. Code was thoroughly tested to ensure durability and longevity.

Projects

RobotCMajor - Guitar Playing Robot

As a project for the end of my 1A Mechatronics term, I worked as part of a group of four to design, create, program and test a robot which is able to plot and strum power chords on an acoustic guitar.

Click here to learn more

I took up a heavy role in the programming aspect of this robot, using multiple threads to optimize play time and improve sound quality. This also included writing driver tasks for each function created, to properly test the functionality and efficiency of the code.

I also helped design the chassis for the robot, including a strumming arm and a gantry system allowing for 3 dimensional movement. Materials used for construction included wood, aluminum, and various Lego Mindstorms and Tetrix Robotics components.

The robot was successfully able to plot the chords to and play "Smoke on the Water" by Deep Purple and "Free Fallin'" by Tom Petty by the project deadline. Both songs were sufficiently recognizable.

RobotCMajor received a 100% score in design and implementation.

The code written during this project, including the test tasks, are all available on my GitHub account.

Line Following Music Player - Zero Robotics Competition

As a challenge presented to the UW Robotics Team, I worked alongside 3 other students to design and develop a line following electromechanical system which outputs various frequencies based on the shade on a line interpreted by a colour sensor.

Click here to learn more

I focused on the electrical aspect of this project, fabricating a circuit layout on an aluminum chassis to properly distribute the weight of the system.

I implemented an Arduino-powered circuit consisting of an R2R bridge and motor controls.

First Robotics Competition Entry - UW Robot in 3 Days

I was accepted into Waterloo's Robot in 3 Days team, where 20 engineers came together to construct an entry for this year's First Robotics Competition under 72 hours.

Click here to learn more

On this team, I focused on software development, coding subsystems for the robot's intake and climbing mechanisms. I also helped map the control of the many subsystems to buttons and axes on a remote control.

I also contributed to the mechanical design of the project, by fabricating the claw mechanism allowing the robot to latch onto overhanging bars and elevate itself. I machined the components for an aluminum claw, which was connected to a rope wound around a winch in order to adequately elevate the robot.

Robot Arm - Tron Days Competition

The Tron Days Competition asked Mechatronics students to develop a remote-controlled robot arm capable of displacing objects across a pegboard. By taking the necessary steps to optimize construction we were able to achieve a score of 90% on arm design and efficiency.

Click here to learn more

The team was given Tetrix Robotics pieces to construct the robot frame. I focused on developing a pulley system to assist in arm elevation, in order to counteract the heavy weight of the last arm ligament.

I also wrote a program in C++ to optimize the angle and positioning of arm ligaments for speed and distance. This code is available on my GitHub account.

Eagle Eye - EngHack 2018

EngHack is an annual hackathon held at the University of Waterloo for students to experiment with a multitude of hardware and software and attempt to build inventive solutions to real-world problems. My team opted to tackle the issue of home security and hone our hardware skills with Eagle Eye. We built a portable sensor box that transmits movement and audio data to a webservice for a user to view. The goal of the project is to help users monitor break-ins on their property.

Click here to learn more

Our team wired and machined a small portable arduino-powered box, which was equipped with audio and motion sensors. If any unusual patterns were detected, the microcontroller would transmit serialized data from the sensors to an additional arduino attached to the user's computer, which was received through a Processing script. The data would then be displayed on a web-page.

As well, work was done in creating a machine learning algorithm to determine user intention based on audio captured. A script was written which can currently determine a political agenda most likely associated with the captured audio.

All code for the project is available on my github page.

Charity Navigation - Hack the North

During my time at Hack the North, I collaborated with three other programmers to develop a charity recommendation site. We are currently reviewing and updating the service for an official release.

Click here to learn more

My role in the project was primarily back-end development. I took time to experiement with the Google Firebase API and the Twitter API, developing a data system of charitable foundations and trending topics.

Media Player

I collaborated with two other students to develop this media application designed to play .mp3 and .wav files from a file directory.

The media application was constructed using Java and the JLayer library. It was programmed using multiple threads to allow for seamless audio playback while the GUI is in use.

Click here to learn more

The project currently allows the user to select a song from a file directory, generate a randomized shuffle queue in the directory, go to the previous or next song, and display the time the song has been played.

Next steps for the project include the ability for users to skip to specific parts of each song, and implementing controls for volume and speed.

Code for the media player is available on my GitHub account.

Game of Risk

As a summative project exiting my Grade 12 computer science class, I was asked to make a game using Java, implementing the object-oriented programming concepts we were taught. My goal was to create a clone of Hasbro's popular Risk board game.

Click here to learn more

Mechanics of the game were controlled through the implementation of a state machine, and multiple threads were used to optimize play time.

The game allows 2 to 6 human players to play. However, the user may also play with computer players, which have been taught to position troops and attack in ways which incentivise territory gain.

The code for my Game of Risk is available on my GitHub account.

Brick Breaker - Arkanoid Clone

When I first began experimenting with graphics in Java, I created a clone of the classic Arkanoid brick breaking game.

Click here to learn more

The objective of the game is to break every brick on the screen using a ball which is in constant motion. By repositioning a horizontal paddle, the player can angle the ball to collide with some of the bricks.

The player's score is tracked and displayed at the end of the game.

Mars Rover - University Rover Competition

Every year the University of Waterloo competes for a position in the University Rover competition in Utah, where 30 teams use their rovers to attempt to recover objects in a desert landscape.

Click here to learn more

This year, I am part of the software team, specifically working on autonomy. Using ROS, I am developing path-finding algorithms to be used synchronously with computer vision to locate objects when given a relative distance to a GPS coordinate.

This project is currently in development and updates will be posted once more progress has been made.

Music

Music Production

I've been making music my entire life, and my favourite hobby is to produce electronic beats using a variety of instruments, vocals, and effects. To the left are some of my recent songs!

Click here to learn more

Aside from music production, I regularly play piano, guitar, and bass. I have performed live in the tri-state area at music festivals, coffee house shows, and showcases.

My most recent musical accomplishment comes with my newest EP. A song of mine, "Cherry Lemonade" has accrued over 57,000 streams on SoundCloud!

Education

University of Waterloo

Candidate for Bachelor of Applied Sciences, Class of 2023

Enrolled in Honours Computer Engineering, term 3A

Candidate for Option in Artificial Intelligence

Learn more

Elected and currently standing Computer Engineering Class Academic Representative

Elected as Mechatronics Engineering Class Representative for the 1A term

Received certification from hands-on and online machine shop training to operate the band saw, drill press, milling machine and lathe

Former member of Waterloo BioMechatronics and Robotics teams

Bluevale Collegiate Institute

Received High School Diploma, Graduated with Honours

Established and led several initiatives, including Student Council

Learn more

Awarded Grad Club "Knight of all Knights" award and Lakeshore Village Optimists Club award for school contributions

School nominee for the Loran and Schulich Leader Scholarships

Volunteering and Extracurriculars

Bluevale Collegiate Student Council

I served as Co-President of my high school student council, as well as the Chair of the Media Production committee and Social Coordinator.

I also acted as a student activities liaison within Bluevale Collegiate's Parent Council, and attended provincial and national leadership conferences on the school's behalf.

Click here to learn more

As one of two Co-Presidents elected by the school's student body, I oversaw and managed the various divisions of the council, organized and facilitated school-wide events and presented speeches on important occasions, such as orientation day and the graduation ceremony. By leading a team of 30 students through interactive seminars, and constructing detailed plans for event preparation each day, I was able to adequately develop large scale events for the student body.

As the Chair of the Media Production committee, I was in charge of producing a wide variety of multimedia advertisements for school events, such as posters, videos, and tickets. I also ran lights and sound for majority of school events.

As a Social Coordinator, I organized brief events to host on important occasions, such as holiday weeks, during school hours.

Bardish Chagger's Waterloo Riding Youth Council

I was approved entry into the Regional Youth Council in January 2017 and work with the other members to advocate for the youth voices of the Waterloo region.

Our work is delegated into 3 main subtopics: the Youth Initiative, Indigenous Rights, and Regional Sustainability.

Click here to learn more

Currently, I have taken a heavy role in the field of Sustainability, directing an initiative to advocate for free busing for high school students in the Waterloo region. To accomplish this I have met with representatives from the Grand River Transit, and sat down with notable figures in the region to determine the optimal way to incentivise youth to utilize the bus system and encourage students to be more aware of their ecological footprint.

WRDSB Student Senate

I was a student senator in the Waterloo Region District School Board. I attended monthly meetings to discuss prevalent issues pertaining to youth in the region, such as mental well-being, and school budget allocation.

Click here to learn more

As a representative sent by Bluevale Collegiate, I provided input on the school's behalf on means of improving schoolboard communication with students. I also networked within my school to raise awareness for the regional school board's concerns.

KW Federal Provincial Conference

"Fed-Prov" allows high schools in the Kitchener Waterloo region to assume the role of a Province, Territory, or interest group in Canada. They meet at the University of Waterloo annually to discuss prevalent issues facing Canadians today from our role's perspective. Each year I acted in a different position, and have served in significant leadership positions for three of my years.

For my work as the leader of the Canadian Taxpayer Federation in the 50th annual conference I received the Outstanding Delegate Award. The following year, as the Premier of Saskatchewan, I received the John Boulden Award for Outstanding Premier .

Click here to learn more

In my first year of FedProv, I participated in the Indigenous Affairs debate as part of the delegation of Nova Scotia. The debate was primarily focused on the missing and murdered indigenous women inquiry.

My second year, I served as the Head of Public Relations for the delegation of Alberta. I collaborated with local press groups by writing articles from the perspective of the Albertan government.

During my third conference, I was selected to lead a special interest group, known as the Canadian Taxpayer Federation. My role was to advocate against government overspending and poor budgeting. We were not given much time in the spotlight so we needed to find unique ways of publicizing our opinions. We succeeded through managing an active social media page, developing multimedia advertisements, and delivering creative public speeches.

In my final conference, I was selected to represent the Premier of Saskatchewan, and therefore lead the Saskatchewan delegation. I was required to organzie my team of 30 students into various debate groups, draft position papers on behalf of my delegation, and prepare each delegate for their upcoming debate. I also coordinated a social media page and delivered opening and closing speeches during the conference. I debated within the First Ministers meeting, where prevalent issues such as Reform of the Anti-terrorism act, Formalization of the Federal Spending Power, developing a Transparent Framework for Review of Future Energy Projects, and Electoral Reform were discussed.

KW Model United Nations

Representing the United Kingdom of Great Britain and Northern Ireland, I debated the controversial issues of police brutality and the refugee crisis alongside other youth in the region. I helped reach adequate resolutions benefitting my delegation and won the Outstanding Delegate Award for my actions.

Civics Club - Co-Founder

I co-founded this club as a means of promoting political engagement in the student body. In the club, a game of Civic Mirror was played, an online and in-class simulation where students are given a hidden political agenda and must accomplish their goals. I received a lot of positive feedback from club members, saying the club has encouraged them to remain politically aware.

I am happy to say that the Civics Club has outlived my time at high school and is currently being run by other successors at Bluevale Collegiate.

Bluevale's Grads as Gophers

Grads as Gophers is a Bluevale tradition where a group of graduates are auctioned off as servants to grade nines for a week as a means of raising money for prom. The role entailed the development, choreography and performance of a musical number during the auction, and performing daily tasks for the grade nines, such as carrying them to class, buying them lunch, and helping them with homework.

Local Performer and Musician

I take vocal lessons at Russell Music Studios, where I study music theory and singing techniques. Since last year, I have regularly performed at coffee house shows hosted by the studio. I sing and play guitar, performing songs ranging from jazz, punk rock, and pop.

I have also performed in the annual Next Up! Showcase by IdeasExchange, and performed at the Cambridge City Hall for their Person's Day showcase.

I also regularly produce electronic music which I put on YouTube and SoundCloud. Lately I have begun working on original songs containing lyrics.

Bluevale Mock Trial Club

As a lawyer on the Mock Trial team, I represented clients in a court simulation as both a Crown and Defense attorney. This required me to research and collect evidence for both sides of the prepared case, while developing lines of questioning for my witnesses. Our team won the Regional Mock Trial Competition and participated in the Greater Toronto Area Mock Trial Competition.