When you've got too much code to keep it all in one place, what happens next? Whether you're pulling a new service out of a monolith, or pulling a new object out of a class, you're solving the same problem and you can apply the same solutions. Let's look at how object-oriented design and service design can inform each other and deepen our knowledge of both.
Nick is a programmer, coworking cofounder, and GIF sommelier. By day he mostly writes Ruby and Swift at Basecamp. By night he pretends that he is a short, sturdy creature fond of industry and stays up too late listening to jam bands.
The past, present, and future of RubyGems.org and what you'll see from the Ruby community's package manager site. Oh, and some GIFs too.
Ruby's full of nice little metaprogramming tricks. Learning a new one's always the same cycle: 1. scared & tentative; 2. drunk on power; 3. woefully repentant; 4. mature & reasonable. With my own past mistakes as guide, I'll take you through stages 1-4 for: mazes of twisty little send calls, all alike! replacing def with method_missing! hook method indirection "magic!" Ill-timed define_methods! Sure, you could skip to the end - stage 4 is mostly "obey SRP; extract service objects" and "anonymous module inclusion's your BFF" - but getting there is half the point and all the fun.
Simon is an aspiring code artisan at Platform45. He's done research in neural networks and dynamic particle swarm optimisation and presented before at RubyFuza, Cape Town. With love for the developer community he has started the local meetup Pretoria Ruby in South Africa.
Computational intelligence is the art of building artificial intelligence with software. We have all reached for metaphors and stories to explain and model difficult concepts in OOP. Join me on a journey through some of the metaphors used to achieve intelligent behaviour. We will explore the inner workings of a neural network, and show how to build a classifier to predict a cancer diagnosis with high accuracy. Lastly we'll discuss a non-deterministic way of thinking about software, and what the impact could be for what we believe are intelligent machines.
André Arko thinks Ruby is pretty neat, and has been using it for nine years. His day job is building web apps and training developers for clients at Cloud City Development in San Francisco. In his remaining time, he leads the Bundler team and thinks about how to make software less terrible.
As developers, we spend our time in development environments, but our users only see our code in production. The differences between development and production can be extremely surprising, and surprises are bad when your users and revenue are at stake. I'll talk about the most common surprises of production environments, including metrics, networks, hardware, and data stores. By the end of the talk, you'll know how to use your existing tools to monitor and even improve your production environment, as well as gotchas to watch out for.
Michael Bernstein is obsessed. Not with anything in particular, just in general. He’s a DC based software developer and amateur Computer Scientist who writes at michaelrbernste.in and tweets (too much) at mrb_bk. He works at Code Climate, and he’s given talks on Garbage Collection and Distributed Systems in the past. He is very excited to hang and chat with fellow obsessives.
At my company, we recently finished rebuilding our front end - moving away from a strict single-page approach, and towards a hybrid approach. What happened? The app became noticeably faster. New features were easier to ship. The codebase became easier to maintain. We’ll use this experience as a jumping off point to discuss alternatives to the single-page approach, and why you might choose them.
Kevin Hopkins is a life-long learner, developer, and technology fanatic enjoying work as engineering manager at General Assembly. A resident of Virginia's Shenandoah Valley, he's been slinging code remotely while enjoying the outdoors, woodworking, hiking, and wrenching on cars. Kevin loves the educational technology space, and really looks forward to taking part in building new educational products. Allison McMillan is an engineer at General Assemb.ly. She started developing at a Rails Girls workshop and is now a chapter organizer. Allison was previously a startup founder, a community builder at the University of Michigan, and Managing Director at the Israel on Campus Coalition. Allison lives in Washington, DC.
Feel like you need a sword and shield to tame your monstrous views? Rails is great when it comes to our opinionated model, view, controller pattern, but as your codebase grows, the view layer bloats to gigantic proportions. Presentation logic is riddled in models, model queries litter our views, and our helpers become a monolithic nightmare! There’s not much scarier than this conundrum - unmaintainable, disorganized spaghetti code - but wait, it’s hard to test! With presenters in our hilt, we can slay these problems until our codebase is at peace, and our castle is tested at safe again.
A Ruby developer for the last several years, PJ currently works at Engine Yard as the Community Team Lead. Additionally, he organizes the Western New York Ruby Brigade. Traveling to conferences and Ruby meet ups around the US and Canada, PJ likes to spread the word on the importance of community and coding, stressing the importance of outreach and focusing on the human side of being a coder.
If you were a carpenter, would your skills at building be more important than the tools you use to build? Skills, right? Tools are just a means to an end. So why do developers think the language they use defines the problems they solve? This talk will take a look at misconceptions across the board, some experiences, both positive and negative, people have had crossing barriers to new languages, and show some of the benefits thinking of one's self as a coder and not a "Ruby coder" or a "PHP dev" can have on being a better problem solver.
Dana has been working in software development for almost a decade and a half, and in Ruby on Rails since 2008. A Senior Developer for PhishMe, she lives in southwestern Indiana with her husband and four kids.
Getting familiar with existing codebases is crucial for any developer - particularly so for those who work in open source. You are often forced by budgetary constraints to make updates to an application in a short timeframe. Being comfortable with and knowledgeable about that app is a requirement for responsibly changing it. This talk will give you a recipe to follow so you can quickly learn all you need to know in order to begin contributing to the project's success. I'll cover tools, tips, and techniques that will make even the most complex application approachable.
A British Ruby/Rails developer, with a penchant for tweed, fine coffee, and homebrewing. When not working for clients, I help organise fun events around the world that teach people to program flying robots.
Web apps are great and everything, but imagine using Ruby to fly drones and make them dance to the sounds of dubstep! Or to control disco lights and other robots! Sounds fun, right? In this talk, we will not only explore how we can write code to make this possible, but it will also be full of exciting, interactive (and possibly dangerous ;) ) demos!
Godfrey Chan is an open-source enthusiast from Vancouver, Canada. He is a co-founder of Brewhouse Software and a member of the Ruby on Rails core team. In his previous life, he was also an award-winning WordPress™ plugin author.
Ruby is faster than ever, but when were talking about application performance, that is rarely the problem. It's easy to blame languages and frameworks when the real issue is that its just _hard_ to write fast code. I want us as a community to move beyond the cargo-culted tips and tricks and move to a deeper understanding of what makes our code fast. I want us to understand the tradeoffs we make when building features and shipping changes. To me this means two things: Creating better tools and workflows that allow us to be fast by default and sharing and growing our knowledge so that we can improve our applications and the language itself. I'd like to introduce some of the tools that I've been thinking about and working on and walk through some of the basics of what _fast everything_ looks like.
Kyle Fritz is a Baltimore technologist. He is VP of Engineering at OrderUp. He worked previously at Vigilant Medical and Infinite Biomedical Technologies and collaborates on TeamPassword and White Lies Collective. He studied biomedical engineering at Johns Hopkins.
Christopher is the Director of Engineering at Radius Networks, where he builds mobile proximity tools and services. He cofounded the Arlington Ruby group, and helps organize both Ruby Retrocession and Ruby for Good events.
There is the old proverb "Beware of programmers carrying screwdrivers." Imagine their fear when they see you carrying a soldering iron. I frequently find Rubyists that are interested in tinkering with some hardware but often they are too intimidated. Turns out, it is not that hard. In fact it is easier than it has ever been. And the best part is, you can use Ruby. We will cover the basics you need to get started. Will cover hardware basics from how to solder, working with simple components like relays and sensors, and how to interact with GPIO and Ruby. Let's build something cool.
I've been conducting technical interviews over 15 years. I'm a Senior Engineer at CustomInk, co-organizer of the RubyLoCo meetup group and a host for the Ruby5 podcast.
So, you want to be a Ruby developer? You've done a bootcamp, read the books, and completed online courses. Your ready to start building great things. But the technical interview process can be a challenge for new Ruby developers. I'll teach you how to prepare, how to answer common questions and how to land your first job as a Ruby developer.
Jamie is a Senior Rails Developer at OrderUp, a food-delivery service based in Baltimore. He is the author of the Perpetuity and Clearwater gems and an occasional contributor to open-source projects you've probably used. If his hands aren't on a keyboard, they're likely drumming on everything within arms reach, much to his coworkers' dismay.
Piotr Solnica is a software consultant from Kraków, Poland who spent last 8 years building lots of things using Ruby and Rails. He's an active Open Source hacker, creator of Virtus and Ruby Object Mapper and contributor to many other projects.
Ruby Object Mapper (ROM) started as an attempt of implementing a Data Mapper ORM for Ruby but ended up as an anti-ORM data mapping and persistence toolkit. Why on Earth did that happen? Why after over 4 years of maintaining, building and using Ruby ORMs I decided to change the direction of this project? In this talk I will give you a great insight into why ROM is not an ORM, why it's built using less conventional techniques, why it adheres to the CQRS pattern and why you may want to use it. I'll also tell you what's wrong with OOP and why I love "immutable" objects.
Hiro Asari is a software developer at Travis CI GmbH and strong believer in open source. When he is not coding, he is found spending time with his family or appreciating fine beers of the world.
As Travis CI grew in popularity, a common question users started asking is: "Why is my build slow to start on Travis CI?" While the work to improve this experience for our users is an ongoing multi-faceted story, this talk will focus on one aspect of that story: control theory. The principal aim of control theory is to systematize methods of controlling systems under consideration. In this context, a 'system' can be simple with a single input and a single output (e.g., a thermostat), or quite complex with multiple inputs and multiple outputs (e.g., a human body). A 'controller' looks at the signal which the system emits, and applies corrective action to the input to the system so that the desired level of output is produced by the system. The controllers can also be complex, of course, but it can also be surprisingly simple to be an effective controller. The theory can be applied in many situations in the world, and Travis CI is no exception. We will discuss what role the theory plays in our process, and how we could improve the overall user experience.
Maria Gutierrez works at LivingSocial where she manages the Merchant Solutions engineering organization. Her team of nearly 50 engineers uses Ruby to build tools and services that manage merchant on-boarding, promotions, customer engagement and payments. Maria works from home in Edinburgh (Scotland) and her team is a mixture of co-located and remote engineers distributed all over the world. After having her son, the valuable flexibility of working from home played a big part in her decision to join LivingSocial four years ago.
Thanks to Ruby's community and culture, your typical ruby developer is much more likely to work as a member of a distributed team. But managing a distributed team presents its own challenges. In this talk we'll look at tools and techniques for enabling distributed team communication and collaboration. You will learn how to make sure everyone in your group feels included, has the right environment to do their best work, continues to learn and takes on new challenges regardless of their location. Embracing a distributed work force helps a company find and retain talent, helps employees have better work/life balance, saves on the strain of commuting, and enables a more diverse workforce. Whether you're a mid-level engineer looking to improve your working environment, a manager looking to build a more effective distributed team, or a developer who hopes to transition into management, you'll find valuable advice in this presentation.
Alex Coles ([@myabc]) unabashedly wears the hat of ‘generalist’. He is active in the Ruby community, having founded the annual eurucamp camp/conference and JRubyConf EU. He has also contributed extensively to many open-source projects including OpenProject, RefineryCMS and DataMapper.
The way we’re building our front-ends has changed irrevocably. Clean architecture is now a prerequisite and no longer simply nice-to-have. Thanks to frameworks like Ember.js and Angular, We have entered into the era of front-end MVC. When Rails came into being over ten years ago, it was ground-breaking. Rails developers shouldn’t have to forgo innovation and use of upcoming technologies like ES6 and isomorphism. _So how can Rails keep up?_