Edmond La Chance, Ph.D

edmondlachance.com

github.com/mitchi

Edmond_Lachance@uqac.ca

EDUCATION

2013-2021   Ph.D in Software Verification & Cluster Computing, Université du Québec à Chicoutimi

Extended Combinatorial Testing using Graph Algorithms and Apache Spark

This thesis presents a generalization of t-way testing and reductions to graph coloring and vertex cover problems using distributed algorithms. The algorithms were implemented using Apache Spark with Scala. Experimental results were obtained using computer clusters provided by Compute Canada.

2011-2013   M.S, Université du Québec à Chicoutimi

Algorithms for the minimum spanning tree problem

This master thesis empirically compares various ways of implementing minimum spanning trees. Several data structures and algorithms are implemented in C++ and measured: Union-Find, Binomial Heap, Binary heap, Fibonacci heap, Prim’s Algorithm, Boruvka’s Algorithm, Kruskal’s Algorithm.

2008-2011   B.S, Université du Québec à Chicoutimi

        

WORK HISTORY

Software Developer at Yoppworks (acquired by Improving)                January 2022 - Present

Software Engineer at Timesphere                August 2021 – December 2021

Working on the Timesphere Application with the SAQ team (Société des alcools du Québec).

The Timesphere application is used to manage employee schedules. I currently work as a Full-Stack Engineer fixing bugs, developing new features in the backend in Java, and porting existing features to the new React/Redux-toolkit frontend.  

Technologies used: Typescript, Redux-toolkit, Java with Spring Framework.

Lecturer, Université du Québec à Chicoutimi

Classes taught:

8INF803 (Distributed Databases)                        2015-2021

In 8INF803, students learn about distributed databases, crawling and distributed data processing. The class shows many useful data structures for data intensive applications such as B+Trees, LSM, Bloom Filters, HyperLogLog, Bitmap indexes etc. On the programming side, we mostly use Apache Spark, Scala, Java and Python. We also show how to implement iterative algorithms with proper performance optimizations.

  8GIF128 (Web programming)                                2015

In 8GIF128, we teach HTML, CSS, JavaScript, DOM, REST and WebSockets. The final project is a website that communicates with several services using WebSockets.

PROJECTS

TSPARK – A distributed combinatorial test generator

https://github.com/mitchi/TSPARK

TSPARK is an open-source project developed for my Ph.D thesis. TSPARK is written in Scala, using the Apache Spark cluster computing framework, and has around 30k lines of code.
TSPARK contains distributed algorithms for solving graph coloring and hypergraph vertex problems. It also contains a hybrid algorithm called Distributed IPOG. Every algorithm was extensively tested to optimize performance. TSPARK internally uses bitsets and compressed bitmaps to optimize its graph data structures. TSPARK is a self-contained .jar file that can easily be run on computer clusters and supercomputers.

CTL Simulator

CTL Simulator is a small project (1k lines C++) that implements the CTL labeling algorithm for model checkers.

Cerberus Spells

Cerberus Spells is a website for the spells of Cerberus RPG, a fantasy tabletop role-playing game (RPG). The website is generated using a React app for data entry, and a custom static website generator. Technologies used: React, MUI, node.js, JSON, pandoc, with LaTeX for PDF output.

Cerberus Bot

Cerberus bot is a Discord bot written in Javascript using JSDOC to provide type checks using Typescript’s compiler inside VSCode. Cerberus Bot is used to run text-based combats for Cerberus RPG.

Morphopoetic.com

Morphopoetic is a website for the writer Michaël La Chance. The website is generated using a custom static website generator. Technologies used: node.js and TOML.

ASM FORUM

ASM Forum is an old project that implements a simple discussion forum with threads/topics/replies and users written in x86 assembly language, CGI processes, and SQLite as the database.

SKILLS

Apache Spark

Hive, Impala, Oozie

Java

Scala 

C/C++ 

SQL

Slurm

Spring Boot

Node.js / Socket.io

UNIX Shell Scripts

Python

GitLab CI/CD

React and Redux Toolkit

React Native

JavaScript and JSDoc

TypeScript

JIRA, Git and Github

HTML and CSS

LaTeX, Pandoc

x86 assembly language

Hadoop Filesystem

awk, sed, grep

Docker

CERTIFICATIONS

LightBend Certified Reactive Architect

LightBend, Inc

Issued Jan 2022, Expires Jan 2025

ONLINE CLASSES

Functional Programming with Scala Cats (Udemy)

The Complete React Native + Hooks Course (Udemy)