Ghjuvan Lacambre

Compiler and Static Analysis Engineer

lacamb.re
glacambre

Experience

2022–Now

AdaCore/Static analysis engineer — Paris, France

  • Developed new lightweight bug-finding analyses.
  • Maintained the static analyzer’s frontend.
  • Fixed deep system-level bugs.
  • Maintained build/infrastructure scripts, automated many tasks.
  • Performance optimizations in multiple parts of the static analyzer.
2019–2022

AdaCore/Compiler engineer — Paris, France

  • Fixed front/middle-end bugs in GNAT, the Ada compiler based on GCC & LLVM.
  • Implemented language-level support for GPU programming with CUDA.
  • Added Stack Map Frame support to JGNAT, GNAT’s JVM backend.
  • Refactoring and new features for compiler messages (e.g. implemented JSON output).
  • Maintained and refactored python testsuites.
2018–2019

Silkan/Compiler engineer — 8 months in Montpellier, France

Upkeep of Evarix, a compiler that took in MATLAB code and output OpenMP and CUDA-parallelised C++. Fixed many bugs, rewrote the lexer and parser.

2018–2018

AdaCore/Intern — 6 months in Paris, France

Added support for GPU programming with OpenACC to GNAT, created the corresponding testsuite in Python.

Projects

2019–Now

Maintaining Firenvim, a browser extension written in TypeScript

  • ~2000 users, ~1000 commits, end to end testsuite.
  • Heavy use of type reflection/introspection to get well-typed proxies.
2017–2020

Contributed to Tridactyl, a browser extension written in TypeScript

  • ~10000 users at its peak, ~20000 lines of typescript, ~3000 commits.
  • Wrote custom typescript backend to make code metadata available at runtime.
2017–Now

Occasional contributions to Vim and Neovim, text editors written in C

Education

2015–2018

Master’s degree in Computer Science — Université Pierre et Marie Curie, Paris

Programming language theory (abstract interpretation, formal verification, typing, compilers) and algorithms (compression, random generation, dynamic programming).

Skills

Languages
French (mother tongue), English (TOEIC: 950)
Programming
C, Shell, TypeScript, Python, OCaml, Ada
Tools
LLVM, GCC internals, Static Analysis, Abstract Interpretation