Back to top

schedule

  • Track #1
  • Track #2
  • Track #3
09:00
REGISTRATION
10:00
Pointers for Eliminating Heaps of Memory
Aaron Patterson
In this presentation, we'll cover techniques in Ruby 2.6 that reduce "dead space" memory overhead found in all Ruby programs today. First, we'll cover the compilation process of Ruby programs, instruction optimizations, as well as internal data structures used for running Ruby code. Next, we'll look at how to use this information to maintain liveness of Ruby objects in the code.
Finally, we'll take all the information we covered so far to develop a technique for reducing dead space in the heap. Remember to mark your calendar because this presentation will be remembered for generations.
10:50
Optimizing Ruby on the JVM
Сharles Nutter
JRuby is the premier implementation of Ruby on the JVM, with thousands of production users and compelling performance gains over CRuby. In this talk we'll discuss how you can get the most out of JRuby, showing how JRuby and the JVM optimize your code. JRuby is the fastest, most scalable way to run large Ruby applications...this talk will show you how to get started.
11:30
COFFEE
12:00
Feature Toggles. From theory to practice
Ivan Shamatov
Feature Toggles is a powerful technique that allows you to change system behavior without changing in code.
In this report, I'll try to structure the information about FT and offer a solution to preserve the benefits of and provide an opportunity to cope with the increasing complexity in a project.
12:40
MRuby + Nginx: features and examples
Sergey Alekseenko
Mruby is a lightweight Ruby implementation that can be embedded in various C/C++/Go/Rust applications. I will talk about the capabilities of the language, limitations in comparison with Ruby 2.x, examples of usage as an embedded language.
We'll consider the extension ngx_mruby, which adds Nginx mruby support. I will tell you how it can be used in production, for example, dynamic loading of SSL certificates for different domains.
13:20
Events. Events. Events!
Anton Davydov
We build different systems and usualy think about code and data. But in real world each system has different events which you can use for siplicity logic and working 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 discus how to use it in ruby world.
14:00
LUNCH
15:00
High performance Ruby services
Maciej Mensfeld
Is 100 mln requests per day a lot for a single Ruby process? Well it really depends on how you approach things.
Ruby is mistakenly associated mostly with the Rails framework, while beyond that there is a whole world worth exploring. HTTP is not always the best or the most efficient way of handling things and synchronous reality is not always the right approach. Come and learn how to harness Ruby potential in the areas that are usually unxeplored.
15:40
Mutant on Rails
Markus Schirp
On applying mutation testing with mutant to Ruby on Rails environments.
16:20
Dropping Down To The Metal
Godfrey Chan
As much as we love Ruby, when we need to drop down to The Metal™, JavaScript is our only hope. This is why I developed the javascript gem to help you harness the raw power of your machines. In this talk, we will examine the Ruby tricks and black magic hidden behind this ludicrous invention. Along the way, we will learn about how Ruby internally deal with variable lookups, method calls, scoping and bindings. Together, we will push the limits of the Ruby language, taking it to places Matz never ever envisioned!
17:00
COFFEE
17:30
Alice and Bob transfer money. Transaction, locks, patterns
Ivan Rabotyaga
In simple examples we shall understand how transactions and locks work in practice. Look at unexpected behavior and challenges faced by any developer of a large system. Find out some solutions to use and limits of applicability wich they have.
18:00
Uniform authentication flow for API-first applications with JWT
Yulia Oletskaya
Recently I’ve built an open source library for implementing JWT sessions in Ruby https://github.com/tuwukee/jwt_sessions
I’d like to talk about the gem and JWT in general, describe different auth flows, highlight XSS/CSRF security cons, compare it with classic approaches.
18:30
Evolution of Rails application architecture: 14 years in production
Nikolay Sverchkov
Billions of lines of Ruby code have been written since the first release of Ruby on Rails. Learn how the idea of a perfect Ruby web application has changed over the fourteen years and how biggest, oldest and most famous Rails projects out there are organizing their code today. We will take a look at real-world code examples from employees of Basecamp, Shopify, and Cookpad in an attempt to define the current stage in Rails evolution.
09:00
REGISTRATION
11:30
COFFEE
12:00
HR Wars: last rubysts.
Paul Yakshankin
Для ruby-компаний настали тяжёлые времена. Хотя рекрутеры и лиды повстанцев одержали первую победу над перегретым рынком и смогли привлечь в свои ряды сильных ruby-джедаев, HR война далека от завершения.
Избегая встречи с грозными джунами за 200, группа борцов за чистый код обустроила продвинутую рекрутинговую базу на отдаленной системе “Инстамарт”.
А если серьезно о теме поиска и профессионального развития разработчиков я планировал рассказать давно, так как занимаюсь этим с 2013 года, и хотел бы поделиться накопленным опытом привлечения крутых инженеров за адекватные деньги в сложные и, на первый взгляд, не сильно хорошо продающиеся с точки зрения HR-бренда проекты.
Я расскажу как мы сформировали сильную команду разработки и прокачиваем ее изо дня в день. Будет интересно как тем, кто набирает команду и уже немного приуныл, так и тем кто ищет профессионального развития, а находит лишь печеньки в офисе.
Мы поговорим о том как не потеряться на всех этапах подбора специалистов и обратим пристальное внимание на составление плана технического собеседования, за которое даже провалившиеся кандидаты будут благодарить.
Нужны ли логические задачи и вопросы об операционках? Чем привлекать кроме денег? Важны ли soft skills? Как прокачать HR-бренд и не пустить компанию по миру? На все эти вопросы я постараюсь дать ответ.
Во второй части поговорим об адаптации к проекту и профессиональном развитии наших сотрудников - как правильно подойти к составлению грейдов и матриц компетенций, как делать планы развития и стимулировать их выполнение, какую роль играют курсы, митапы, конференции и open source. Важным аспектом этой части станет совмещение интересов разработчика и компании.
12:40
Threads are evil. Async Ruby in action
Julian Coolesh
Доклад о состоянии библиотек для асинхронного IO в Ruby, их применении в продакшене, проблемах с которыми можно столкнуться. В докладе будут рассмотрены разные варианты организации асинхронного IO, показаны примеры с помощью библиотеки EventMachine. Описан стоящий за IO механизм и особенности его эксплуатации в Ruby.
Доклад будет постепенно наращивать абстракции и мы пройдем путь от механизмов нотификации ОС до создания плоской асинхронности с использованием Fibers и применении этого механизма в реальных проектах. Не обойдем мы стороной и новшества Ruby, показав как именно Guilds вписываются в общую картину мира и над какими улучшениями в этой области сейчас работают активисты общества.
13:20
One year with legacy
Dmitry Stepanenko
В докладе будет идти речь о проделанной оптимизации нагруженного (8000-9000 запросов в минуту) legacy (190 000 строк кода) Ruby On Rails проекта для поиска и бронирования авиа-билетов. Расскажу, как бороться со старым кодом и не бояться вносить в него изменения; как делать рефакторинг и перепроектирование архитектуры в работающем проекте.
14:00
LUNCH
15:00
What means my metrics to you?
Andrey Novikov
To develop a large and highly loaded application without monitoring is hard and dangerous like piloting an aircraft without gauges. Why it is so important to keep an eye on how application's “flight“ goes, what things should have cared more, and how graphs may help to quickly resolve occurring performance problems.
On the example of Sidekiq, Prometheus, and Grafana, I will tell how to take metrics from the Ruby application, save and display them on graphs, tell a couple of sad tales (but with happy-end) about how it helps team and project in everyday life.
Will present a new set of gems to set up “must-have” monitoring in the application in just a few clicks and allow to easily add custom metrics for your application and your monitoring system.
15:40
How not to migrate from  Ruby to Go
Vlad Bogomolov
Типичный жизненный цикл стартапа начинается с небольшого сервиса, написанного на Ruby, который внезапно превращается в десятки тысяч строк туго переплетенного монолита. Самое время перейти на SOA и переписать критичные части. Я расскажу какие ошибки можно собрать при переходе к написанию новых сервисов на Go, и на что стоит обратить внимание
16:20
Regression Test Selection for RSpec
Pavel Shutin
Речь пойдет о геме Crystalball, который позволяет делать выборку тестов проекта для запуска на основе изменений кода проекта.
Это доклад для Ruby разработчиков, которые используют RSpec для написания тестов и\или страдают от больших неповоротливых test-suite'ов. Расскажу, как ускорить локальную разработку, а также получать фидбэк от CI быстрее.
17:00
COFFEE
18:30
Lightning talks
09:00
REGISTRATION
11:30
COFFEE
12:00
Monolith vs microservices
Discussion
Вечные споры об архитектуре, обсудим самые горячие вопросы:

