RailsConf 2022

The Future of Ruby on Rails at Shopify

Shopify

RailsConf 2022

00:00:00.900 foreign
00:00:12.840 word that describes my relationship with
00:00:15.299 Ruby on Rails
00:00:18.660 Michelle
00:00:19.920 but love
00:00:21.119 fun magic it's complicated
00:00:25.199 yeah I think complex yeah complicated
00:00:28.199 works very facebook-esque answers you
00:00:31.859 know you have your relationship status
00:00:33.480 yeah it's complicated for me on Rails in
00:00:36.300 one word would be empowered you can do
00:00:38.940 so much with something that in the grand
00:00:40.860 scheme of the world is kind of small one
00:00:42.840 of the key problems that Shopify is
00:00:45.239 trying to solve it would be unreals is
00:00:47.040 to get it to scale to a massive size a
00:00:49.739 lot of the problems we are trying to
00:00:51.000 solve are like how to make rails easier
00:00:53.460 for new developers how to make rails
00:00:56.039 easy to work with with Elijah teens
00:00:58.260 we're solving problems anywhere from
00:01:00.180 security to speed optimizations
00:01:03.239 enhancements we're really thinking about
00:01:05.220 the future of rails and how we can help
00:01:07.799 it continue to grow with the needs of
00:01:09.600 its user base it keeps changing and it
00:01:12.000 keeps getting better like rel7 is one of
00:01:14.700 the most exciting releases of rails ever
00:01:17.159 like who can say that after having their
00:01:19.439 framework be around for I don't know
00:01:21.600 since 2004 or whatever else was created
00:01:24.000 why do you continue invest in the Ruby
00:01:26.939 or rails Community I like this question
00:01:28.979 I really like this question we continue
00:01:31.380 investing in Ruby and rails to make sure
00:01:34.380 the language and the framework are 100
00:01:36.659 Year languages and Frameworks and they
00:01:39.299 are top choices for new people coming
00:01:41.579 into the community and they continue
00:01:43.619 working for Shopify as well it's not
00:01:45.780 just an investment in the technical side
00:01:47.700 of let's only do stuff that benefits us
00:01:49.680 let's only do features that Shopify
00:01:52.259 needs it's features that everybody needs
00:01:54.479 to scale and grow and use rels and Ruby
00:01:57.720 for the foreseeable future programming
00:01:59.640 in Ruby makes me happy using rails makes
00:02:01.979 me happy and I want developers around
00:02:03.840 the world to feel the same joy that I do
00:02:05.939 when I'm developing rails applications I
00:02:08.759 feel like I really belong to this
00:02:10.560 community and I feel like people deserve
00:02:13.200 to feel that way there's so many really
00:02:15.660 nice and talented people who share their
00:02:18.480 knowledge and so many people that I look
00:02:20.459 up to
00:02:22.099 now that the end yeah
00:02:25.920 it's a wrap
00:02:34.440 hey everyone uh this is a really big
00:02:36.540 room uh welcome to day two I I'm Mike I
00:02:39.599 work at Shopify I've been asked to say a
00:02:42.239 few words uh they're my employer though
00:02:44.220 so it's going to be a little one-sided
00:02:46.040 uh that said I am happy to have a candid
00:02:48.959 conversation about what uh what it's
00:02:51.480 like to work at Shopify so if you want
00:02:52.980 to find me and have a good conversation
00:02:54.480 about what what I like and what's
00:02:56.280 painful happy to do that uh so let me
00:03:00.000 start with a simple a simple fact which
00:03:02.099 is that Shopify and rails have really
00:03:04.080 grown up together both were just you
00:03:05.940 know little baby things in 2004
00:03:09.360 um when our CEO Toby was one of the
00:03:12.720 original rails contributors as well as a
00:03:15.900 rails Corps member and shopify's product
00:03:18.300 was built on top of rails and uh the
00:03:20.700 rails Doctrine was part of our
00:03:21.900 engineering culture so if you think
00:03:23.700 about like developer happiness Omakase
00:03:25.860 menus uh sharp knives Majestic monoliths
00:03:29.040 it's all it's all here
00:03:33.480 shopify's product vision is pretty
00:03:35.760 simple we want to give entrepreneurs
00:03:37.140 everything they need to run their
00:03:40.440 business online and focus on what makes
00:03:43.260 them great
00:03:44.840 uh so
00:03:46.980 uh
00:03:49.080 sorry about that I'm trying to balance
00:03:50.879 two laptops up here
00:03:53.159 um
00:03:54.659 so in addition to the storefront
00:03:56.099 experience and the payment gateways
00:03:58.440 thank you Evan you're so kind
00:04:01.379 um so in addition to
00:04:03.180 um payment gateways we're also doing
00:04:04.620 things like Merchant financing we do we
00:04:07.440 have warehouses for Drop Shipping we're
00:04:09.000 trying to get all of our Merchants to be
00:04:11.040 able to do one or two day shipping to
00:04:12.420 compete with Amazon so if you think
00:04:14.220 about it like we're we're trying to help
00:04:15.659 Merchants build their own brand and just
00:04:17.459 focus on what makes them what makes them
00:04:19.440 great
00:04:20.400 uh
00:04:21.600 we actually are featuring two Portland
00:04:23.940 local Merchants here this week if you
00:04:26.280 want to stop by the Shopify Booth one is
00:04:28.139 a loop which are uh earplugs for uh for
00:04:31.560 quieting and on the noise of the world
00:04:32.699 and the other one is Smith T who
00:04:35.280 actually have a tasting room here in
00:04:36.600 Portland so if you're interested at all
00:04:38.400 in uh I think that we have some samples
00:04:40.440 and stuff down there too just stop by
00:04:41.940 the booth and check it out
00:04:44.280 um but I want to come back to
00:04:46.320 um to to to rails right so we're able to
00:04:49.440 actually scale all the way up from those
00:04:51.120 small Merchants to huge Merchants like
00:04:53.460 Sephora Budweiser or Red Bull and we do
00:04:56.940 it all with rails
00:04:59.220 um and Shopify success is due to rails
00:05:01.620 and so we want to try to pay that back
00:05:03.000 as well as we can and so I want to just
00:05:06.180 spend a minute talking about
00:05:07.800 how we pay off that date how we pay off
00:05:10.139 that debt but also contribute back to a
00:05:12.120 much larger goal so what's really common
00:05:14.160 inside Shopify to talk about wanting to
00:05:16.440 be a 100 Year company and just like
00:05:18.720 think about that for a second like 21 22
00:05:20.699 if Shopify is still around what will be
00:05:22.560 different about the world that feels
00:05:24.479 like a super ambitious dream
00:05:27.120 um
00:05:27.840 but part of my job is to think about
00:05:29.280 what is the tech stack gonna look like
00:05:30.600 for Shopify in 2122 is it still going to
00:05:33.060 be rails like mind blown if it is I want
00:05:36.900 my team to have contributed to making it
00:05:39.780 true
00:05:41.100 so
00:05:42.539 how do we make Ruby and rails 100 Year
00:05:44.460 tools I think the um it's not just
00:05:47.340 making rails great for new projects it's
00:05:49.500 things like I have a list
00:05:52.380 um
00:05:54.180 production performance making sure that
00:05:56.100 you can actually scale out when you need
00:05:57.539 to it's a well-formed opinion it's an
00:05:59.280 application architecture
00:06:01.080 it's easy upgrades it's great editors
00:06:02.940 it's avoiding anti-patterns in your code
00:06:04.740 base it's about choosing when you want
00:06:06.720 to use the power of types in your code
00:06:09.120 base so Ruby and rails uh
00:06:13.560 hmm sorry so so the idea is we want to
00:06:16.979 like Define what relative scale means
00:06:18.900 and it means not just thousands of
00:06:20.280 Engineers millions of lines of code
00:06:22.380 billions of web requests but also
00:06:24.240 hundreds of years this is the goal this
00:06:26.460 is what we're trying to shoot for at
00:06:28.199 Shopify and on my team which does a lot
00:06:30.060 of the open source work that you've
00:06:31.440 heard about so just a quick rundown
00:06:34.080 we're trying to improve tooling be open
00:06:36.060 source a lot of the tools that we use
00:06:37.500 we're trying to make vs code the best of
00:06:39.539 breed Ruby editor we added rails support
00:06:43.380 to sorbet we're working on making
00:06:45.419 upgrades automating upgrades to rails
00:06:47.940 easy
00:06:49.039 we're trying to focus on Ruby
00:06:51.000 performance so we we created yjit we're
00:06:53.460 working with Oracle on shuffle Ruby
00:06:55.139 we're doing variable with allocation
00:06:56.819 we're working on object shapes and we
00:06:59.220 also just announced a half a million
00:07:00.660 dollars in funding for computer science
00:07:01.979 researchers
00:07:03.660 finally we're trying to work on the
00:07:05.520 security of the ecosystem so we've been
00:07:07.259 contributing Upstream to bundler and to
00:07:09.319 rubygems.org and in a couple of weeks uh
00:07:12.539 we're going to announce our long-term
00:07:14.100 partnership with Ruby Central that I'm
00:07:15.539 pretty excited about related to uh the
00:07:17.940 open source supply chain so uh keep your
00:07:20.759 eyes open for that one
00:07:22.919 so the video you just watched was all
00:07:25.919 folks who are on my team at Shopify some
00:07:28.020 of those faces are probably familiar
00:07:29.220 because they are world renowned experts
00:07:31.199 some of those faces are not familiar to
00:07:33.479 you someday they will be because we're
00:07:36.000 growing the next generation of Ruby and
00:07:37.919 rails experts as well who can continue
00:07:39.780 the work and hopefully give us a chance
00:07:41.220 at having a hundred year tooling and
00:07:43.080 ecosystem
00:07:45.599 anyway that's it that's all I wanted to
00:07:47.280 talk about for Shopify
00:07:49.199 um hopefully I've explained a little bit
00:07:50.400 behind our motivation we're not so big
00:07:51.840 and scary we're just a group of people
00:07:53.220 who are trying to do our best to make
00:07:54.660 Ruby and rails last as long as possible
00:07:57.840 um again if you want to talk about
00:07:58.800 working at Shopify that's great but my
00:08:01.020 real hope is that you get to use some of
00:08:02.639 our software and that's someday we get
00:08:03.960 to collaborate with you on making Ruby
00:08:06.060 rails 100 Year tools thanks