Back to top

расписание

6 октября — доклады
  • Поток #1
  • Поток #2
  • Поток #3
09:00
РЕГИСТРАЦИЯ
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
КОФЕ
12:00
Фичетогглинг. От теории к практике
Иван Шаматов
Фичетогглинг — мощная техника, позволяющая менять поведение системы без изменения кода.
В докладе я постараюсь структурировать информацию о фичетогглах и предложить решения, которые позволят сохранить пользу от фичетогглинга и при этом предоставят возможность справиться с возрастающей сложностью в проекте.
12:40
MRuby + Nginx: особенности и примеры
Сергей Алексеенко
mruby - это легковесная реализация Ruby, которую можно встраивать в различные приложения на C/C++/Go/Rust. В докладе я расскажу о возможностях языка, поговорим об ограничениях в сравнении с Ruby 2.x, посмотрим на примеры использования как встраиваемого языка.
Подробно рассмотрим расширение ngx_mruby, которое добавляет в Nginx поддержку mruby. Расскажу как его можно использовать в production, на примере динамической загрузки SSL сертификатов для разных доменов.
13:20
Events. Events. Events!
Антон Давыдов
Мы проектируем системы разной сложности и обычно думаем о коде и фичах. Но в реальном мире, кроме кода и данных, системы содержат события, которые могут использоваться для разной логики в разных частях монолита или сервисаов.
В своем докладе я расскажу про такой паттерн проектирования систем как event sourcing, так же расскажу при чем тут DDD и CQRS, и почему это может быть полезно разработчикам. Так же, обсудим плюсы и минусы таких систем, рассмотрим подводные камни и поговорим о том, как использовать все это в ruby мире.
14:00
ОБЕД
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
КОФЕ
17:30
Элис и Боб переводят деньги. От букваря до кровавого энтерпрайза: транзакции, локи, паттерны.
Иван Работяга
На простых примерах разберемся, как работают на практике транзакции и локи, и где они работают совсем не так, как можно ожидать; с какими задачами сталкивается любой разработчик крупных систем, какие существуют решения, где границы их применимости.
18:00
JWT - how to implement uniform authentication flow for API-first applications
Юлия Олецкая
Я не так давно написала гем https://github.com/tuwukee/jwt_sessions. Хочу рассказать об общих принципах создания API-first приложений c единообразным процессом аутентификации для JS-SPA/mobile/сторонних API-клиентов на примере этого гема.
18:30
Evolution of Rails application architecture: 14 years in production
Николай Сверчков
С момента первого релиза фреймворка Ruby On Rails были написаны миллиарды строк Ruby-кода. Я расскажу о том, как менялось представление об идеальном Ruby-приложении на протяжении этих четырнадцати лет, и как самые именитые долгожители Ruby-мира организуют архитектуру проектов сегодня. Мы рассмотрим реальные примеры от сотрудников Basecamp, Shopify и Cookpad и выясним в какой точке развития находится Ruby экосистема в данный момент.
09:00
РЕГИСТРАЦИЯ
11:30
КОФЕ
12:00
Эйчарские войны: Последние рубисты
Павел Якшанкин
Для ruby-компаний настали тяжёлые времена. Хотя рекрутеры и лиды повстанцев одержали первую победу над перегретым рынком и смогли привлечь в свои ряды сильных ruby-джедаев, HR война далека от завершения.
Избегая встречи с грозными джунами за 200, группа борцов за чистый код обустроила продвинутую рекрутинговую базу на отдаленной системе “Инстамарт”.
А если серьезно о теме поиска и профессионального развития разработчиков я планировал рассказать давно, так как занимаюсь этим с 2013 года, и хотел бы поделиться накопленным опытом привлечения крутых инженеров за адекватные деньги в сложные и, на первый взгляд, не сильно хорошо продающиеся с точки зрения HR-бренда проекты.
Я расскажу как мы сформировали сильную команду разработки и прокачиваем ее изо дня в день. Будет интересно как тем, кто набирает команду и уже немного приуныл, так и тем кто ищет профессионального развития, а находит лишь печеньки в офисе.
Мы поговорим о том как не потеряться на всех этапах подбора специалистов и обратим пристальное внимание на составление плана технического собеседования, за которое даже провалившиеся кандидаты будут благодарить.
Нужны ли логические задачи и вопросы об операционках? Чем привлекать кроме денег? Важны ли soft skills? Как прокачать HR-бренд и не пустить компанию по миру? На все эти вопросы я постараюсь дать ответ.
Во второй части поговорим об адаптации к проекту и профессиональном развитии наших сотрудников - как правильно подойти к составлению грейдов и матриц компетенций, как делать планы развития и стимулировать их выполнение, какую роль играют курсы, митапы, конференции и open source. Важным аспектом этой части станет совмещение интересов разработчика и компании.
12:40
Threads are evil. Async Ruby in action
Юлиан Кулеш
Доклад о состоянии библиотек для асинхронного IO в Ruby, их применении в продакшене, проблемах с которыми можно столкнуться. В докладе будут рассмотрены разные варианты организации асинхронного IO, показаны примеры с помощью библиотеки EventMachine. Описан стоящий за IO механизм и особенности его эксплуатации в Ruby.
Доклад будет постепенно наращивать абстракции и мы пройдем путь от механизмов нотификации ОС до создания плоской асинхронности с использованием Fibers и применении этого механизма в реальных проектах. Не обойдем мы стороной и новшества Ruby, показав как именно Guilds вписываются в общую картину мира и над какими улучшениями в этой области сейчас работают активисты общества.
13:20
Один год с легаси
Дмитрий Степаненко
В докладе будет идти речь о проделанной оптимизации нагруженного (8000-9000 запросов в минуту) legacy (190 000 строк кода) Ruby On Rails проекта для поиска и бронирования авиа-билетов. Расскажу, как бороться со старым кодом и не бояться вносить в него изменения; как делать рефакторинг и перепроектирование архитектуры в работающем проекте.
14:00
ОБЕД
15:00
Что в метриках тебе моих?
Андрей Новиков
Развивать большое и нагруженное приложение без мониторинга — трудно и опасно так же, как и пилотировать самолёт без приборов. Почему важно следить за «полётом» приложения, на что нужно обращать внимание, как графики в мониторинге помогают быстро решать возникающие проблемы с производительностью и не допускать их вновь.
На примере боевого опыта с Sidekiq, Prometheus и Grafana расскажу и покажу, как снимать показания с Ruby-приложения, сохранять и выводить их на графики, расскажу пару грустных историй со счастливым концом о том, как это помогает команде и проекту каждый день.
Представлю набор новых гемов для настройки стандартного мониторинга «в два счёта» и для лёгкого включения любых кастомных метрик в своё приложение и свою систему мониторинга.
15:40
Как не надо переходить с Ruby на Go
Влад Богомолов
Типичный жизненный цикл стартапа начинается с небольшого сервиса, написанного на Ruby, который внезапно превращается в десятки тысяч строк туго переплетенного монолита. Самое время перейти на SOA и переписать критичные части. Я расскажу какие ошибки можно собрать при переходе к написанию новых сервисов на Go, и на что стоит обратить внимание.
16:20
Regression Test Selection for RSpec
Павел Шутин
Речь пойдет о геме Crystalball, который позволяет делать выборку тестов проекта для запуска на основе изменений кода проекта.
Это доклад для Ruby разработчиков, которые используют RSpec для написания тестов и\или страдают от больших неповоротливых test-suite'ов. Расскажу, как ускорить локальную разработку, а также получать фидбэк от CI быстрее.
17:00
КОФЕ
17:30
Lightning talks
09:00
РЕГИСТРАЦИЯ
11:30
КОФЕ
12:00
Монолиты vs микросервисы
Круглый стол
Вечные споры об архитектуре, обсудим самые горячие вопросы:

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

