Guide on IT meetups in St. Petersburg. Part 1: Hardcore Meetups
Master's student from the Faculty of Information Security and Computer Technologies at ITMO University, Alice Koroshavina wrote a blog for ITMO news about the best IT events in St. Petersburg.
Sometimes developers from other cities and students ask me to advise on IT events in the cultural capital. While I was organizing PiterPy Meetup, I visited different IT events in order to steal the best practices. In this review, I systemized my impressions of regular events, held by the largest IT communities of St. Petersburg. All of them are free to enter, but almost everywhere pre-registration is required. Organizers need to know the approximate number of participants to choose the place, prepare a coffee break and buy merchandise. Almost all of the mentioned communities have a youtube channel where you can watch records from previous meetings and telegram chats where you can keep up with announcements. Probably, meetups which I have not visited yet are impressive and worthwhile too. I will write a series of articles over the next few weeks covering different kinds of IT meetups that you can come across. But first I’ll start with a bit of background into IT subculture. Maybe someone will continue this review and fill the lacunae.
IT subculture: a very short introduction
Programmers need to focus on performing highly specialized tasks. However, the market is changing dynamically, and it may be difficult for experts with specific specializations to adapt. Moreover, in recent years there is a demand for full-stack developers who are capable to apply skills from a wide range of areas. For example, backenders and frontenders often have to become fullstacks. Data scientists need to do some work of devops or make data visualization like both a d3 programmer and a web-designer. There was two career paths for engineers: dive into development (senior developer, software architect) or move to management (team lead, project manager, product manager, CTO). Nowadays, there are many shades of IT specialists from an expert in a single technology to a technology evangelist who should monitor and analyze trends and also have skills in IT marketing (devrel). The idea of being a T-shaped engineer is becoming increasingly popular (the T-letter metaphor was invented by David Guest almost 30 years ago, though). The vertical bar comprises a bundle of expert level of knowledge in a single domain. The horizontal bar includes a wide area of thought and a range of skills in different areas. T-shaped engineers dive deep into their specialization but periodically come up to the surface and gather surface knowledge on different topics.
There is no shortage of events in St. Petersburg. Almost every week developers can find something interesting to visit. As the organizer of the JUG.ru conferences remarked, initially meetups were organized between friends from different companies for experience exchange. Now the organizers of meetups emphasise communication and networking.
Gurus of public speaking prepare for conferences at meetups. Inexperienced speakers often have something useful to say but do not know how because they seldom attend events. Organizers help them to prepare their presentation. After following the path of Demosthenes, these speakers feel confident and excited in front of a large group of like-minded people. By the way, meetups in Moscow are organized mainly by IT-companies, while meetups in St. Petersburg are supported by the community by voluntarily participating.
I would recommend you to attend events of different IT-communities, "voting by your feet" for the most relevant topics, charismatic speakers and congenial atmosphere.
If you have not visited IT festivals and conferences in St. Petersburg before, you can find a list of more than 20 IT communities on the websites of these events and meetup.com. For the sake of knowledge, it is more productive to visit a large conference once a year. Choose the one organized for developers by developers, without a wide range of topics, hype, marketing and HR-managers. If you are interested in discussion trends and problems, visit once a year a fest for different IT communities and companies (like TechTrain or ITGM). Hardcore fans will be disappointed with festivals from marketers with a kaleidoscope of softcore content (neural interfaces, lectures on polyamory, discussions on gender issues in IT or ethics of AI).
Hardcore meetups
If you focus on backend development, especially highload, go to Go meetup. Gophers like to discuss what is under the hood of big applications and software architecture. Services in Go are of a small size, but tasks like "implement a 16×30 progress bar with scrolling in a large project" require to understand how your code will be executed in the system. The community exists since 2013. Previously there were 2 long hardcore meetups per year. Now their amount has doubled. Usually there are 3−4 hardcore talks about practical problems at a meetup (unlike meetups of other communities with 2 presentations, at least one of which is softcore). Sometimes speakers express their ideas in the format of live-coding session. Probably, you will never see a gopher's stand-up or memes on slides. Paraphrase "In code we trust" might be a motto of the brotherhood of tech masons. In order to gather people sharing common interests, talks about devrel and the world of development outside Go are cut off by organizers. Each receive more than a hundred registrations for a meetup which is approved manually after verification. However, there are no formal criteria to refuse a person to participate (except HR-managers). Between the crowds gathered by marketing and the quality of communion, organizers choose the latter. Unlike other IT-communities, gophers ignore telegram chats (although they have a chat). The community consolidates into a Slack workspace and use Google Groups as a forum. I would say, the UX of these services do not encourage offtop discussions. Despite the absence of SMM strategy, the community is actively growing. Now their events gather at least 100 people which is untypical for hardcore meetups. It seems like gophers, following the principle of Occam's razor, remove unused imports and variables in a life program in order to compile it and achieve a target value. Goal.go of organizers of Golang Piter is pointing engineers to the good news of using Go as the most effective instrument among other programming languages in certain tasks. I’d call this technology evangelism Go-spel. Although Go has become popular nowadays, it is still not used in some projects because of the lack of motivation to learn new things from developers or the lack of ability to make strong decisions in management. The target audience is engineers who have experience with multiple programming languages, understand the internal workings of a computer's hardware and love math. It takes a couple of days to learn rules for the Go syntax, however programming in Go requires a deep understanding of many things outside the code (such as type categories, scalability, file systems, predictor on CPU, etc.).
Golang was designed as an answer to problems faced in software development at Google. The main idea was to round up bad guys who write unreadable code by the syntax of a programming language. The opposite approach is to encourage using good design patterns and practices in code. That’s what creators of IDEs and linters intend to do. Linter can give more useful tips than a speaker who wants to be popular and recognizable without creating or improving technologies. If you are interested in trends and emerging ideas in this area, visit seminars of different research labs at JetBrains. Seminars propose essence of recent papers on building compilers with LLVM, Domain-specific languages (DSL), code2vec and AST, automated program repair techniques for fixing bugs, code review and automated refactoring with deep learning and many other relevant topics. At each seminar there is one research report and a free discussion. Always there are a lot of formulas on the slides without code. Speakers don’t like to talk about the practical applicability of their research (true mathematicians). Although the code to implement the approaches can be found on GitHub (for example, some plugins for IDE with DL models under the hood). Seminars are open to all but attendees are primarily from ITMO and St. Petersburg State University. Sometimes the seminar for students turn to a lecture of a visiting professor. Among interesting research of students, the most remarkable topics are "generating programs from natural language' and "developing convenient and secure DSL for smart contracts'. History of programming languages is the history of increasing the level of abstraction from the machine hardware. DSL follow this path too, providing engineers an opportunity to focus on the business problem. On the one hand, this is due to the growing complexity of systems. On the other hand, developers often have to decompose tasks by themselves because a lot of managers don't have enough skills. By the way, if you prefer to invent the wheel from githooks, ctags, BBedit to modern IDEs, you can discuss this and other dirty hacks at meetups organized by PiterPy Meetup (watch the video from one of the previous events on the youtube channel).
You can also discuss DSL and inventing the wheel at Fprog meetups. Once I heard a cool story "We had been writing in Haskell. But then we thought it was too difficult and it would be easier to create our own DSL…" The congenial atmosphere in Fprog community is made by its participants, whose age and experience allow them to discuss the similarity between the concept of returner in modern Haskell and its implementation in C 20 years ago. There are not a lot of attendees at their events but no one is random. All of them are engineers with an impressive background and good taste. Programming for them is an art. After developing in different programming languages they have chosen functional programming, a mixture of elegance and academism. Almost every speaker tells more about the certain details or pass some explanations, according to the comments from listeners during his speech. This interesting format of presentation couldn't be adopted to a large crowd, it is for a small company of people who know each other. Discussed topics include Haskell code profiling, recipes of elegant error-handling with monoids, category theory, unusual practical applications of functional programming such as NLP or OS development.
While presentations are primarily dedicated to Haskell, Elixir, Erlang, Lisp and its dialects, etc., on the sidelines of the meetup attendees discuss Java, Kotlin, TypeScript and Python. They argue whether there are languages that can be called functional, or if it is just a mindset. One of the regular participants often presents at the events of PiterPy Meetup. Functional programming is like the gestalt principle of figure and ground: someone sees an invention of the wheel while another enjoys the beauty of engineering solutions. However, both of these types of people come to close the gaps in self-realization, complete unfinished forms of creative thoughts. These undisclosed desires are a "physiological legacy" of money driven development. If you want to join the collective therapy, have a look on slides and records from previous meetups and pet-projects of the community on GitHub.
If you want more hardcore, try meetups for C++ developers where they share their experience and pain. The depth of talks can be described by the slide of one of the speakers: "I hope the common words before were understandable. Let's go deeper". Meetups usually include one long monolog on a certain topic and a following discussion. The community adheres to the Berlin Code of Conduct. Topics are mainly related to algorithms and data structures, design patterns, memory management, changes in the language (meetups are attended by members of the Russian working group on C++ standardization). C++ User Group meetups in St. Petersburg are organized approximately once in 3 months because it is hard to find hardcore speakers monthly. High-level qualified engineers are usually busy, while the preparation of a speech takes more time than writing a tech article. The problem is that listeners don't have the opportunity to pass the boring details or re-read a complex explanation.
Csharpists have their unique C-charm. Many attendees of SpbDotNet meetup write not only in C# and F# but also in C / C++ and other languages outside the .NET stack.
Their age and experience allow them to discuss new frameworks using the pattern: "Everything new is well-forgotten old. I consider