WEBVTT
Kind: captions
Language: en

00:00:00.000 --> 00:00:10.960
So this is my recollection of the fantastic first Rust AI meetup that we held at ADN meeting offices

00:00:11.760 --> 00:00:19.440
in Amsterdam on September 9th, 2026, the night before Pydenta Amsterdam opened

00:00:19.440 --> 00:00:30.320
the next day. So our company like SAIL builds a complete implementation of the Spark ecosystem,

00:00:30.960 --> 00:00:38.720
Apache Spark ecosystem in Rust. So we built the engine, we built Iceberg, we built Delta and we

00:00:38.720 --> 00:00:46.400
built Catalog support directly in SAIL and we achieved tremendous speed up and much better

00:00:46.400 --> 00:00:56.320
efficiency that Apache Spark on JVM. So Rust native gives you 10 times the speed, it's 50% 50 times

00:00:56.320 --> 00:01:03.920
actually cheaper, right? But most importantly it's AI native for Python, Python is the language of AI

00:01:04.480 --> 00:01:14.560
and data science and Python UDFs, user-defined functions can run in Rust directly in Python 3

00:01:14.560 --> 00:01:22.160
instead of crossing the JVM boundaries back and forth as they have to do in Spark with serialization

00:01:22.160 --> 00:01:33.920
deserialization. So, and ADN is one of the world's top payment processing financial services companies.

00:01:33.920 --> 00:01:44.000
It's processed a trillion dollars a year and its headquarters is in Amsterdam, it's a diamond sponsor of

00:01:44.000 --> 00:01:52.880
Pydata Amsterdam for many years and they found us by themselves. The folks who run Spark, as often is the

00:01:52.880 --> 00:01:59.360
case, found that Spark jobs don't finish in time. If they finish at all, they run out of memory and the

00:01:59.360 --> 00:02:06.560
engineers have a lot of problems running this kind of job. So they found SAIL, they tried it, they found

00:02:06.560 --> 00:02:18.560
huge success, they committed batches and we set up this meetup the night before the conference. And for me

00:02:18.560 --> 00:02:25.280
it's the veteran meetup funder and organizers always a fun challenge. How do you do a meetup in a new city?

00:02:25.280 --> 00:02:32.320
You know, in Bay Area I have many thousands of people in my ecosystem, they know me and basically

00:02:32.320 --> 00:02:38.800
have no problem filling up any kind of meetup. When we started Rust.ai at AWS Builderloft, we had I

00:02:38.800 --> 00:02:45.280
think 400 RSVPs and we filled out the place at probably 250-300, which is unheard of as the show to

00:02:45.280 --> 00:02:50.800
RSVP ratio. It exceeds kind of functional programming, distributed systems, traditional

00:02:50.800 --> 00:02:55.920
meetups and you know five times better than JavaScript or Genetic AI meetups where there are

00:02:55.920 --> 00:03:04.240
five events a night and everybody basically grabs RSVP without showing up. So I posted the meetup on

00:03:04.240 --> 00:03:10.080
Luma at first, it was not much traction. It's a new city, it's actually not the biggest AI community in

00:03:10.080 --> 00:03:16.320
Europe. It's behind Berlin and Paris and London. It's not the biggest market in Europe, it's a hub for

00:03:16.320 --> 00:03:24.400
certain, but I have fantastic partners. So the AI Foundry is a meetup which I met last year and I

00:03:25.040 --> 00:03:32.000
invited them to co-host it with me and we sent the invitations to our list. And also in 2018,

00:03:32.000 --> 00:03:38.000
I built a conference in Amsterdam called RethinkTrust, RethinkTrust.org. That was the first

00:03:38.800 --> 00:03:46.640
non-crypto conference on industrial and IoT blockchain, which was positioned as an OBS engineering

00:03:46.640 --> 00:03:53.680
event. And of course it was categorized as crypto by the media in events of the time. We were at the

00:03:53.680 --> 00:03:59.120
Berthin Berlayer and we had senior executives from multiple European leading companies such as Bosch,

00:03:59.120 --> 00:04:10.400
Siemens, KPMG, and KLM, and Shell in attendance. So I wanted to invite them as well. However, the website

00:04:10.400 --> 00:04:19.200
was built by my partners and it was long gone. So I kind of thought, how can I get my list back and how can I

00:04:19.200 --> 00:04:30.160
have my milestone back? So I just asked Claude and Codex to look at my Gmail and my Google Drive and they

00:04:30.160 --> 00:04:35.360
found all the design documents, all the layouts and all the transactions because I was a partner

