Resume
Experience
Senior Software Engineer · Repyh Labs · 2025 – now
Protocol engineer on the delta network (Rust).
- Documented the SDK and base libraries for early app developers.
- Modularized domain tasks; fixed transaction-application logic; typed abstractions.
- Added NFT support; designed and built the archive node.
- Built the integration-testing API and its test suite.
Software Engineer · O(1) Labs · 2022 – 2024
Crypto & protocol engineer on the Mina Protocol.
- Codebase-wide cleanup, refactoring and higher test coverage (OCaml, Nix).
- o1vm / Optimism: low-level communication with the fault-proof op-program (Rust, Go).
- Berkeley hard fork: pre/post-fork test harness.
- Prototyped account deletion (core zkApps feature); chunking.
Software Engineer · Nomadic Labs · 2021 – 2022
- Led the consensus team (from July 2021).
- Implemented the Tenderbake consensus for the Ithaca protocol upgrade; maintenance.
- Test maintenance and migration Python → Tezt for the new consensus.
- Merge Team (core reviewers) member.
Senior Software Engineer · Tweag I/O · 2019 – 2021
Project lead & consultant.
- Tezos clients (mockup/proxy client, Sapling client).
- Gerrit plugins (enforce owner approval, CI-related UI extensions).
- Built the internship program (setup, outreach, selection).
Researcher · CEA / LSL · 2008 – 2019
- Development of (formal) program analyses on source and binary code, for safer and more secure software engineering.
- Lead developer and team co-lead of the open-source binary-analysis and symbolic-execution platform BINSEC.
- Co-advisor and day-to-day supervisor of two PhD students, plus MSc interns (see Students).
- Lectures on software attacks & vulnerabilities (ENSTA).
Visiting Professor · UFRN / DIMAp (Natal, Brazil) · 2013 – 2015
Post-doc · LORIA / Paréo · 2007 – 2008
Generation of construction functions respecting algebraic invariants for OCaml.
ATER · Université Paris 6 Pierre & Marie Curie · 2006 – 2007
Teaching assistant.
Education
PhD. in Computer Science · Université Paris 6 Pierre & Marie Curie · 2003 – 2006
Thesis: Tableaux et déduction modulo (Tableaux and Deduction Modulo), defended 17 October 2006. Automated theorem proving, rewriting, proof theory.
MSc. in Computer Science (DEA): Programming, Semantics, Proofs & Languages · Université Paris 7 Denis Diderot · 2002 – 2003
MSc. in Computer Science & Applied Mathematics (Engineering degree) · ENSEEIHT (Toulouse) · 1999 – 2002
Tools
BINSEC · OCaml
Formal methods platform for security-oriented binary code analysis (symbolic execution, fuzzing, code deobfuscation, …).
Frama-C · OCaml
C/C++ software analyzers — plugins metrics and mthread (initial version).
SMTpp · OCaml
Preprocessing platform for SMT-LIB, the problem repository for SMT solvers.
PathCrawler online · Java, JavaScript
Web application for users to play with the PathCrawler test generation tool.
Moca · OCaml
Construction functions generator for datatypes with (algebraic) invariants.
Students
Frédéric Recoules (PhD, co-advisor) · 2016 – 2021
Automatic verification of low-level code: C, assembly & binary code.
Manh-Dung Nguyen (PhD, co-advisor) · 2016 – 2020
Advanced fuzzing techniques for vulnerability discoveries at scale.
Vítor Alcantâra de Almeida (MSc) · 2013 – 2015
WPTrans: assistant for program verification in Frama-C.
Cauim de Souza Lima (MSc) · 2019 (Mar–Apr)
Combining formal and learning approaches for binary-level security analysis.
Yaëlle Vinçont (MSc) · 2017 (Apr–Sep)
Combining fuzzing and symbolic execution for vulnerability detection.
Guillaume Girol (MSc) · 2017 (Apr–Sep)
Sharpening symbolic methods for vulnerability detection.
Publications
23 publications (22 peer-reviewed), in reverse chronological order (also on the publications page).
2024
- J. Rosain, R. Bonichon, J. Cailler, O. Hermant. A Generic Deskolemization Strategy. LPAR 2024, EPiC Series in Computing 100, p. 246–263. doi
2021
- T. McDonald, R. Manikyam, S. Bardin, R. Bonichon, T. R. Andel. Program Protection Through Software-Based Hardware Abstraction. SECRYPT 2021. pdf
- G. Menguy, S. Bardin, R. Bonichon, C. de Souza Lima. Search-based Approaches for Local Blackbox Deobfuscation: Understand, Improve and Mitigate. CCS 2021. pdf
- F. Recoules, S. Bardin, R. Bonichon, M. Lemerre, L. Mounier, M.-L. Potet. Interface Compliance of Inline Assembly: Automatically Check, Patch and Refine. ICSE 2021 — Distinguished Paper Award. pdf
2020
2019
- M. Ollivier, S. Bardin, R. Bonichon, J.-Y. Marion. How to Kill Symbolic Deobfuscation for Free (or: Unleashing the Potential of Path-Oriented Protections). ACSAC 2019. pdf
- M. Ollivier, S. Bardin, R. Bonichon, J.-Y. Marion. Obfuscation: Where Are We in Anti-DSE Protections? (a first attempt). SSPREW 2019. pdf
- F. Recoules, S. Bardin, R. Bonichon, L. Mounier, M.-L. Potet. Get rid of inline assembly through verification-oriented lifting. ASE 2019. pdf
- F. Recoules, S. Bardin, R. Bonichon, L. Mounier, M.-L. Potet. De l'assembleur sur la ligne ? Appelez TInA !. JFLA 2019. pdf
- B. Farinier, S. Bardin, R. Bonichon, M.-L. Potet. En finir avec les faux positifs grâce à l’exécution symbolique robuste. JFLA 2019. pdf
2018
- B. Farinier, S. Bardin, R. Bonichon, M.-L. Potet. Model Generation for Quantified Formulas: A Taint-Based Approach. CAV 2018. pdf
2015
2014
- R. Bonichon, D. Déharbe, T. Lecomte, V. Medeiros Jr. LLVM-Based Code Generation for B. SBMF 2014.
- R. Bonichon, D. Déharbe, C. Tavares. Extending SMT-LIB v2 with \(\lambda\)-Terms and Polymorphism. SMT Workshop 2014. pdf
2011
- R. Bonichon, P. Cuoq. A Mergeable Interval Map. Stud. Inform. Univ. 9(1), p. 5–37. pdf
- R. Bonichon, G. Canet, L. Correnson, E. Goubault, E. Haucourt, M. Hirschowitz, S. Labbé, S. Mimram. Rigorous Evidence of Freedom from Concurrency Faults in Industrial Control Software. SAFECOMP 2011, p. 85–98. pdf · doi
2007
- R. Bonichon, D. Delahaye, D. Doligez. Zenon: An Extensible Automated Theorem Prover Producing Checkable Proofs. LPAR 2007. pdf
2006
Skills
- Automated theorem proving, SMT solving
- Symbolic execution & binary analysis, software verification
- BFT consensus, blockchain protocols, ZK proof systems
- Functional programming (OCaml, Rust)
- LLM-assisted development
Languages
- French (native)
- English (fluent, TOEIC 966)
- Portuguese (fluent, spoken at home)
- German (fluent)
Technologies
- OCaml
- Rust, Lisp, Python, C, Java, JavaScript
- Emacs, git, nix, Makefile, Docker, LaTeX
- Linux, OpenBSD
Misc
- Guitar (classical, acoustic)
- Distance running (marathon)
- Cycling