I posted a quick note on ruby.social that got some notice and a few folks pinged me.
If you work remotely, going to a conference with a large number of other remote coworkers is a great way to build and refresh in-person relationships. I got to talk in person with 20+ coworkers who were previously only Slack icons and discuss technology and project decisions with the CEO in person. If you work remotely, it is worth finding these IRL touch points from time to time.
I wanted to add some more thoughts, but it gets long on a thread, so moving to a blog post.
It has been a few years since I visited many Ruby conferences. Attending the most recent RailsWorld was a reminder of some of their value.
Talking about the work others do and how we use it inspired us to write and discuss how to use these tools and help share which tools are valuable to our work. We should also try to share more of the work we do that isn’t public or shared and could be interesting to the community. Non-private things that are locked away for no particular reason are closed source code.
I hope to make a few more posts about some of the tools we use in the coming months. I will also revisit my open source repos, respond to issues, and update them, ensuring they are all tested and work well with the latest Rails releases. Finally, I will clean up and get my current side project back online so I can share some of the fun things I play around with when learning.
All of that is to say that the conference did exactly what it should have. It inspired me and made me happy to be a part of the Ruby community, and it was great to put faces and real people to the great work I have been enjoying and following along with online for years.
As usual, DHH kicked things off with his keynote address, setting the theme for many of the more detailed follow-up talks.
Keynote tl;dr; DHH wants folks to have a fast onramp but be proud to learn and dig into the details. Driving home, a new tag line from “Hello World” to “IPO” was repeated throughout many of the talks and is clearly a theme.
Many great Rails companies have been around and are still growing, but Rails lost some of the newcomer momentum and is trying to get that back. As Rails became more complex and built more complexity into the base system, it became much harder to set up a brand new app, deploy it, and reliably use all of the features out of the box. Generally, we need a managed DB and Redis out of the box, along with multiple processes for job workers and grinding small single deployments (cheap Heroku dynos) to a halt.
Rails is investing in ensuring out of the box, all the initial solutions can start with extremely simple to-manage defaults that can deploy to single boxes without hassle, and using the same code can scale to much larger databases or purpose-built technologies like Memcache and Redis. Many of the talks filled in the details.
So what does this mean after Rails new? You can start out with 4 DBs that are each single SQLlite files. As you grow in usage you can start to migrate each of those to the best fit for your needs. Also, please don’t underestimate how much it can scale on modern multi-core and SSD hardware.
The theme was clear and then sprinkled with talks on how this useful Rails as a one-person framework can make it easy for a single dev or small team to get a lot of leverage. Speaker justin-searls, giving his final Rails talk, showed how to build low code but very modern feeling apps with low maintenance costs. Diving into optimizing performance, profiling, and how to write fast Ruby with less allocations.
Not all talks were only about the technology as Eileen Uchitelle reminds us how many of the largest and oldest Rails apps have struggled either with microservices or componentizing a modular monolith. Pointing out, rightly in my opinion, that neither solves what is a people problem, not a tech problem. The problem comes from prioritizing features and new code over good maintenance, refactoring, and constantly driving to improve code quality. Also, we often have folks not trained in rails writing a significant amount of code on a team without others familiar with rails, and companies don’t incentivize training and maintenance, often giving promotions to new high-visibility projects vs reducing toil and simplicity.
While the talks were good, the best part for me was seeing and chatting with many developers I interact with online and contributing to projects I use, contribute to, and learn from. It was great to meet @jhawthorn and tell them about how I started using their new profiler vernier (please check it out and see how it can finally untangle performance issues across threads), asking the author of Solid cache about how it may work with a particular architecture setup, or even discussing with colleges if we can perhaps open source some libraries that might help push the community ahead a bit further as folks are facing similar challenges as we see internally.
It was great meeting old friends and talking to some new friends at Rails World. Thanks to everyone who helped make it a nice event.