Issue 95: He Used ML to Read Minds. Here’s His Take on Code, Crypto, and AI, Ft. Jonathan Mercier-Ganady, Ex. Senior Software Engineer @Nillion

Author :
Nishant Singh
March 2, 2025

"One lesson about writing code that has carried over for me across all fields is…"

In this edition of Coffee with Calyptus, we sit down with Jonathan Mercier-Ganady, who has seamlessly navigated the worlds of game development, academia, distributed systems, and Web3. With hands-on experience from the Nintendo Wii to pioneering work in homomorphic encryption, our guest shares how non-linear career paths have enriched his technical expertise.

You’ve moved between game development, academia, distributed systems, and Web3. Is there a skill or perspective you picked up in one field that unexpectedly proved invaluable in another?

Absolutely. In fact, I believe there is great value in having a non-linear career because it allows you to grasp ideas from multiple areas. Game development, especially on the Nintendo Wii, gave me a good insight on how to write code for "exotic" hardware. The Wii, for instance, had dedicated co-processors for audio streaming, which required using special instructions to utilize them efficiently. This experience helped me appreciate the challenges of designing cross-platform and cross-hardware APIs, where you have to balance hardware constraints with software flexibility. One lesson that has carried over across all fields is that while writing optimized code is important, writing for humans should always come first.

You’ve worked with many programming languages, from C++ to Rust. Is there one that holds a special place in your heart, and why do you think it stands out compared to the rest?

Rust is the language I've worked with the most in recent years, and it’s definitely one of my favorites. Like any language, it has its flaws, but I think it strikes a great balance between expressiveness, safety, and performance. I wouldn’t use it for quick and dirty code --- that's what makes it a challenging language for coding challenges -- but for real-world projects, I consider it one of the best choices.

I started programming in C++ very early on, when I was around 13 years old, and have always tried to design interfaces that are easy to use. For me this is very important because as your project grows the complexity will certainly increase, as well as the number of people working on your code, potentially. The easier your code is to read and extend, the easier it will be for your coworkers/contributors to work with you. This is something I appreciate about Rust. Its ownership model and compiler may seem restrictive at first, but they force you to write clearer, safer, and more maintainable code from the start.

The projects you worked on involve complex topics like homomorphic encryption and Multi-Party Computation. How do you make these highly technical concepts approachable when explaining them to collaborators or non-technical stakeholders?

My PhD supervisor, Anatole Lécuyer, always said that you should aim to explain your work in a way that any random person on the street could understand. I think this is a great principle because it forces you to step back and reflect on the core aspects of your work: Why am I doing it? What is the context? What are my goals? What impact will this have?

When explaining complex topics, I try to minimize domain-specific vocabulary and, when necessary, provide clear explanations for any technical terms I do use. There is nothing worse than having to listen to a speech full of obscure acronyms. I always start with an overview and then delve deeper into the specifics as needed.

Finally, I always invite questions to ensure clarity and engagement, making communication a two-way process rather than a one-sided explanation.

AI and machine learning are revolutionizing software development. How do you see these technologies influencing fields like Brain-Computer Interfaces or distributed systems in the near future?

I wouldn't necessarily say that ML (Machine Learning, the technology behind most AI) is a particularly new idea on its own, as it has been used in academia for decades. In fact, during my PhD in 2012, I used an ML model to classify EEG (Electroencephalography) signals into "focused" and "relaxed" mental states, using electrodes on a person's head. That said, I agree that the increasing accessibility of ML for developers is a major advancement. I use it regularly and find it to be a valuable tool, but it's important to critically evaluate its outputs. I'm also somewhat concerned that we lack sufficient data on its energy consumption. I can definitely see how you could use ML/AI to assist in designing, optimizing, and detecting faults in distributed systems, but I don't think it will replace theoretical knowledge. I like to think of AI as an interactive rubber duck: explaining your issue to it forces you to rephrase and rethink, and it can also provide useful feedback.

Solidity Challenge 🕵️‍♂️

Out of the two smart-contracts given below, calling the test() function of which contract will cost less gas and why?

Jobs 💼

We have over 200 roles on our platform from companies like Aave, Aragon, Balancer, Gnosis, etc. Check out a select few below:

1. Principal Solutions Architect, Banking & Capital Markets - Chainlink Labs

Location: Remote, North America

Highlights: Pre/post-sales, blockchain tech, PoCs, APIs. Capital markets, Solidity/Golang/Rust ideal. Chicago/NYC/Boston preferred

Apply Now

2. Blockchain and Wallet Engineer, Republic

Location: Remote, Europe or North America

Highlights: Ethereum, EVM, multi-chain. Wallet dev, key management, DeFi, Solidity/Rust/MOVE. Open-source, NestJS, ZK knowledge preferred

Apply Now

3. ZK Auditor, Hacken

Location: Remote, Global

Highlights: 2+ yrs ZK proof dev, Cairo/Noir/Circom. Security audits, zk-SNARKs/STARKs, cryptography. Research/Certifications a plus

Apply Now

4. Frontend Engineer, Rarible

Location: Remote, Europe

Highlights: Frontend architecture, React, best practices, team mentorship. Improve processes and product quality

Apply Now

Solidity Challenge Answer ✅

Answer: The second contract will cost less than half the gas because writing to storage is costlier than emitting events.