- Deleting Tests with Types && OpenStruct - done right
18:00 - 18:15: Gathering 18:15: Deleting Tests with Types The less code in our systems, the better we are. Less to maintain, less to read, less to onboard. In this live coding session, we’ll delete a lot of code... from our unit tests!* * while keeping our confidence in the code The speaker: Omer van Kloeten (https://www.linkedin.com/in/omervk/) Omer van Kloeten is a veteran software developer of 17 years with a wide range of experience in leading roles, ranging from Dev Lead, through Architect, to CTO and even Product. He is currently a Staff Software Engineer at WeWork. 19:00 - 19:15: Food break 19:15: Building a Better OpenStruct OpenStruct, part of Ruby's standard library, is prized for its beautiful API. It provides dynamic data objects with automatically generated getters and setters. Unfortunately, OpenStruct also carries a hefty performance penalty. Luckily, Rubyists have recently improved OpenStruct performance and provided some alternatives. We'll study their approaches, learning to take advantage of the tools in our ecosystem while advancing the state our community. Sometimes, we can have our cake and eat it too. But it takes creativity, invested effort, and willingness to question why things are the way they are. The speaker: Ariel Caplan (https://www.linkedin.com/in/ariel-caplan/) Ariel has been obsessed with OpenStruct ever since - having not yet heard of it - he built a hacky version while learning Ruby at the Flatiron School. Over the last few years, he built two OpenStruct-style gems, and learned a whole lot about performance optimization along the way. Ariel works as a backend developer at Cloudinary, trying to bend the curve to achieve both code quality and great performance. 20:00-20:10 Mini break 20:10-20:25 Docker for Developers Basics of Dockerfiles and Docker Compose aimed at bridging the gap between local and higher environments without compromising on the features we know and love from our dynamic languages. Short lecture from Nick Gordon (https://www.linkedin.com/in/nickggordon/) a guest we have from WeWork NY!
- Intro to ruby meta programming part 2 && What’s new in Ruby 2.6?
18:00 - 18:30: Gathering 18:30: Intro to ruby metaprogramming - part 2 Continuing our exploration of meta programming, we will recap part one and then: 1. Blocks, procs & lambdas 2. Ruby life cycle hooks (include, extend) to glue all the other stuff 3. A dive into real life example (featuring the Timeasure gem from previous lecture) to connect the dots The speaker: Roy Zinn (https://www.linkedin.com/in/royzinn/) 19:15 - 19:30: Food break 19:30: What's new in Ruby 2.6 Mentioned explicitly by Matz in RubyConf LA few weeks ago and being featured on Ruby weekly this lecture comes to Ruby Underground :-) Ruby 2.1 was released on Christmas 2013 and the tradition followed since with each new version released in the following Christmas, what leads me to believe that Ruby 2.6 will be released next month. So let’s see what’s new in this version of Ruby. The speaker: Guy Maliar (https://www.linkedin.com/in/guy-maliar/)
- Intro to ruby meta programming && Timeasure gem for profiling production code
18:00 - 18:30: Gathering 18:30: Intro to ruby metaprogramming - part 1 Ruby (and of-course Rails) seems to sometime have a lot of "magic" behind the scenes which is actually a set of tools allowing to do some very neat things. In this first talk we'll explore the ruby object model, get to know the current class/object, what is self, metaclass, instance_eval & class_eval and explore how an application can modify itself at runtime with define_method and what the hack is method_missing...? The speaker: Roy Zinn (https://www.linkedin.com/in/royzinn/) 19:00 - 19:15: Food break 19:15: How I Built Timeasure: A Gem For Profiling Your Ruby Code In Production I recently released a Timeasure, a gem that helps Ruby developers measure the runtime of their code in production. In my talk, I will explain how you can use unique aspects of the Ruby object model in your favor, like I did in Timeasure, and create flexible and transparent method-wrappers - for any purpose! I will also explain why profiling your code runtime in production is important and how we managed to cut down the runtime of our main transaction by over 500% by utilizing Timeasure correctly (!). If you aren't deeply familiar with the Ruby object model or with metaprogramming in Ruby, don’t worry! I'll start with the basics, then move on to demonstrate the astounding innovations of Ruby 2. The speaker: Eliav Lavi (https://www.linkedin.com/in/eliav-lavi-56a70487/)
- Docker for Rails Developers && Why We Got Rid of Angular
17:45 - 18:00: Gathering 18:00: Docker for Rails Developers Docker is gaining a huge amount of momentum, using Docker for development makes it much easier to iterate on any infrastructure requirements with minimum fuss. This talk will explain how to use Docker and other related tools to make your Ruby on Rails development and unit testing a zero-time thing. Especially great for companies that want to get their new employee on-boarding a thing that takes minutes instead of days. The speaker: Evgeny Zislis (https://www.linkedin.com/in/evgenyzislis) 18:45 - 19:00: Pizza break 19:00: Why We Got Rid of Angular Lessons learned from a refactoring project. In a team of 2 developers who took over a prototype application which became essential for daily operations of the company we saw the need for an architectural overhaul of the app. In this talk I would like to share with you what we consider having done right and wrong during the last 2 months and what the change enabled us to do. The speaker: Ilya Krasnov (https://www.linkedin.com/in/ikrasnov)
- Writing Your Own BI Solution With Rails && Mini-talks
17:45 - 18:00: Gathering 18:00: Writing Your Own BI Solution Every company at some point needs a custom BI solution, I'll discuss how to build a good one with Rails, we'll cover some data scheme tactics (time based counters, cohorts, money performance, and marketing analysis and funnels) which will save you a lot of agony and also see examples on how doing things right have a huge impact on your team and product. Interesting for BI developers, Entrepreneurs (developers) and anyone who is interested in data and performance. The speaker: Roy Man 18:45 - 19:00: Break 19:00: Mini-talks (±15 minutes each) 1. Devflow - Open source team collaboration from Fiverr by Arkady Fukzon 2. Our new events tracking and monitoring system utilizing ELK stack and Consul by Boris German 3. Integrating Rails and AngularJS by Sharon Sitti
- Crafting RESTful APIs & Building infrastructure with Amazon OpsWorks
17:45 - 18:00: Gathering 18:00: Crafting RESTful APIs Gady will give an overview of best practices in API crafting using RoR. We will discuss REST, HTTP Anatomy, Content negotiation, Authentication, Versioning and JSON creation. The speaker: Gady Schujovitzky 18:45 - 19:00: Break 19:00: Building infrastructure with Amazon OpsWorks Chef is an amazing tool for deployment automation and infrastructure management. Amazon OpsWorks lets you leverage that and takes some weight off your shoulders, providing neat ways to organize your stack, including autoscaling strategies and custom application layers. The speaker: Kirill Maksimov