00:04:36.000 --> 00:04:42.000
on the checkout. And so from that we restored everything. So now you can go to RethinkTrust.org,

00:04:42.000 --> 00:04:50.240
which is in the S3 bucket, as my most other conference sites, which are there forever. And

00:04:50.240 --> 00:04:58.160
the list was restored and I invited 500 people from the list in addition to 8000 people from our global

00:04:58.160 --> 00:05:07.360
list and more and the about, I think, 3000 people from the local meetups. And that was really full house.

00:05:07.360 --> 00:05:15.440
However, something happened. There were a few days before we went, we got kind of panicked signals from

00:05:15.440 --> 00:05:22.560
several people that September 9th will be the nationwide transportation strike in the Netherlands.

00:05:22.560 --> 00:05:28.560
And everybody's using public transportation in the Netherlands, they go by train and they go by bus

00:05:28.560 --> 00:05:36.320
and they go by trolley. So that kind of sounded like a judgment call. And of course, I will never back down.

00:05:37.360 --> 00:05:43.680
I will never back out. The event is in the books. Everybody is invited. And I have perfect trust in

00:05:44.320 --> 00:05:52.320
Amsterdamers who go by bike and who go on foot. And I was not wrong. Probably got half of the RSEPs.

00:05:52.960 --> 00:06:01.440
But given the strike, that was enormous. And I'm very happy that one of the folks who attended,

00:06:01.440 --> 00:06:08.160
Luca posted an amazing blog, recapping everything. We got a committee speaker, Robin Everard,

00:06:09.280 --> 00:06:16.640
to present Digital Sovereignty and Rust. And the program was fantastic. So the first talk was

00:06:17.280 --> 00:06:25.440
by Zemin, who is the software engineer at ADN. And he famously said that he used Spark for six years. He was at

00:06:25.440 --> 00:06:34.000
ADN for six years and he has a cat who is six year old. And he presented the use case. He presented

00:06:34.960 --> 00:06:45.120
why Spark was going slow, how sale fit the bill. And his talk was primarily from the Spark running

00:06:45.120 --> 00:06:52.160
angle. So it was really telling that sale could just come in and, as we say, with a single URL change,

00:06:52.720 --> 00:07:00.000
take over that complex job. So you have to look at the talk and enjoy the specific use case,

00:07:00.000 --> 00:07:07.680
which really gives you a detailed overview. So two days later at PyData Amsterdam,

00:07:09.680 --> 00:07:19.760
our own CEO Shehab Amin and Santos from ADN gave a different talk where they talked about the

00:07:19.760 --> 00:07:28.560
combination of Spark requirements at ADN at a more general level and how sale addresses it. And Santos

00:07:28.560 --> 00:07:36.160
talked more about the variety of stacks and the policies and the teams at a higher level than kind

00:07:36.160 --> 00:07:41.440
of individual engineering requirements for a job. And then it was very interesting to see that

00:07:41.440 --> 00:07:54.800
alternatives such as Pandas and Polars and whatnot were considered. However, moving there would change

00:07:54.800 --> 00:08:01.680
the established workflows of the dozens, hundreds of Spark jobs and require multiple teams to change

00:08:02.320 --> 00:08:11.280
the way they do things and sale can just slide in, improve performance without incurring that kind of

00:08:12.080 --> 00:08:20.480
change. So I think in combination, you have to look at both of these talks as extremely illuminating

00:08:20.480 --> 00:08:27.840
use case and the one of the biggest financial service providers in the world at huge scale.

00:08:29.040 --> 00:08:36.320
So that's really, really interesting. What I'm also very happy about is that both co-founders,

00:08:36.320 --> 00:08:44.960
Shehab Amin, the CEO, and Hiran Lin, the CTO, converged on the city and co-presented at the meetup. So

00:08:44.960 --> 00:08:53.280
Iran now lives in Shenzhen, China, and Shehab is my neighbor in East Bay, Bay Area, California,

00:08:54.000 --> 00:09:01.920
about 10 minutes away from me actually. So when the talk was accepted for by day at Amsterdam,

00:09:01.920 --> 00:09:07.920
they made the decision to bring the team together for the very first time in Amsterdam for an offsite.

00:09:07.920 --> 00:09:17.200
And we could meet each other. We have folks in Europe, America and Asia. So everybody converged.

00:09:18.160 --> 00:09:26.560
And it was a great, great way to align, get to know each other, prioritize different things that

00:09:27.600 --> 00:09:34.800
we do, building sale and doing the rollout and getting customers like ADIAN, which is really,

00:09:34.800 --> 00:09:40.800
really enormous validation that we are ready for the world. We come and fix problems which people

