William Fiset


resume email github link linkedin profile

About me

Educational Background

Graduated from Mount Allison University with a B.Sc joint honors in computer science and mathematics, May 2017.

Passion & Interests

  1. One of my biggest interests is computer programming, something which I have become obsessed with. The bulk of my spare time is dedicated to competitive programming as well as learning all about web development and mobile design.
  2. I am fascinated by the world of electrical engineering. I bought a Raspberry PI and an Arduino in 2015 and ever since I having been tinkering away to see what useful/creative things I can construct.
  3. Another interest of mine is mathematics, a field which I am very fond of. My appreciation and love for the subject could not be more clearly expressed but by a quote from Bertrand Russell:
“Mathematics, rightly viewed, possesses not only truth, but supreme beauty -- a beauty cold and austere, like that of sculpture, without appeal to any part of our weaker nature, without the gorgeous trappings of painting or music, yet sublimely pure, and capable of a stern perfection such as only the greatest art can show.”
- Bertrand Russell

Interesting facts

  • I qualified with one of the Canadian teams for the ACM-ICPC world finals programming competition held in Rapid City South Dakota, May 2017
  • I ran my first marathon in the summer of 2016 in Saint John NB, Canada at the Marathon by the Sea
  • I am the proud owner of a Shotokan karate black belt which I earned after five years of training
  • I have been riding a unicycle for 7+ years

Work Experience

Google - Software Engineer

Packt Publishing logo Started working for Google as part of the engineering residence program. This is a one year program in which I get the opportunity to work on two different projects at Google before converting to a permanent role.

Packt Publishing - Python Video Creator & Teacher

Packt Publishing logo Working for Packt publishing I was the author and creator of a Beginning Python 3 video series. The series is composed of 8 sections with 5-7 videos each covering topics such as Strings, Lists, Conditionals, Looping, Functions and Modules. Each video provides in-depth knowledge on a topic with a number of examples.

J.D. Irving - Software Engineer intern

JD Irving logo During my summer internship at JD Irving I worked as a full stack mobile web-developer. This means that I had to opportunity to work with each layer of the technology I developed including: the application networking, database data modeling, business logic aspect, the user interface and all while understanding what the client’s needs were. While I was there I learned a great deal about how client/server side programming and database management worked; I can now comfortably write SQL queries and AJAX requests to easily communicate information across a network.

Mount Allison University - Teaching Assistant

Mount Allison University logo I am both a computer science and mathematics teacher's assistant at Mount Allison University. As a computer science teacher's assistant I run computer science labs, mark homework and occasionally give tutorials. So far I have instructed COMP 1631 which deals with picture, sound and video manipulation, and COMP 1731 which teaches learning Java and working with robots. On the mathematics side, I work at the Math Resource Centre where I help students who come in with math problems. The types of problems I help students are of all sorts ranging from Calculus, Linear Algebra to Discrete Math.

Projects

Data Structures Project

The goal of the data structures project is to provide a complete and thorough yet simple explanation of the most common data structures. Data structures are amongst the most fundamental ingredients in the recipe for efficient algorithms and good software design. Knowledge of how to create and design good data structures I believe is an essential skill required in becoming an exemplary programmer which is why I started a video series and a code database to teach and educate others about my knowledge of many data structures. Creating these videos is a slow and yet rewarding experience. So far I have talked about all the data structures listed below, but there are many more to go...

Dynamic arrays
Linked lists
Stacks
Queues
Priority queues
Union find
Binary Search Trees
Hash tables
Fenwick tree

Problem Vault

Problem Vault is a website created by Micah Stairs and myself which contains a large collection of programming competition problems accompanied with solutions. The site also features many useful code snippets such as implementations of Dijkstra's algorithm, the Rabin Miller primality test, finding a Polygon's area and etc.. We developed this website in the hopes that this resource will help students/programmers become stronger problem solvers.

Here is a video giving a live demo of problem vault featuring Micah Stairs speaking:

 

Fractal Explorer

One of the first projects I pioneered was my Fractal Explorer application which allows you to zoom in and out of a Mandelbrot Set. Here are some gorgeous screen shots I acquired while navigating my fractal application:

fractal1
fractal2
fractal3
fractal4

 

Game Of Life

Cellular automata models are fascinating, they are both chaotic and predicable at the same time. In the early days of the Apple store there were none or very few IOS applications which allowed you to create your own custom automata with a design pattern of your choice, so I sought out to develop my own based on John Conway’s Game Of Life.

Game of Life
Game of Life App 1 Game of Life App 2

 

Solved Problems

In my spare time one of my hobbies is to solve programming puzzles, often algorithmic or mathematical in nature. Below is a list of online judges who host problems I often tackle. In total there are 1073 problems listed below.

Project Euler

Project Euler is the website that originally got me into computer programming and mathematics. I owe a lot of my success to them. The site contains a lot of very high quality mathematics problems, and a new problem is being added almost every week. I am currently in the top 1% of members on Project Euler.

will.fiset Project Euler

Solved Problems (145)

Kattis

Kattis logo Kattis is one of my favorite online competitive programming judges because of the large quantity of high caliber problems. My programming competition team and I use Kattis to host our practices in preparation for the ACM-ICPC competition. I am currently ranked as the 17th best problem solver on Kattis and 3rd amoung Canadian users, view my profile page.

Solved Problems (476)

Hackerrank

Hackerrank logo I recently discovered Hackerrank and I love their challenges, competitions and community of coders. The site offers a rich variety of problem categories and areas of specialization including: algorithms, data structures, AI, functional programming, etc... They also hosts weekly programming competitions which I often partake in, view my profile page.

Solved Problems (335)

LeetCode

Leetcode logo LeetCode is a very educational website which offers problems commonly asked during technical interviews. The site also provides valuable articles about programming techniques and data structures. View my profile page.

Solved Problems (117)