Hi, I'm Guido.
Physicist · Entrepreneur · Programmer

After a friend invited me to join one of his sailing trips in 2017, I was hooked—the feeling of gliding across the sea, powered by nothing but the wind, is unparalleled. A passion hard to describe, yet instantly understood by many who have ever set foot on a sailboat. After another trip with my friend, my sister joined the next one, and there we decided to share this experience with as many of our friends as we could. Thus we had a groundbreaking idea: We wanted to charter a bunch of sailing yachts, invite an even larger number of friends, and take them out for a week they would never forget. So we assembled 12 other friends and, in March of 2021, obtained the sailing license together. Just a few months later, everything was ready.
Almost everything.
Because we had 6 separate yachts, we were worried the group would not emerge as a homogeneous group of friends but would split into cliques according to the way we distributed the people onto the boats. Our plan to avoid this was simple: Everyone would switch boats every day during the sailing leg of the day before returning to their own cabin for the night. The switching would follow a system designed so that everyone should be on the same boat with as many other people as possible throughout the week. Easy peasy, I thought, reaffirming to my sister that I would write a script that could solve the problem for us and would optimise our crew allocations accordingly.
After a natural period of procrastination, two days before the trip, I decided the time had come to actually conceptualise said system. After thinking about it for a bit, I realized that this was not as simple as it sounded. I started doing some research, reading some related academic papers. NP-hard, they say. I searched the web for tools that could help me solve my problem, but I couldn't really find anything. The papers also make it apparent WHY I can't find anything: It is a very hard problem to solve.
The crew-switching puzzle
Try a smaller version: rebuild three crews each day to maximise unique contacts and minimise repeats.
Day 1
Day 2
Day 3
- A–B
- C–I
- D–F
- D–H
- E–F
- G–I
I reflect on what I had learned during my physics degree about optimisation problems and approximation algorithms, and I decide to hand-code a solver in C++ for my specific scenario using the simulated annealing metaheuristic. I obsessed over performance while hard-coding constraints like group gender balance and pinned people (for the skippers). At the end of the night, I had a working algorithm which could complete around 10 billion iterations in a reasonable time and could find solutions, much better than random, and significantly better than what a simple random hill climbing algorithm would produce.
I remember that a random allocation would have resulted in each person being on the same boat at least once with, on average, about 45 others over the course of the week, while my algorithm brought that number up to about 53.
We ended up actually going with that output for our week, and it was a raging success. Multiple people told us they had the best week of their lives, and the collective euphoria was amazing to witness. All thanks to that algorithm. Well, that can not be proven in hindsight, but I certainly played its little role in the triumphant success of the sailing week.
The following year we did it again. And again, this time the night before our trip, I got out my code from the year before to dust it off. I had forgotten half of what I did, so my attempt at improving the algorithm led to a night-long debugging session I will never forget. Around 5 am the morning of the trip, it was finally working again, with marginally better results than the year before.
I was now using the algorithm for every larger trip we organised, until in 2025 everything changed. AI-coding agents had emerged and elevated an individual's ability to create software to another level. At the same time, we were planning to elevate our trip organisation to another level.
11 Boats. 115 People. 1 Week. 1 Algorithm.


I decided to leverage AI to significantly improve, and generalise the solution I had built, reimplementing it essentially from scratch in Rust, all with the feedback I had gotten from participants of the previous trips in mind. Adding countless features, I decided to also add a React web UI and to make the tool available for free online. Since I hadn't found something like this when I needed it in the past, I thought it might be useful for other people too.

The 2025 trip was probably the greatest success so far. People were ecstatic. The feedback from people regarding the crew switches became noticeably more positive compared to the earlier versions of my algorithm.
With the trip in the past, development effort slowed down, and the app I had created still remained in relative obscurity, hidden in the depths of the internet. Regardless, in late 2025, I resumed working on it simply because the problem grasped my imagination.
I had many ideas for what to refine and improve, and the advent of more powerful coding agents made the implementation of all these ideas actually realistic. This led to me spending an absurd amount of time researching and implementing the most powerful social-golfer-like problem solver algorithm in existence and finding novel solutions for previously unsolved instances of the problem. Also, I realised after making the page slightly more suitable for search engine indexing that demand for this product indeed exists, and by now (August 2026) tens of thousands of people have used the tool and have hopefully connected countless people who otherwise would never have met.