Skip to content
View belmarca's full-sized avatar
  • Montréal
  • 01:26 (UTC -04:00)

Block or report belmarca

Block user

Prevent this user from interacting with your repositories and sending you notifications. Learn more about blocking users.

You must be logged in to block users.

Please don't include any personal information such as legal names or email addresses. Maximum 100 characters, markdown supported. This note will be visible to only you.
Report abuse

Contact GitHub support about this user’s behavior. Learn more about reporting abuse.

Report abuse
belmarca/README.md

🙋 Short bio

I am currently looking for work!

Immensely curious computational chemist turned software developer. I am currently finishing my Masters' in dynamic languages interoperation. I mostly write Python, JavaScript, Scheme and C (roughly in that order).

My academic and work experience spans the stack from DevOps and sysadmin work (cloud and on-prem) to full-stack web apps to networking, medical imaging, web scraping, smart contracts, API reverse-engineering, compilers and interpreters, FFIs, computational chemistry, LLMs, microcontroller firmware, general/executive consulting, technical expert in litigation etc.

Most of my work is private and not available on this repo.

Happy member of the Mighty Gerbils 🐹


📇 Contact

Je maîtrise le français et l'anglais. N'hésitez pas à entrer en contact dans l'une ou l'autre de ces langues!

marc-andre.belanger [-at-] umontreal.ca.

🎓 Education

  • B. Sc. in Chemistry, Université de Montréal
  • M. Sc. in Computer Science, Université de Montréal (ongoing)

📄 Publications

🗣️ Conferences

🛠️ Experience

  • 2022–2025 | Freelancer

    Worked on various contracts for clients involving web application development, web scraping, consulting, API reverse-engineering, data collection, analysis, and sanitization for SMBs.

  • 2024 | LLM Optimization Lead – Early Stage Startup

    Worked as a contractor on an LLM optimization and evaluation pipeline. Full-stack involvement from cutting-edge prompt engineering to computation graph optimizations to JITing prompt optimizers using meta-prompting techniques.

  • 2023–2024 | Lecturer – Université de Montréal

    Taught two introductory programming courses to hundreds of students. The courses used Python and the codeBoot environment, which I help build and maintain.

  • 2014–2023 | Software Developer and Consultant – Imagerie des Pionniers

    Built business-critical internal and customer-facing full-stack web apps for cloud and on-premise deployments. Acted as a consultant for stakeholders and decision-makers for procurement, strategy and litigation.

    I have built:

    • An issue tracking and ticketing system for internal use
    • A DICOM image sharing portal for practicioners and patients
    • A web-based appointment scheduler for patients handling over 20 000 appointments a year
    • An SMS-based waiting room management system to contact patients just-in-time for their exam handling hundreds of patients daily for over 100 000 interactions per year
  • 2016 | Technical Support Specialist / Software Developer – La Presse

    Built Apple device monitoring and reporting system using Apple Profile Manager. Created dashboards for management and tech support using PowerBI. Provided general IT support in a high-volume media environment.

  • 2013–2015 | Teaching Assistant – Université de Montréal

    Assisted in teaching multiple undergraduate chemistry courses.

⚙️ A few projects

In no particular order or categorization.

  • codeBoot - Browser-based IDE for teaching programming

    One of the main contributors to the project. I have worked on every part of the project, from the front-end to the compiler to the backend services (cloud and on-prem). I have used codeBoot to teach introductory programming courses at Université de Montréal.

  • BLINX - ESP32-based board for teaching programming

    I am a co-founder of the company that markets and sells the BLINX hardware and software. BLINX is a small board used for teaching programming. It can be plugged into a USB port and programmed from the codeBoot environment. It accepts a multitude of Grove sensors. I wrote a high-performance firmware proof-of-concept using ESP-IDF as part of our R&D.

  • py2js – Python to JavaScript Compiler

    Wrote a compiler targeting a subset of Python 3. Used in production as part of the codeBoot project, a web-based Python IDE for teaching.

  • pyinterp – CPS-Style Python Interpreter in Python

    Implemented the FFI layer as well as Python builtins, critical to codeBoot’s backend. The FFI integrates ideas from my research into a production system.

  • codeBoot on Microcontrollers

    Implemented WebSerial communication between codeBoot and MicroPython. Migrated legacy development environments to Docker for higher reliability and reproducibility. Handled firmware build automation and WebSocket bug fixes.

  • Ribbit Scheme

    Implemented the Ribbit VM in Haskell. Built classical source-to-source transformations (e.g., closure conversion) into the compiler. Bootstrapped an x86-64 backend. Worked on porting Racket’s “sets-of-scopes” expander to Ribbit.

  • Gambit Scheme

    Extended Gambit’s infix reader for JavaScript and Python syntax. Built an interface between Gambit Scheme and CPython using the CPython C API. Built an interface between Gambit Scheme and JavaScript which you can try here (write \alert("Hello!") at the REPL).

  • jsrna – JavaScript RNA Base Pair Annotation

    Web-based RNA base-pair annotator/viewer, using a ResNet-based transfer learning model. Reformulated as a classification task (similar to MNIST). Novel, highly efficient and accurate method yet unpublished.

  • 2023 DIRO Hackathon

    Helped organize the Université de Montréal’s 2023 DIRO Hackathon. Participants built games using the codeBoot platform to run isomorphically on the browser and an ESP32-based board.

  • CLA – Article Reading Club

    Organized a scientific article reading club for compiler and programming language theory groups. Also hosted a CTF for the group.

  • Ethereum transaction graph explorer

    Back when these things were rare, I built an Ethereum transaction graph explorer using Neo4j. I used this to find evidence of wrongdoing in some personal investments. The chain doesn't lie.

  • Making EVM smart contracts lie

    Wrote a PoC EVM smart contract on the testnet to exploit out-of-band problems on a major chain explorer which resulted in spoofed token metadata, misguiding potential investors.

Pinned Loading

  1. gambit/python gambit/python Public

    An interface to Python for Gambit Scheme

    Scheme 18 1