- нужно ли и когда стоит делать микросервисы
- как тестировать
- как мониторить
- как общаться между сервисами
- сервисы vs микросервисы vs монолит
- эвент ориентированные архитектуры
- можно подискутировать за технологии (зоопарк или стандарт из 2-3 языков в команде)

14:00
LUNCH
15:00
Hire, fire, talent grow. HR corner
Discussion
Приглашаем тех, кто нанимает и нанимается, HR и рубистов обсудить наболевшее.

- Рынок перегрет, хотя считается, что деньги не мотивируют, а мотивируют задачи и процессы.
Кто же его перегревает, если мы все тут такие белые и пушистые?
- Ваш подход при обсуждении зп в оффере. Прописанные грейды vs ожидания кандидатов.
Есть ли “стоимость” у конкретных hard-skills? Играют ли вообще soft-skills роль в принятии решения об оффере и в “стоимости” кандидата?
- HR-фильтр. IT-рекрутеры - ускоряют или замедляют процесс? Как правильно готовить эйчара в IT?
- Собеседование. Какие этапы обязательны, а какие избыточны? Собеседование это обоюдная продажа. Как вы продаете компанию кандидату на собеседовании (и кто должен это делать)?
- Политика найма. Нанимать ли джуниоров? Как их правильно готовить, если да? Нанимать ли звезд? Как готовить их.
- Адаптация. Чей это процесс? Грабли и пасхалки адаптации.