14:00
ОБЕД
15:00
Хайринг, хантинг, обучение и развитие рубистов. HR-уголок
Круглый стол
Приглашаем тех, кто нанимает и нанимается, HR и рубистов обсудить наболевшее.

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

17:00
КОФЕ
17:30
Говорим про open source
Круглый стол
Язык обсуждения - английский
- Зачем open-source нужен людям? Примерно понятно зачем он нужен создателям, но зачем он нужен остальным?
- Как решиться на создание своего первого полноценного open-source проекта? Какими вообще могут быть первые шаги в open-source?
- Как согласовывается open-source разработка с работой в компании? Делать ли open-source в свободное время или биться с руководством за право создавать его на работе? Были ли попытки/трудности объяснить в чем польза для компании?
- Есть большая группа людей которые хотят делать, но не делают. Или разработчики, которые не хотят делать open-source, но из-за хайпа чувствуют себя аутсайдерами? За что вы бы предложили им взяться? Пересилить себя и попробовать сделать первый commit? Попробовать другие способы шарить знания и прокачивать личный бренд? Live-coding, blog posts, channel
- Стоит ли делать ставку на комерционализацию open-source? Pro версии, платный саппорт
- Современная open-source культура приводит к регулярному выгоранию maintainer'ов. Как вы с этим боретесь? Может был яркий пример epic win / epic fail?
7 октября — мастер-классы
В воскресенье мы организуем два параллельных двухчаcовых мастер-класса от наших спикеров. Место проведения - офис компании Artec 3D, Большой Левшинский переулок, д. 1/11. Начало в 12.00.
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.