Career Profile

I fell in love with programming at the age of 10 and I am still smitten.

Experience

Senior Elixir Developer

2021 - 2023
Súper Seguros

Development with a team of 8 engineers for a Mexican insurance startup. Backend in Elixir/Phoenix/LiveView. Frontend using Tailwind/Alpine. End-to-end tests with Cypress.

Senior Ruby Developer

2005 - 2021
SiteZoogle, SEMi Medical Solutions, Yatter

Ruby on Rails development for a few startups. 100% remote since 2013.

VP R&D

1989 - 2005
Laser Registration

Co-founded Laser which grew to ~6 M$ of yearly revenue and 70 employees, including my team of 6 developers.

Open-Source Projects

Fervent open-source supporter, I contribute to dozens of projects. Thanks to TideLift for providing support to rubocop-ast and backports.

Elixir - Top ~60 contributor
Ruby - Top ~20 contributor, committer
RubySpec - Top ~10 contributor, committer
Rails - Top ~100 contributor
RuboCop - Top ~20 contributor, member of the core team
RuboCop AST - Main author and lifter. 175M+ downloads
Backports - Author and lifter. 120M+ downloads
Parsley.js - Maintainer of this JS validation library, 9k+ stars
Featherlight.js - Maintainer of this JS lightbox, 1.5k+ stars

Code Examples

Some of the most challenging contributions I made to FOSS include:

Elixir Contributions -

I contributed to Elixir’s compiler to reduce recompilations:

  • Have @behaviour introduce a runtime dependency instead of compile-time (PR)
  • Do not recompile unless content of files has actually changed (PR)
  • Improve mix xref graph to identify problematic dependencies (PR, etc.)

These are good examples of my capacity to delve into foreign codebases (even those like Elixir’s compiler that are hard to read) to make improvements.

Ruby AST Pattern Compiler -

RuboCop has a DSL to match parsed Ruby code. I rewrote it using a lexer / parser / compiler to allow me to add more powerful patterns and implement introspection.

Here is a technical description of the compiler.

I also wrote a playground for it.

Ruby Parser Rewriter -

The Ruby parser gem includes a tool to alter code.

I proposed an improved design and implemented it using an immutable tree of nested intervals

Education

M.A. Mathematics

1993 - 1999
Princeton University

Work with John H. Conway on mathematical knots.

B. Sc. Mathematics - Physics

1989 - 1993
Université de Montréal

Research projects with Yvan Saint-Aubin and Robert Langlands.