Here is a story of the first year of “Poznan Scala User Group” and the lessons we have learned during that year. We started on January 14, 2016, and since that day, we have already organized 9 meetings. Right now, the group has 187 members.
Table of Contents
Lessons learned
It can begin with a tweet
A new meetup can start with a tweet written by someone else:

At the time, we regularly had Scala-related meetings at the office, hence the idea was not very revolutionary, just slightly different. It quickly gained traction, and a few weeks later, we had the first meeting.
Corporate attitude does not help
Jacek must have been terrified during our first Skype call. I was terrified after the call because I realized how many corporate behaviors I managed to incorporate in my private life. I am not sure how many times we said something is impossible because we are still waiting for an email response, someone else’s decision, etc. Busy waiting is a thing in real life too!
You do not need to be an expert
I am not sure if anyone still remembers that, but the group (and probably all user groups in general) was created to learn together, not to be taught by one person. The first topic (ReactiveX) was chosen because of hype-driven development and a desire to use it at work ;)
Want to build AI systems that actually work?
Download my expert-crafted GenAI Transformation Guide for Data Teams and discover how to properly measure AI performance, set up guardrails, and continuously improve your AI solutions like the pros.
You should not be afraid of speaking at a meetup because what really matters is showing some results and commenting on what you have learned. What if you tried something and failed? That is even more interesting! Especially if you remember your mistakes and can tell us about them.
You do not need to take good pictures either ;)

You cannot have too many pizzas
Two or three times, we ordered enough pizzas to feed a small army. Obviously, it is not a problem anyone should worry about. If you have redundant pizza, someone will take it. It may be the next group having a meeting at the same location, people working there or you can have a pizza raffle ;)
I would like to mention that pizza is mandatory. We tried to substitute pizza with chips and sweets only once, and we will never do it again ;)

You can have a great meeting even if only three people show up
In the summer, we wanted to meet at a bar instead of organizing a talk, mainly because it was challenging to find a speaker. Three people (including two organizers) are not a group big enough to announce a success and post pictures of programmers drinking beers. Despite that no one was disappointed, we had an interesting discussion, and the beer was awesome ;)
Location matters
If you want to gather a lot of people in Poznan, organize your meetup at Poznan University of Technology. I wonder whether we will ever gather so many people in any other location. Now we organize meetings in the HolidayCheck office. Not only is the office awesome, but also if you want to commute by a tram, there is no better location.

Talking is not everything
When I was preparing the presentation about Akka Persistence, I realized that I was bored. I could not stand the topic, and my talk was dull. It was necessary to change it dramatically. Two days before the meeting, I decided to replace a significant part of the talk with a more practical exercise.
I created a low-tech version of a workshop. Instead of using computers and writing code, attendees had to design an Akka Persistence-based system using only a whiteboard and everything they managed to memorize.
I think it was quite successful and significantly better than a two-hour-long monologue of a speaker trying to show everything and explain even the slightest details.

Cancelling a meeting is not the end of the world
Canceling a meeting is not the end of the world, but I have learned that there are two ways of notifying attendees: the correct one and the one I choose. Not everyone received the message, and some showed up just to see an empty room. Probably in case of canceling an event, it is better to risk spamming people and send more messages than necessary than to send only one update and hope that everybody reads it.
Things to improve
Talks for beginners
When we ask attendees about topics they expect, there are three groups of people. The ones who want to hear more about advanced functional programming concepts, people who want to hear about data processing and big data, but the majority want a beginner-friendly introduction to Scala.
Preparing such talk is tough not only because we must decide which concepts are fundamental and what can be omitted but also because teaching is more demanding than sharing our own experience. Also, a single introductory talk is not enough, and we need a series of meetings. Even though preparing them will be challenging, such talks may significantly increase the number of people coming to our meetups.