00:09:40.800 --> 00:09:47.440
actually have. They find us. So it was extremely encouraging and just looking how it solves the

00:09:47.440 --> 00:09:54.320
customer problem is I think one of the most rewarding experience for a systems builder. When

00:09:54.320 --> 00:10:00.080
you really build a system with high performance, with high compatibility requirements, our build for

00:10:00.080 --> 00:10:06.720
sale has to pass the whole Spark test suite, which is a requirement, which if you ever want to

00:10:06.720 --> 00:10:12.240
contribute to sale, you have to teach your agents to do that. It's a very elaborate process and a very

00:10:12.240 --> 00:10:19.760
elaborate document to train your agent. So we did that. And so Hiran and Shehab both gave a talk. There

00:10:19.760 --> 00:10:27.680
was some kind of audio malfunction on the local mic. I was recording with my own directional room mic, but also

00:10:27.680 --> 00:10:36.320
in the middle of the talk I had to put on some DJI mics on Shehab and Hiran. So hopefully you will see

00:10:37.040 --> 00:10:46.320
the audio is pleasing after a little bit of the initial kind of hiccups. And at Padete Amsterdam, I had to

00:10:46.320 --> 00:10:51.440
record everything myself because to my surprise there was no room recording. And so I was very happy that I

00:10:51.440 --> 00:11:02.480
brought my 4K full frame Lumix setup and recorded my own audio again directly into the mics because of the

00:11:03.360 --> 00:11:12.480
noise level in the warehouse and DSM where it is held, which is fantastic for all things except the sound.

00:11:12.480 --> 00:11:21.440
And Robin Verars is a local leader of the company called Hoisted. He talks about digital sovereignty and

00:11:22.240 --> 00:11:31.040
he actually put sale to use for the Dutch Ministry of Defense. So digital sovereignty, high sovereignty,

00:11:31.040 --> 00:11:38.960
implies that you control the clouds you're running in, you control access. And sale is perfect for on-prem,

00:11:38.960 --> 00:11:49.520
for bringing your own cloud setup, which Robin did. So we proved that we are ready for compartmentalized,

00:11:49.520 --> 00:11:58.080
air-gapped and sovereign usage in geographies and markets like EU. So another fantastic use case,

00:11:58.080 --> 00:12:05.200
another fan and Robin helped us also to bring folks into the meetup. If you are in Amsterdam, we're

00:12:05.200 --> 00:12:11.760
definitely looking for organizers who will keep moving the needle forward. We build it as a Rust AI

00:12:12.400 --> 00:12:19.040
meetup, but it doesn't have to be Rust, it has to be fast. And I draw the line that the native AI

00:12:19.040 --> 00:12:24.720
supports. It can be C++, it can be Zig, it can be OCamble. OCamble is fantastic, you should check it out.

00:12:24.720 --> 00:12:34.160
It cannot be JVM. JVM presents a boundary for Python, which is insurmountable in terms of practicality.

00:12:34.880 --> 00:12:41.520
And Amdal's law will always kill you in the end. Amdal is stronger than any characters you can bring to

00:12:41.520 --> 00:12:51.760
the table. So that's the quick summary of that fantastic meetup and the beginning of the Amsterdam

00:12:51.760 --> 00:12:58.800
Rust user group, as I had to call it on meetup.com and the Rust AI generally. But we basically can call

00:12:58.800 --> 00:13:04.640
it whatever in the US I call it. Really, I am data meetup, RAID, or Rust AI and data meetup. You know

00:13:04.640 --> 00:13:14.160
what I mean, right? Bring the fast ecosystem of AI infra 2.0. Bring folks who build foundations in

00:13:14.160 --> 00:13:21.120
rigorous engineer distributed systems such as SAIL, such as LaserData, such as COCO index, Temporal,

00:13:22.400 --> 00:13:32.160
and columnar, of course, IDBC, Matt Topol, who spoke at PyData. And then expose it as APIs through Python.

00:13:32.960 --> 00:13:41.200
But ensure that you do have a solid foundation. The tip of the iceberg is Python, but the base of the

00:13:41.200 --> 00:13:51.520
iceberg should be really fast. So that's my summary about the first first meetup in Amsterdam. And my

00:13:51.520 --> 00:14:01.440
next podcast on the structured output bar series of Struck.fm, which is the new name for the podcast I

00:14:01.440 --> 00:14:08.480
was effectively doing for 15 years. And now all assembled at Struck.fm. Check it out. The next

00:14:08.480 --> 00:14:11.760
episode will be about PyData Amsterdam itself.

