This year has seen a resurgence in really high quality systems
programming meetups. Munich Database
Meetup, Berlin
Systems Group, SF Distributed
Systems Meetup, NYC
Systems, Bengaluru
Systems, to name a few.
This post summarizes a bit of disappointing recent tech meetup
history, the new trend of excellent systems programming meetups, and
ends with some encouragement and guidance for running your own systems
programming events.
I will be a little critical in this post but I want to preface by
saying: organizing meetups is really tough! It takes a lot of work and
I have a huge amount of respect for meetup organizers even when their
meetup style did not resonate with me.
Although much of this post talks about NYC Systems, the reason I think
this post is worth writing is because so many other meetups in a
similar vein popped up. I hope to encourage these other meetups and to
encourage folks in other major metros (London, for example) to start
similar meetups.
Meetups
I used to attend a bunch of meetups before the pandemic. But I quickly
got disillusioned. Almost every meetup was varying degrees of startups
pitching their product. The last straw for me was sitting through a talk
at a JavaScript meetup that was by a devrel employee of a startup who
literally gave a tutorial for their product.
There were also some pretty intelligent meetups like the New York
Haskell Users Group and the New York Emacs Meetup. But not being an
expert in either domain, and the attendees almost solely appearing to
be experts, I didn't particularly enjoy going.
There were a couple of meetups that felt inclusive for various
skill-levels of attendees yet still went into interesting
depth. Specifically, New York Linux User
Group and Papers We Love
NYC.
These meetups were exceptional because they were language- and
framework-agnostic, they would start broad to give you background, but
then go deep into a topic. Maybe you only understood 50% of what was
covered. But you get exposed to something new from an expert in that
domain.
Unfortunately, the pandemic happened and these two excellent meetups
basically have not come back.
A couple of students in Munich
The pandemic ended and I tried a couple of meetups I thought might be
better quality. Rust and Go. But they weren't much better than I
remembered. People would give a high level talk and brush over all the
interesting concepts.
I had been thinking of doing an in-person talk series since 2022.
But I was busy with TigerBeetle until December of 2023 when I was
messaged on LinkedIn by Georg
Kreuzmayr, a graduate student
at Technical University of Munich (TUM).
Georg and his friends, fellow graduate students at TUM, started a
database club: TUMuchData. We got to
talking about opportunities for collaboration and I started feeling a
bit embarrassed that a graduate student had more guts than I had to
get
back
onto the meetup organizer wagon.
A week later, with assurance from Justin
Jaffray that at least he would
show up with me if no one else did, I started the NYC Systems Coffee
Club to bring
together folks in NYC interested in any topic of systems programming
(e.g. compilers, databases, web browser internals, distributed
systems, formal methods, etc.). To bring them together in a completely
informal setting for coffee at 9am in the morning in a public space in
midtown Manhattan.
I set up that linked web page and started collecting subscribers to
the club via Google Form. Once a month I'd send an email out to the
list asking for RSVPs to this month's coffee club. The first 20 to
respond would get a calendar invite.
And about the same time I started asking around on Twitter/LinkedIn if
someone would be interested in co-organizing a new systems programming
meetup in NYC. Angelo Saraceno
immediately took me up on the idea and we met up.
NYC Systems
We agreed on the premise: this would be a language- and
framework-agnostic meetup that was focused on engineering challenges,
not product pitches. It would be 100% for the sake of corporate
marketing, but corporate marketing of the engineering team, not the
product.
NYC Systems was born!
We'd find speakers who could start broad and dive deep into some
interesting aspect of databases, programming languages, distributed
systems, and so on. Product pitches were necessary to establish a
context, but the focus of the talk would be about some interesting
recent technical challenge and how they dealt with it.
We'd schedule talks only every other month to ease our own burden in
organizing and finding great speakers.
Once Angelo and I had decided to go forward, the next two challenges
were finding speakers and finding a venue. Thanks to Twitter and
LinkedIn, finding speakers turned out to be the easy part.
It was harder to find a venue. It was surprisingly challenging to find
a company in NYC with a shared vision that the important thing about
being associated with a meetup like this is to be associated with the
quality of speakers and audience we can bring in by not allowing
transparent product pitches.
Almost every company in Manhattan with space we spoke with had a
requirement that they have their own speaker each night. That seemed
like a bad idea.
I think it was especially challenging to find a company willing to
relax about branding requirements like this because we were a new
meetup.
It was pretty frustrating not to find a sympathetic company with space
in Manhattan. And the only reason we didn't give up was because Angelo
was so adament that this kind of meetup actually happen. It's always
best to start something new with someone else for this exact
reason. You can keep each other going.
In the end we went with the company that did not insist on their
own speaker or their own branding. A Brooklyn-based company whose CEO
immediately got in touch with me that they wanted to host us, Trail
of Bits.
How it works
To keep things easy, I set up a web page on my personal site with
information about the meetup. (Eventually we moved this to
nycsystems.xyz.) I set up a Google Form to
collect emails for a mailing list. And we started posting about the
group on Twitter and LinkedIn.
We published the event calendar in advance (an HTML table on the
website) and announced each event's speakers a week in advance of the
event. I'd send another Google Form to the mailing list taking RSVPs
for the night. The first 60 people to respond got a Google Calendar
invite.
It's a bit of work, sure, but I'd do anything to avoid Meetup.com.
It is interesting to see every new systems programming meetup also
not pick Meetup.com. The only one that went with it, Munich Database
Meetup, is a revival of an existing group, the Munich NoSQL Meetup
and presumably they didn't want to give up their subscribers. Though
most others use lu.ma.
The mailing list is now about 400+ people. And in each event RSVP we
have a wait list of 20-30 people. Of course although 60 people say Yes
initially, by the time of the event we have typically gotten about 50
people in attendance.
At each event, Trail of Bits provided screens, chairs, food, and
drink. Angelo had recording equipment so he took over audio/video
capturing (and later editing and publishing).
After each event we'd publish talk videos to our
@NYCSystems Youtube.
Network effects
In March 2024, the TUMuchData folks joined Alex
Petrov's Munich NoSQL Meetup to form the
Munich Database Meetup. In May, Kaivalya
Apte and Manish
Gill started the Berlin Systems Group,
inspired by Alex and the Munich Database Meetup.
In May 2024, two PhD students in the San Francisco Bay Area, Shadaj
Laddad and Conor
Power, started the SF Distributed
Systems meetup.
And in July 2024, Shraddha Agrawal,
Anirudh Rowjee and friends kicked
off the first Bengaluru Systems Meetup.
Suggestions
First off, don't pay for anything yourself. Find a company who will
host. At the same time, don't feel the need to give in too much to the
demands of the company. I'd be happy to help you think through how to
talk about the event with companies. It is mutually beneficial for
them to get to give a 5-minute hiring/product pitch and not need to do
extensive branding nor to give a 30-minute product tutorial.
Second, keep a bit of pressure on speakers to not do an overview talk
and not to do a product pitch. Suggest that they tell the story of
some interesting recent bug or interesting recent feature. What
happened? Why was it hard? What did you learn?
Focusing on these types of talks will help you get a really
interesting audience.
I have been continuously surprised and impressed at the folks who show
up for NYC Systems. It's a mix of technical founders in the systems
space, pretty experienced developers in the systems space, graduate
students, and developers of all sorts.
I am certain we can only get these kinds of folks to show up because
we avoid product pitch-type talks.
Third, finding speakers is still hard! The best approach so far has
been to individually message folks in industry and academia who hang
out on Twitter. Sending out a public call is easy but doesn't often
pan out. So keep an eye on interesting companies in the area.
Another avenue I've been thinking about is messaging VC connections to
ask them if they know any engineers/technical founders/CTOs in the
area who could give an interesting technical talk.
Fourth, speak with other organizers! I finally met Alex Petrov in
person last month and we had a great
time
talking about the challenges and joys of organizing really high
quality meetups.
I'm always happy to chat, DMs are open.