How I got here

I don't remember the day clearly, but I remember wanting to use it all the time. We didn't have internet yet, so I spent a lot of time exploring Encarta, which was a digital encyclopedia full of maps, photos, articles and videos. I liked looking at photos and videos.

Once we got internet, I started learning from YouTube tutorials. That's how I found Sony Vegas and began putting photos and music together into videos that had far more transitions than they needed. I was mostly playing and learning, but I liked having something I had built myself.

By the time I was 12, I was downloading photos and editing them in Photoshop. I followed YouTube tutorials to learn how to use the tools. After that, I kept playing with the tools until I was proud of the image I had edited, though I would question my taste at 12. All this editing made me want to take pictures and use a camera, so I started reading about ISO, aperture and shutter speed before I even had a camera. When I was around 17, my parents bought me a DSLR. It meant the world to me and I still have it.

Shortly after, I joined a small photography course run by a local studio. We walked around town or went on hikes, learning as we took pictures. I liked the feeling of owning the whole process, from taking the photo to editing the final image. On one of our outings, we took some pictures at a medieval festival in my hometown. The local studio let us choose and edit our best pictures, then printed them for an exhibition inside the medieval museum.

In my last year of high school, I started building websites using HTML and CSS. After years of playing with photos and videos, I liked the idea of designing and building presentation websites. We wrote C++ in high school, but those programs mostly ran in the console and felt like homework. Building a website had more impact on me. I could see its use case in the real world. These days, though, I enjoy working in the terminal and I use Neovim as my main editor.

University made programming feel more serious, but I still liked to learn by building small projects because I was curious and impatient. I always felt this weird energy knowing there was plenty of stuff I could build, which kept me challenged. Besides those projects, I wrote a lot of Python scripts to automate things, then got into browser automation and little scrapers. Funny enough, it was an early version of what I ask agents to do now, just with more deterministic code and patience.

In 2020, classes moved online and I found myself at home with more time than usual. I started learning about machine learning through YouTube tutorials. With the Champions League weeks away, I challenged myself to build a model to predict match outcomes using scikit-learn’s k-nearest neighbors classifier. I spent a lot of time collecting team statistics and historical results, then formatting and preparing the data for the model. The model got 56% of its predictions right. The project taught me how much the quality of the data matters and gave me practical experience building and evaluating a machine learning model.

While I was still at university, I worked part time at Rubrikk Group, managing web crawlers for an ad aggregation platform. Most of my work involved using regex and XPath to extract listing data from web pages. When a website changed its design, those patterns could break and I had to go back and fix them. The problem was that we did not always know when something had stopped working. Our tool showed when a pattern had last been seen and used, but someone had to check it manually each day. Most of the time, we fixed problems reported by other parts of the company. They noticed missing ads or incomplete listings, usually after a report showed that the number of ads had dropped. I got pretty fast at fixing crawlers and writing patterns, so I asked my team lead if I could work on a service alongside my usual tasks. I wanted us to know which patterns needed attention without having to wait for someone else to report missing ads. So I built a service that checked the database for patterns that had not been seen in 30 days and emailed the operators each morning. It was the first service I designed and put into production myself.

My interest in Bitcoin led me to blockchain technology and smart contracts. I was in my last year of university and needed to start my bachelor's project. My idea was to represent a vehicle on chain as an NFT, with critical information like ownership, odometer readings and service history linked to it. That would keep those records in one place instead of scattered across websites, PDFs and papers in a glovebox.

The project got me a free ticket to a blockchain event in Paris, where I met the founders of Itheum. I stayed in touch with them and eventually joined the team.

I spent the next few years at Itheum working across smart contracts, backend services and developer tools. I implemented most of the functionality in its MultiversX smart contracts, including those behind Data DEX. I also built the TypeScript SDK for creating and trading Data NFTs, including minting, marketplace transactions and metadata handling. It gave other developers a way to use those parts of the platform in their own applications.

One project I was especially proud of was a bridge for moving assets between Solana and MultiversX. I wrote the smart contracts for both chains and built the bridge backend. The contracts on both chains passed audits with no critical vulnerabilities.

Towards the end of my time at Itheum, I built an AI agent you could chat with to create music. After you gave it lyrics and paid on the blockchain, it would use Suno AI to generate a song. The agent used an SDK I built to upload the music, prepare playlist metadata and mint it as an NFT. The NFT owner could then listen to the song on our platform.

I later joined Fast, where I built financial applications and integrations with other blockchains. One of the projects I enjoyed most was AllSet, which used Fast as the settlement layer to access liquidity across blockchains. Users could receive the funds on their original chain or another supported chain, even when the swap happened elsewhere. I implemented bridge and execution logic in Solidity and worked on the Rust relayer that submitted transactions, tracked confirmations and handled retries. For the swap API, I built a Go service that aggregated swap quotes from decentralized exchanges (DEXs) across different blockchains.

At Fast, I built Skill Optimizer, a tool for evaluating agent skills. It ran tasks in Docker, checked the results automatically and saved traces of each attempt. I could run the same tasks across different models and repeat them to see how consistent the results were. With Claude Code and Codex, I could analyze the traces to find where an agent had not followed the skill's instructions and revise the skill for those cases. I could then rerun the evaluation to check whether the changes helped.

I'm now at a stealth startup, where I work on AI research and build products. I designed experiments and built evaluation pipelines to compare language models and AI agents. I used the results to investigate failures and test changes to agent workflows. I also worked on an AI assistant prototype, extending an existing platform. Alongside that work, I’m learning more about how language models are built and trained.

I spent two months staying with the team in a hacker house in San Francisco. We tried out product ideas and built prototypes quickly, while also meeting other developers and founders at AI events around the city. One evening, we hosted our own event at the house, where people shared what they were building. What stayed with me was how easy it was to meet people experimenting with new technology. There always seemed to be another event to go to or someone with an idea to talk about.

Outside work, I ride my road bike and sometimes race.