Monday, 18 June, 2018 UTC


Summary

Since Ruby is our language of choice, the RubyGarage team actively promotes, supports, and contributes to the Ruby community. We started this hot season by visiting RubyC. Find out how it went and why RubyC is worth visiting yourself. What is RubyC all about? RubyC is held annually on the first weekend of summer. Hundreds of Ruby enthusiasts and developers visit Kyiv to get practical and technical content, сollaborate, discuss the latest innovations, and learn from their peers. Two days of learning all about Ruby trends, meeting loads of wonderful developers, and having fun – that’s what RubyC is all about. https://rubygarage.s3.amazonaws.com/uploads/article_image/file/1525/rubygarage-team-on-rubyc-2018.png "What do I like most about RubyC?" says Max Grechko, a Ruby and CS developer at RubyGarage. "It's the friendly atmosphere and informal communication with people who love Ruby the way I do." Dmytro Hrechukha, our backend development lead, agrees with Max: “RubyC is a close-knit community where I found lots of friends. RubyC gives us the precious opportunity to find like-minded people and share our visions.” Yevhenii Poberezhnyi, a Ruby and JavaScript developer, describes RubyC as a “well-thought-out organization,” adding that “the conference organizers created the perfect balance between studying and free time. Even when some speakers failed to fit in the time limit, the organizers contrived ways to compensate for it and ended each day of the conference on schedule.” And, of course, RubyC helped our developers upgrade their technical skills. “RubyC delivered an amazing lineup and high-quality talks about Ruby and beyond” mentions Volodymyr Shvydkyi, a Ruby and JavaScript developer. Highlights of RubyC 2018 “I was astonished by the ideas speakers came up with for their presentations. Speakers tried all sorts of lures to capture the audience. Some of them showed interesting slides, another drew in attendees with artistry and interactivity. Charles Nutter took three bottles of beer from the USA for his talk about JRuby. He said that two bottles would go to participants asking questions after the presentation and one would go to a person who would program anything in JRuby during the two days of the conference.” says Anton Vukolov, Ruby on Rails Developer at RubyGarage. We’ve interviewed our Ruby developers to create a list of their favorite speakers. Here they are. #1 Volodymyr Vorobyov Volodymyr Vorobyov is a software development consultant, an experienced speaker, and the creator of a Ruby/Ruby on Rails web development course. At RubyC, he broke down the clean architecture concept. Volodymyr also outlined how to scale development and app architecture, deploy and conduct tests efficiently, and add more technology stacks with no failures. https://rubygarage.s3.amazonaws.com/uploads/article_image/file/1526/volodymyr-vorobyov.png Anton Vukolov has this to say about Volodymyr's talk: “Volodymyr introduced a new, fresh approach to organizing code. Now we have thousands of solutions for one task. The easiest solution is to write the whole code in one file. Yet when your business logic grows, you can end up with fat controllers and models. I bet that 1500 line code is not what you want. Imagine that you need to come back to this file in one year or more. You will hardly understand what’s going on with your code. “This is why Volodymyr encourages us to use the clean architecture approach where you split your code into small pieces using Domain-Driven Design (DDD). These code pieces are connected not to the app architecture but to the user story. Volodymyr explained to us how to make our code easy to read and support. So now we need just to test this approach.” Yevhenii Poberezhnyi found this talk interesting as well: “Vova showed us how to use DDD in a Rails app. And what’s more important, he drew the way we can switch from a monolithic architecture to a microservice one with minimum expenditure.” Kirill Shevchenko, a Ruby and JavaScript developer, also emphasizes the importance of the DDD theme: “I think that DDD is an extremely urgent topic in the Rails community. DDD lets us move the code from Rails inside elements to the business logic level.” #2 Charles Nutter Charles Nutter is a senior principal software engineer at Red Hat, a Java Champion, and a Ruby Hero. His talk was devoted to the JRuby language. During his presentation, Charles defined the position of JRuby in the modern programming world and demonstrated how to build fast and scalable applications with JRuby. Here’s what Yevhenii Poberezhnyi has to say about Charles’ talk: “Charles Nutter’s was the most memorable talk for me. Charles displayed a new version of JRuby compatible with Ruby 2.5 and the optimizations his team made. He also talked about using JRuby with GraalVM, which can give a huge increase in performance. But not everything is so smooth. In some real cases, such a bundle may have a negative effect on performance. Yet they promised to fix it in the next versions. “In the second part of the talk, Charles elucidated the usage of JRuby with Rails. Even though not all Rails features are adapted for JRuby (as it’s impossible to use C extensions in Java), the main functionality including models, views, and controllers is available. “I found out that it’s possible to reduce the cost of app deployment on Rails using JRuby and the concurrency available with it. Moreover, in JRuby you can use libraries written in JVM-compatible programming languages: Java, Scala, Kotlin, and others.” https://rubygarage.s3.amazonaws.com/uploads/article_image/file/1527/chareles-nutter.png #3 Andrzej Krzywda Andrzej Krzywda is the CEO of Arkency, a former Ruby and Rails instructor at the University of Wrocław, author of the book Fearless Refactoring: Rails Controllers, a Ruby books publisher, and a wroc_love.rb conference organizer. Andrzej elaborated on Domain-Driven Design in PHP. He told the audience about the different phases and styles of writing code that he has identified in his professional life. Andrzej presented code for each style and discussed benefits and drawbacks. Here’s what Kirill Shevchenko highlights about this talk: “I remember Andrzej’s presentation by vivid examples of real projects done with DDD. He also drew broad comparisons with other approaches to software development.” Yevhenii Poberezhnyi, who also attended this talk, shares his thoughts as well: “Andrzej’s talk was especially valuable for me as he described his experience using Event Sourcing and CQRS in Rails applications.” If you’re interested in this topic, you can find links to GitHub repositories on Andrzej’s Twitter feed. https://rubygarage.s3.amazonaws.com/uploads/article_image/file/1528/andrzej-krzywda.png #4 Sergiy Kukunin Sergiy is a young programmer from Ukraine with about 10 years of experience with many languages and platforms including JavaScript, Elixir, C#, Haskell, and Java. Sergiy continued a series of talks on clean architecture. “Sergiy came to the USA to refine one financial system. He was young and ambitious and wanted to make everything right: how it was written in the books. To make code clear, he divided the code into dozens of small pieces. “His work was fitting the goal in the beginning. And this success was inspiring him. Yet when his team started to grow, Sergiy faced several obstacles. The bigger his team became, the harder it was to support the project because only he knew how to write the code properly. Sergiy was cutting the code snippets of his coworkers and asking them to rewrite their code. That slowed down the development and implementation of new features. Sergiy understood that he was making no headway and that chasing perfection could lead only to a dead end. He advised us to search for a golden middle between сlean code and fast implementation” says Anton Vukolov “It was a true-life report on the importance of balance between architecture solutions and teamwork and the development cycle,” adds Max Grechko. https://rubygarage.s3.amazonaws.com/uploads/article_image/file/1529/sergiy-kukunin.png #5 Paolo Perrotta Paolo Perrotta is a traveling coach, software mentor, and author of the books Metaprogramming Ruby and Metaprogramming Ruby 2. In his talk, Machine Learning Explained to Humans, Paolo described the technical foundations of Machine Learning. “Paolo described the basic algorithms of machine learning such as linear regression, multidimensional linear regression, and logistic regression. He showed the way these algorithms work and gave a roadmap for a beginner specialist,” recalls Yevhenii Poberezhnyi. Alexey Dulenko, a Ruby and JavaScript developer, was excited about this talk as well: “I was extremely interested in listening to Paolo talk. He was charismatic and spoke confidently. Paolo was explaining basic things, gradually complicating the material. This made the talk easy to understand.” Max Grechko also points to the clarity of Paolo’s presentation: “He used plain language and provided relatable examples.” https://rubygarage.s3.amazonaws.com/uploads/article_image/file/1530/paolo-perrotta.png #6 Iryna Zayats Iryna Zayats is a developer with a 10-year career. Half of that time she was programming in Java and during the latter half she has been programming in Ruby. Iryna talked about the complexity of algorithms: How is complexity measured? Why does it matter? What are some common misconceptions? “Iryna laid out the basic concepts of сomplexity of distinct types of algorithms and cited examples of optimal and non-optimal algorithms” comments Yevhenii Poberezhnyi. “She was able to explain the principle of finding the optimal algorithm to solve a particular problem in a clear and concise manner” adds Volodymyr Shvydkyi. https://rubygarage.s3.amazonaws.com/uploads/article_image/file/1531/iryna-zayats.png #7 Ivan Nemytchenko Ivan Nemytchenko is a founder of the Skillgrid virtual agency, an IT events enthusiast, a Ruby developer and teacher, a Lean Poker facilitator, and a GitLab developer advocate. At RubyC, Ivan shared his personal experience and professional techniques. “There is an opinion that Rails developers chose not the most correct direction of development. Ivan gave examples of problems that create Rails-way and offered some solutions. On a global scale, he urged the community to be more active on this matter” notes Volodymyr Shvydkyi. https://rubygarage.s3.amazonaws.com/uploads/article_image/file/1532/ivan-nemytchenko.png We’d like to say thanks to RubyC for such a great event and for the impressions it gave us. All participants strengthened their development skills and discovered new ways of writing code. RubyC connects people and guides the future of Ruby. Share your experience of RubyC below in the comments.