Resume
Summary Statement
Skilled, multi-paradigm developer who strives to produce resilient, high performance well designed software. Particularly interested in solving difficult technical problems.
Experience ranging from R&D, backend/cloud distributed systems, low level/embedded software development, networking, frontend development, library design, dev ops, cloud infrastructure and SRE. Strong penchant for rust.
Related Experiences
Software Engineer - Foundation Team
Gravity Sketch
Remote (from Quebec, Canada) and sometimes in office in London, UK.
2022-present
Gravity Sketch is a post Series A startup based in London, UK, that builds
a 3D VR design and collaboration platform.
The Foundation team is a low level/technical team that works on R&D, infra/SRE, real time networking and
that’s responsible for the platform/backend/cloud services of the
SaaS. I mostly worked remotely from Quebec
Canada, and sometimes at the office in London, UK.
- Design/implement a delta coding library with protobuf support, integrated to a custom code generator. This library allows generating the code required to obtain a backwards compatible binary encoding of the diff between two instances of any arbitrary type or collection of types. This is to reduce the traffic of the real-time collaboration platform where 3D geometry is on the wire. Design binary encodings and implement encoders/decoders. Some of it is implemented via Rust code called from Java/C#.
- Design/implement a live stream solution, allowing users to stream their in VR view to browser clients. Gpu programming, Rust, Async, websockets, webGL. A simplified PoC can be found here: https://github.com/louisboilard/flumen
- Design/implement a proxy (gateway) in golang which routes all of the real time traffic between the VR/2d app clients and servers. Design/write wire-level encodings. Also implement “raw” http/websocket support (write parsers for ws handshakes/http headers), allowing proxying for these protocols via pure TCP (to use zero copy mechanisms regardless of the higher level protocol and to allow clients to use any tcp based protocol without changing server side implementations).
- Work on a custom protobuf code generator, which outputs java/c# code. Implement various features, such as sum types (protobuf’s oneof). Design ergonomic libraries/api’s to make the generated code easy to use.
- Work on the java backend. (rpc, redis, postgresql, dynamoDB, sqs, tcp, http, netty, dropwizard, maven).
- Work on implementing proxy support in our client side apps (C bindings to the win32 api from the C#/Unity VR app and the 2d app, handshaking). This brought huge unlocks on the sales side of the business, since many big enterprises customers did not want to whitelist us from their proxy. It effectively allowed customers to use the app from within their enterprise network.
- Responsible for provisioning and maintenant the infrastructure that runs all the backend services.
- Kubernetes (eks), helm, docker, terraform, aws. Setup alerting, monitoring and expose diverse metrics (prometheus, grafana, logz, metrics-server..). Respond to incidents if any.
- Customer calls and on-sites. Investigate customer issues (and fix them), mostly related to networking (proxies and firewall configurations).
- Design/implement a flexible release strategy for the various backend/platform services (git, github actions, shell scripts).
- Design/implement an analytics service in golang. A lightweight http server that routes analytics events collected from the various client side apps. Kafka, kinesis.
- Write tests (property based, unit, integration, smoke) and integrate the backend's services with a static analyser (sonar-kube). Integrate the above with the ci/cd pipeline (github actions, aws, kube). Debug.
- Design/implement a build tool in golang used by all engineers of the company. The tool wraps everything engineers need for their day to day work. It also contains an implementation of git “stacked pr” and the custom code generator tooling, allowing engineers to iterate fast and focus on building features for the end users.
Embedded Software Developer
Humanware INC
Remote (from Quebec, Canada).
2020-06/2022
Mostly worked on the Explore 12 electronic magnifier. Designed and implement high performance C/C++ code for the icatch-V35 microprocessor and sony cameras.
- Interact and make presentations to the hardware team, the sales team and upper management to discuss design decisions and findings.
- Work on the autofocus, scene detection and movement detection algorithms.
- Design and implement a solution for lens shading correction.
- Work on many aspects of image quality (lens distortion, color matrix, pixels binning…).
- Do code reviews.
- Discuss with the sales team and with users (people with visual deficiencies) to better understand their needs and make the best product possible.
- Write automated tests to facilitate the factory workers job in production (autofocus test, touchscreen test, battery test).
- Collaborate with contacts in Taiwan to develop the system.
- Help write debug tools and drivers for camera sensors.
- Work in a fast paced multidisciplinary agile environment.
- Learned all of the above at work, had no prior experience in this field.
Fullstack Software Development Consultant (part time/weekend)
JeunesExplo
Remote (from Quebec, Canada).
04/2021-Present
- Build a web application in GoLang/Vue3/Mysql from scratch (except the already existing MySql database) for a Nonprofit organization.
- Other tech includes docker, iptables, linux, nginx, git, certbot.
- Understand the client’s needs. Make propositions, demonstrations and follow an iterative process to ensure the client is satisfied.
R&D Programmer - internship/student job
La Capitale Insurance and Financial Services
In office, Quebec City, Canada.
05/2019-01/2021
- Research about blockchain and implement a blockchain solution to provide a safe and efficient way of exchanging data between companies.
- Program benchmarks to compare text to speech/OCR tools and API’s.
- Implement a chatbot solution using tools such as Dialogflow.
Personal Characteristics
- Fast learner with deep technical knowledge: I don’t struggle when learning, using and understanding new technologies or concepts. I enjoy and appreciate a vast array of different technologies. You might find me hacking on a cpu emulator, reading the system V ABI spec or working on my dotfiles. Hacker at heart.
- Very driven individual who’s seeking a challenging opportunity where I will be able to progress as much as I possibly can and add value to an organization. I’m a problem solver that brings positive energy and innovative ideas to whatever team I work with. Used to working in a fast paced ever changing startup environments.
- Good communicator: Able to present, discuss and debate ideas/projects to both technical and non-technical people.
- Stack of choice: Gnu/linux/unix terminal based tools and workflows. I use git, (neo)vim, Rust, C/C++, python, go and unix utils daily and have been doing so for the past years. I’m open to new ideas and technologies: I believe in using the best tool for the job. These are just the main tools I use on a daily basis, far from an exhaustive list of all the ones I’m comfortable with.