17:00
COFFEE
17:30
Open source
Discussion
- Why do people need open-source at all? Somehow we have ideas about the necessity for the maintainers but... What about others?
- What was it like to create your first own open-source project? How challenging was it for you? What actions do you suggest to take for a newcomer to the open-source world?
- How the open-source development cohere with business development in your company? What could be the options? We could, of course, use our private time for open-source development, but isn't that a road to hell? Could you share about your experience in discussions with business stuff about open-source for a company? What was productive and what was not?
- As we discussed with organizers of the event, there are two curious groups of developers exists nowadays. First is a group of those with a passion to "do something" in open-source, but they are stuck with no action. Another group never wanted to contribute, but it became so popular that they feel like outsiders. Is pushing and forcing yourself to create first commit worth it? What was your experience? What other ways to promote yourself and to share experience could you suggest? (Talking about live-coding, blog posts, channel)
- What do you think about open-source monetization trends? (like pro version or paid support) Does it make any sense to hope (or even make stakes) on possible revenue from your open-source in future?
- The modern trends of open-source development process introduced a massive problem with maintainers burnout. What is your cure from that cancer? Maybe you have some exciting epic win or fail about it?
October 7th — workshops
On Sunday, we organize two parallel two-hour workshops from our speakers. Venue - Artec 3D office, Bolshoi Levshinsky pereulok, 1/11.
12:00
Mutation testing workshop
Markus Shirp, Martin Gamsjager
This workshop aims to teach using mutant on a real world rails codebase in the e-commerce domain. After setting up a dev environment on attendee's notebooks (instructions provided), we'll walk through one interesting mutation together and will quickly recap key mutation testing concepts. Attendees will then be asked to work on select example mutations we've identified in advance, giving them a "hands on" experience. It is highly recommended to attend the related talk before attending the workshop. Basic knowledge of rails and rspec are assumed.
12:00
Event Driven Architecture with Apache Kafka and Karafka framework
Maciej Mensfeld
We're shifting from transactional to evented world. This session should help you understand this change and should provide a gentle intro to stateful distributed systems such as Apache Kafka and how they can be used with Karafka in Ruby based applications.
Karafka allows you to capture everything that happens in your systems in large scale, providing you with a seamless and stable core for consuming and processing this data, without having to focus on things that are not your business domain. Have you ever tried to pipe data from one application to another, transform it and send it back? Have you ever wanted to decouple for existing code base and make it much more resilient and flexible? Come and learn about Karafka, where it fits in your existing projects and how to use it as a messages backbone for a modern, distributed and scalable ecosystem.