Saint P Rubyconf II is the most significant Ruby event for developers in Saint Petersburg, Russia

The Conference is continuously developing, and we decided to move forward. This time the event will be held in IFMO University campus. We invited several Ruby stars. Nick Sutterer & Bozhidar Batsov will join us this year. The official language of the event is English now. All speakers will give talks in English. And the last but not least, we expect a record-breaking number of participants. Last year we hosted about 120 people, now we are preparing for 300 people to come.

Conference Program

Sunday, June 10

9.00 - 10.00

9.00 - 10.00

Registration / coffee

10.00 - 10.15

10.00 - 10.15

Openning

10.15 - 11.00

10.15 - 11.00

Creativity vs. Metaprogramming

Vladimir Dementyev. Developer @ Evil Martians

Ruby was designed to make programmers happy. One of the features that makes it possible is a comprehensive metaprogramming tooling.How does metaprogramming relate to happiness? Through creativity: Ruby allows you to write code the same way you think, doesn't limit the exressiveness, and, of course, helps you to be a magician.Let's talk about metaprogramming internals ("How things work?") and techniques (or patterns).

11.00 - 11.45

11.00 - 11.45

Conflict-Free Replicated Data Types in practice

Artem Filatov. Developer @ Cryptopay

While developing modern distributed applications nowadays, engineers often face the problem with data synchronization between nodes of a cluster or between a server and various clients to have a consistent state.There are plenty of methodologies and algorithms dedicated to this kind of issues discovered for now. In the last decade, Conflict-free Replicated Data Types actively rose in popularity and maturity.We will focus on the basics of CRDT algorithms and practical implementation of state-based and operation-based CRDT solutions, that integrates client-side technologies with Ruby backend and distributed storage.

11.45 - 12.30

11.45 - 12.30

RuboCop

Bozhidar Batsov. VP Engineering @Toptal, author of Rubocop

In this talk we'll go over everything you need to know about RuboCop - a powerful Ruby static code analyzer that makes it easy for you to enforce a consistent code style throughout your Ruby projects.We'll begin by examining the events that lead to the creation of RuboCop, its early days and its evolution, effective RuboCop usage and some of its cool but little-known features. Then we'll continue with a brief look into RuboCop's internals and show you how easy it isto extend its functionality.We'll wrap the talk with a glimpse inside RuboCop's future and discuss some of the challenges the project faces and some of the work that remains to be done, before RuboCop finally reaches the coveted 1.0 version.

We build different systems and usually think about code and data. But in the real world, each system has different events which you can use for simple logic and work with different services.In my talk, I'll tell about event sourcing, DDD, and CQRS. Why and where it'll be useful. Also, I'll cover some hidden pitfalls and discuss how to use it in ruby world.

Ruby community has always been supportive for all the different kinds of testing activities. Many tools and practices were pioneered there and then moved on to other languages. However, nowadays, what we consider a common way to write tests becomes insufficient and tests no longer can reveal bugs, catch regressions and be our safeguard.I'll show how we faced the problem of bugs slipping through traditional tests in Toptal, how we started migration to our in-house model-based testing framework, why we use Petri nets rather than state machines for modeling and what we ended up with.

14.45 - 15.30

14.45 - 15.30

Trailblazer way

Nick Sutterer. Author of Trailblazer, the Advanced Business Logic Framework

Practical example of developing a web app using rom-rb and dry-rb gems.rom-rb and dry-rb gems heavily rely on ideas coming from other languages but even if you understand them, it's often not clear where to start and how to apply them properly. I'll show a working (I hope) example of application based on dry-system and ROM, will describe the architecture and workflow of building new features with them.

16.45 - 17.30

16.45 - 17.30

A Healthy Monolith

Nikolay Sverchkov. Backend Ruby developer @ Evil Martians

Supporting an overgrown monstrous project, a so-called Monolith that was shaped according to the tenets of the "Rails way", is a usual problem for our community. Many developers blame Rails for the fact that it allows, and even promotes, this way of project building, and that there are no tools available out of the box to make this growth healthier. I'll tell you how Evil Martians live with their own Monolith and demonstrate the that the Monolith is not in fact a problem — it's an opportunity

I'm gonna tell, how I went through a lot of pain while working with many services (Facebook, Zoho, DHL, eBay, GitHub, StackOverflow and more) using HTTP API. Eventually, I've created a tool (with Design by Contracts approach under the hood) to handle all that craziness, so I'll show my way to handle instability and irregularities with external dependencies.