Summarized using AI

Why Are We Afraid to Hire Junior Rails Developers?

Joe Masilotti • October 06, 2022 • Los Angeles, CA • Talk

In this presentation at The Rails SaaS Conference, Joe Masilotti, founder of RailsDevs, addresses the hesitations organizations have in hiring junior Ruby on Rails developers and advocates for a shift in culture to embrace junior talent. His key discussion points include:

  • Importance of Junior Developers: Juniors bring fresh perspectives and innovative questions that can challenge existing assumptions. They enhance senior developer retention through mentorship opportunities and free up seniors to focus on higher-level tasks, ultimately contributing to a stronger workforce.

  • Challenges in Hiring Juniors: Companies often resist hiring juniors due to immediate feature delivery needs and concerns about mentorship time. Joe emphasizes that mentorship should be an integral part of the company culture rather than an added burden.

  • Effective Hiring Strategies: He recommends prioritizing junior developers' desire to learn over existing knowledge, exploring new avenues like boot camps, open-source contributions, and leveraging social platforms for outreach. Additionally, Joe shares success stories, including one of a candidate named Jacob who secured a job via active participation in an open-source project.

  • Onboarding and Integration Techniques: Joe stresses the significance of assigning small, well-defined tasks initially to build juniors’ confidence. Regular check-ins and mentorship are crucial, suggesting that effective mentoring is simply being available and coding alongside them.

  • Power of Pair Programming: This method enhances learning and team integration, as it allows junior developers to acquire skills more rapidly through direct interaction with experienced developers, thus fast-tracking their growth into higher roles.

  • Call to Action: As part of his challenge, Joe encourages attendees to hire a junior developer or intern in the next six months to invest in future talent within the Rails community, ensuring that there will be senior developers ready to step up in years to come.

Why Are We Afraid to Hire Junior Rails Developers?
Joe Masilotti • October 06, 2022 • Los Angeles, CA • Talk

Joe, founder of RailsDevs, joined us at The Rails SaaS Conference in Los Angeles, California to talk about the benefits of hiring junior developers and to share tips on how companies and development teams can hire and work with juniors more effectively.

If you'd like to join us at our next event, follow http://twitter.com/railssaas and sign up for our mailing list at https://www.getrevue.co/profile/railssaas .

Thank you to our corporate sponsors who made the event and the production of this video possible:

EVENT SPONSOR
ClickFunnels (https://clickfunnels.com)

PRODUCTION SPONSORS
Buzzsprout (https://www.buzzsprout.com)
Geocodio (https://www.geocod.io)

POST-PRODUCTION SPONSORS
Render (https://render.com)
PlanetScale (https://planetscale.com)
Evil Martians (https://evilmartians.com)
Entri (https://www.entri.com)

3:25 — Why junior developers?
7:07 — Common objections
9:19 — What works: hiring
14:23 — What works once they’re hired
16:47 — Mentorship
20:14 — The power of pair programming
24:51 — My challenge for you

The Rails SaaS Conference 2022

00:00:00.599 foreign
00:00:32.160 foreign
00:00:35.420 why are we afraid to hire Junior rails
00:00:38.280 developers or
00:00:40.140 why does it seem like all the junior
00:00:41.399 devs are learning JavaScript
00:00:44.120 so
00:00:45.840 I'm Joe mazzolati I'm the founder of
00:00:47.820 rails dubs which is a reverse job board
00:00:50.520 exclusively for Ruby on Rails Developers
00:00:54.539 the goal of this talk is to kick start a
00:00:57.360 culture shift to include more Junior
00:00:59.699 developers in the rails community
00:01:03.120 the most important thing to take away is
00:01:05.580 that every single person in this room
00:01:07.140 can help
00:01:08.580 hiring managers are going to learn what
00:01:11.280 to look for and how to hire Junior devs
00:01:13.979 senior developers are going to learn how
00:01:16.500 to level up Juniors to their own benefit
00:01:19.320 and Junior devs are going to learn how
00:01:21.479 to land their first job and stand out
00:01:23.280 from the crowd
00:01:25.619 this talk is what I've learned from
00:01:28.380 helping companies hire via rails dubs
00:01:31.259 for the past year and from being a
00:01:33.720 developer myself for the past decade or
00:01:35.159 so not claiming to be an expert but
00:01:38.040 these are techniques and stories that
00:01:39.840 I've seen work over the past 12 months
00:01:42.240 of hiring
00:01:43.920 the best time to plant a tree was three
00:01:46.079 years ago the second best time is now
00:01:48.720 I'm sure you've seen this on your Airbnb
00:01:50.939 wall or scrolling through your Instagram
00:01:52.200 feed
00:01:53.579 it's pretty it's pretty common
00:01:55.500 it's kind of late
00:01:56.700 I like to make one tweak to it
00:01:59.399 the best time to hire a junior developer
00:02:01.259 was three years ago
00:02:02.880 second best time is now
00:02:04.680 we're gonna dive into this and talk
00:02:06.299 about hiring Junior developers is a
00:02:08.580 future investment it's not for now it's
00:02:10.259 not for today it's not for tomorrow it's
00:02:11.819 for a little bit down the road
00:02:13.560 before we do that
00:02:16.020 let's touch on what makes Junior
00:02:17.940 developers especially Junior rails
00:02:19.860 developers so special
00:02:22.319 well
00:02:23.819 I for one started off as a junior
00:02:25.379 developer
00:02:26.640 this is May Circa 2012.
00:02:29.040 cameras were not what they used to be or
00:02:31.200 are
00:02:32.459 I think this is about a two megapixel
00:02:34.440 camera and also zoomed in so thank you
00:02:37.020 Facebook for that but working with
00:02:39.060 Juniors is very near and dear to me not
00:02:40.980 only because I was once one
00:02:42.840 but because my first rails job was
00:02:45.180 working at the little Labs I was hired
00:02:47.400 knowing absolutely zero Ruby zero Mike
00:02:51.720 d'alessio some of you may know the name
00:02:53.819 over at Shopify now gave me my first
00:02:56.400 round interview and we paired on how to
00:02:58.739 create
00:02:59.760 an array in Ruby via tdd
00:03:03.000 I knew what one of those words meant at
00:03:05.160 my interview
00:03:06.360 but they took a leap of faith when they
00:03:07.800 hired me they saw something in me and it
00:03:10.560 wasn't my experience with rails or Ruby
00:03:12.300 because I had zero but it was something
00:03:13.920 else
00:03:14.760 and I'm forever indebted to them because
00:03:16.980 they were able to jump start my career
00:03:18.360 and get me into this amazing ecosystem
00:03:20.220 and community that we all know and love
00:03:21.840 the Riser wouldn't be here today
00:03:24.180 so
00:03:26.400 more explicitly
00:03:27.780 why junior Developers
00:03:30.000 first off
00:03:31.200 they offer a fresh perspective
00:03:33.420 a junior Dev is eager to understand
00:03:36.360 they ask new questions they shine light
00:03:39.659 on previously made assumptions that a
00:03:41.879 senior Dev or someone more senior might
00:03:43.319 have
00:03:44.280 they don't really know how it's always
00:03:45.959 been done
00:03:47.340 to the question that they ask why is it
00:03:49.739 this way why are we doing it that way
00:03:50.819 why don't we try this we bring that New
00:03:53.040 Perspective into it
00:03:54.659 one of my favorite things to do with the
00:03:56.700 junior Dev on day one is bring them into
00:03:58.440 code review
00:03:59.580 have them ask those what might seem like
00:04:02.040 silly questions because I can almost
00:04:03.959 guarantee that they're going to make
00:04:05.819 that code easier to understand for
00:04:08.159 everyone on the team
00:04:09.659 because if a junior can understand it
00:04:11.819 you better bet a senior can understand
00:04:13.200 it
00:04:16.739 second up is that Junior Developers
00:04:20.220 increase senior developer retention
00:04:23.699 this is done through one of two ways
00:04:25.139 first up is mentorship we'll talk a lot
00:04:27.660 more about mentorship in a little bit
00:04:29.400 but
00:04:30.419 helping others creates a sense of
00:04:32.160 accomplishment
00:04:33.600 it creates an emotional tie
00:04:35.340 I get asked time and time again from
00:04:37.020 senior dubs who want to increase their
00:04:38.580 impact
00:04:39.720 but have kind of hit their limit what do
00:04:41.639 I do how do I find out what's next time
00:04:44.340 and time again I recommend them to
00:04:46.020 mentor and delegate
00:04:47.880 and it shows
00:04:49.560 having a strong emotional tie to someone
00:04:51.840 that you've watched grow and and
00:04:53.160 flourish and Foster and that you've
00:04:55.740 leveled up yourself
00:04:57.180 creates an emotional tie to them as well
00:04:59.400 emotional tie to them equals emotional
00:05:01.259 tied to your employer which means
00:05:03.060 they're less likely to leave
00:05:06.300 second up here is that having Juniors on
00:05:09.180 your team frees up your senior
00:05:11.280 Developers for higher level projects
00:05:12.960 earlier
00:05:14.280 think about almost every pull request
00:05:15.540 you've ever submitted
00:05:17.160 probably that last five percent of code
00:05:19.259 that you don't really want to write
00:05:20.820 maybe it's fixing Ci or making a design
00:05:24.120 tweak or one of your CSS variables was
00:05:25.740 out of whack or maybe a test is failing
00:05:28.500 putting a junior on that
00:05:30.419 finish up that PR and then get your
00:05:32.520 senior onto the next big thing
00:05:34.500 goes a long way in creating lasting
00:05:36.479 value and ownership and code for those
00:05:38.820 senior developers that they might
00:05:40.740 otherwise be bogged down by finishing
00:05:42.539 that last five percent
00:05:45.780 finally
00:05:46.919 a junior developer makes easier future
00:05:49.500 hiring there's going to be a Common
00:05:51.060 Thread that we come up with through this
00:05:52.800 talk on that the best time to hire a
00:05:54.900 junior was three years ago because
00:05:58.259 this happens time and time again when
00:05:59.759 I'm working with companies hiring on
00:06:01.440 Rails devs they tell me they want a
00:06:02.940 senior developer five years experience
00:06:04.979 who knows their stack
00:06:07.020 knows their domain
00:06:08.759 and knows their business processes also
00:06:10.919 and it's like what that doesn't exist
00:06:12.479 you can't hire that senior that's a
00:06:15.240 junior who you hired three years ago who
00:06:17.280 now became your best singer
00:06:19.620 your Juniors will become your best
00:06:21.000 seniors because they are your singers
00:06:23.160 they've been groomed to work in your
00:06:25.080 company to work by your you know
00:06:27.600 restrictions in your environment
00:06:30.300 and the geographers produce the best
00:06:31.860 work for you
00:06:33.060 and if they started as a junior there's
00:06:34.919 also a better likelihood they will stay
00:06:36.419 as a senior
00:06:37.740 because you've been helping them level
00:06:38.819 up
00:06:40.860 so quick respite one of my favorite
00:06:43.860 tweets
00:06:45.060 I only recruit senior devs the trick is
00:06:47.699 I recruit some of them earlier in their
00:06:49.979 career
00:06:51.180 sits home really well it shows
00:06:54.360 that senior devs usually aren't so easy
00:06:56.940 to pick up off of other companies unless
00:06:58.740 you have a lot of bankroll or a really
00:07:00.000 awesome company and sometimes it's a
00:07:01.740 little bit easier to recruit them when
00:07:03.060 they're juniors have them level up into
00:07:04.680 your company
00:07:06.900 so we all agree on this we all agree on
00:07:10.199 the benefits of Juniors I probably
00:07:11.759 didn't tell you anything new just there
00:07:14.819 businesses and interviewing folks and
00:07:16.800 talking to people time and time again I
00:07:19.259 hear the same pushback
00:07:21.240 I hear
00:07:22.860 well we can't hire a junior we need
00:07:24.660 someone to deliver features today
00:07:27.840 yeah that's that's totally valid ramping
00:07:30.900 up a junior requires significant work I
00:07:32.940 will not beat around that bush there is
00:07:34.259 no way around this if you don't put the
00:07:35.580 time in you will not have a good Junior
00:07:37.319 developer
00:07:39.360 I hear that not everyone has time to
00:07:41.160 Mentor
00:07:42.360 well not every senior developer wants to
00:07:44.699 manage either
00:07:45.780 that seems to be okay there's individual
00:07:47.940 contributors there are folks that want
00:07:49.500 to Mentor there are folks that don't
00:07:50.460 want to Mentor I think that's okay
00:07:52.860 but if you have a junior on your team
00:07:54.900 you will need mentorship
00:07:57.060 you need buy-in from the whole company
00:07:58.560 on how that mentorship works
00:08:02.220 I also hear that interviewing Juniors is
00:08:04.560 even harder
00:08:06.060 I know I built an entire business around
00:08:08.039 hiring just rails developers I know how
00:08:10.800 hard it is to hire I know how hard it is
00:08:12.240 to interview
00:08:13.380 and hiring Juniors has its own unique
00:08:15.419 challenges
00:08:16.740 what I'm going to do over the next
00:08:18.419 couple slides is walk through some
00:08:19.860 techniques that I've seen work
00:08:21.720 to mitigate some of these risks to talk
00:08:23.580 a little bit about how you can hire
00:08:25.800 Juniors a little bit easier make better
00:08:28.020 guesses on who's going to be a good fit
00:08:29.639 for your company and how to work through
00:08:31.319 mentorship into your company to make it
00:08:33.779 be part of your system
00:08:35.820 first
00:08:37.620 quote from that guy over there
00:08:40.020 I'm Jason turns
00:08:42.300 it's hard to recommend rails to people
00:08:44.219 changing careers because there are no
00:08:45.959 jobs for juniors
00:08:47.640 go learn JavaScript instead
00:08:50.519 this makes me very very sad
00:08:52.920 one of the biggest names in Ruby in
00:08:55.860 rails hosts of amazing podcasts is not
00:08:58.740 recommending rails to people
00:09:00.420 it's really sad that shows that there's
00:09:02.279 something going wrong in our community
00:09:03.720 there's something that's off if we can't
00:09:06.720 recommend rails to people because they
00:09:08.100 won't be able to get a job
00:09:09.899 and all of you that are here that are
00:09:11.100 listening to it are obviously on board
00:09:12.420 and want to change that and here are
00:09:14.580 some ways
00:09:15.720 I've seen work that we can start to
00:09:17.700 change that culture
00:09:19.200 so first up
00:09:22.260 here are some techniques and stories
00:09:23.580 that I've seen
00:09:24.600 about what works when hiring a junior
00:09:26.640 rails developer
00:09:29.399 first up is to prioritize a junior
00:09:32.160 Developers
00:09:33.660 hunger to learn over their existing
00:09:36.360 knowledge
00:09:37.320 by definition a junior Dev won't have
00:09:40.320 much experience won't know very much
00:09:42.240 they're Junior
00:09:43.560 but what you should be doing is
00:09:45.420 prioritizing the folks that want to
00:09:47.640 learn that can't stand to say to hear no
00:09:50.519 or to not understand something the ones
00:09:52.620 that want have the desire to improve and
00:09:54.959 be a sponge they want you want folks
00:09:57.540 that show up every single day folks that
00:09:59.640 ask a thousand questions fail a hundred
00:10:01.920 times but learn something every single
00:10:04.380 time they write a line of code or watch
00:10:05.519 a line of code be written
00:10:07.700 to look for these folks I recommend
00:10:10.620 looking for people that are asking
00:10:12.600 questions during interviews folks that
00:10:14.640 are talking about rails in their free
00:10:16.019 time or part time on Twitter it's a good
00:10:17.580 indication that they're passionate about
00:10:18.720 it seeing if they're contributing to
00:10:20.519 open source projects
00:10:22.080 folks that have a Blog those are also
00:10:23.700 great resources to find folks
00:10:26.399 and speaking of finding folks
00:10:28.620 let's dive into a quick story about
00:10:30.660 Jacob
00:10:32.640 so Jacob was looking for his first
00:10:35.700 job in the rails ecosystem
00:10:38.660 he had experience in other programming
00:10:41.399 languages and was doing some other work
00:10:43.800 but he didn't really know where to start
00:10:46.140 so we started contributing to the rails
00:10:47.940 devs code base it's open source it's on
00:10:49.560 GitHub
00:10:50.519 he put in a public pull request he
00:10:52.920 committed on a few issues or commented
00:10:54.480 on a few issues and opened up a few
00:10:55.980 discussions for new features
00:10:58.079 his employer saw these commits saw how
00:11:00.720 he interacted with me as the maintainer
00:11:02.279 and how he took feedback and pull
00:11:03.779 request review and applied that and
00:11:05.399 learned and grew even in the public
00:11:08.279 a few weeks later they hired Jacob for
00:11:10.019 his first role this is an amazing story
00:11:12.300 to hear that someone by just
00:11:13.980 contributing to open source was directly
00:11:15.480 hired through it yeah he had an
00:11:16.920 interview process but that was his
00:11:18.480 initial Outreach
00:11:20.220 continuing on that note uh looking at
00:11:22.500 boot camp graduates looking at career
00:11:24.720 switchers there's a term that gets
00:11:26.279 thrown around called second career Debs
00:11:27.779 which I really love folks that have left
00:11:29.160 somewhere else and they're looking to
00:11:30.420 get into development or rails these
00:11:32.640 folks show a different type of passion
00:11:34.260 they've already been doing something and
00:11:36.240 then have spent a bunch of time probably
00:11:38.399 a lot of money through a boot camp and
00:11:40.260 wanting to learn rails and dive in
00:11:42.959 and finally
00:11:44.339 direct Outreach it's one of the main
00:11:46.440 premises of rails devs is businesses
00:11:48.060 reaching out to developers directly and
00:11:50.279 I've seen it work time again
00:11:52.200 developers don't really want to maintain
00:11:54.060 a resume anymore they don't want to
00:11:55.560 apply to jobs themselves they want to be
00:11:57.240 lazy they have businesses reach out to
00:11:59.160 them
00:11:59.880 and I encourage you to take advantage of
00:12:01.260 that and message developers directly
00:12:03.000 through your through email if you can if
00:12:04.860 you have it Twitter DMS work really well
00:12:06.600 it seems to be more open than it used to
00:12:07.860 be
00:12:08.820 and finding those folks on your own
00:12:11.940 next up we have Rebecca
00:12:14.700 so I was working with another rails devs
00:12:16.620 customer who was looking to hire their
00:12:18.660 first Junior developer they weren't
00:12:21.000 really sure if they were the right fit
00:12:23.519 if they could handle a junior Dev and
00:12:25.920 they also really weren't sure how to
00:12:27.480 evaluate a junior developer
00:12:29.399 so you worked together to create a small
00:12:31.620 program we did an eight-week part-time
00:12:34.200 trial that was paid as a part-time
00:12:36.660 contract
00:12:37.740 this would be Rebecca's first job as a
00:12:39.360 developer this would be the company's
00:12:40.800 first hire or a junior
00:12:43.139 what they saw happen was Rebecca was
00:12:45.060 committing pull requests directly to the
00:12:46.680 code base
00:12:47.700 they essentially got a practice run of
00:12:49.500 working with her
00:12:50.579 they were able to learn her
00:12:51.720 communication skills through async chat
00:12:54.000 like slack and GitHub
00:12:55.560 they saw how she was able to handle
00:12:57.180 feedback
00:12:58.200 through pull request review and how she
00:13:00.180 would take that and apply it and learn
00:13:02.519 and most importantly they saw her level
00:13:04.380 up over those short eight weeks and saw
00:13:06.180 how she had the ability and aptitude and
00:13:08.339 hunger to learn
00:13:10.500 they comment on it as one of the best
00:13:11.880 risk-free trials they've ever done
00:13:14.839 what they learned at the end of that was
00:13:17.519 that they can support a junior they had
00:13:19.320 to make a few tweaks their onboarding
00:13:21.240 wasn't as smooth as it could be their
00:13:22.800 Dev environment set up required a couple
00:13:25.380 extra things outside of the Brew file
00:13:26.880 and they had a document more of their
00:13:28.560 code review process so a senior Deb
00:13:30.660 wasn't a bottleneck but they learned
00:13:32.579 that during that risk-free trial that
00:13:35.040 enabled them that when Rebecca joined
00:13:37.139 she was able to hit the ground running
00:13:39.420 Rebecca joined and committed to
00:13:41.339 production on day one
00:13:42.779 why she had already spent eight weeks
00:13:44.880 onboarding she knew everything she
00:13:46.620 needed to know about getting the code
00:13:47.579 running on her machine it already was
00:13:49.260 how to submit pull request she already
00:13:51.000 did that and how to run CI she's been
00:13:52.920 doing that for eight weeks all she had
00:13:54.660 to do was go through the HR training and
00:13:56.399 compliance but her developer side of her
00:13:58.380 as employee is good to go
00:14:00.540 so in summary
00:14:02.639 how to hire Junior devs what I've seen
00:14:04.500 work
00:14:05.339 prioritizing hunger to learn over
00:14:06.959 existing knowledge
00:14:08.639 look in interesting and new exciting
00:14:10.920 places to find them
00:14:12.839 and if you need to evaluate for both as
00:14:15.120 a company and a developer a paid
00:14:16.740 part-time contract can work out really
00:14:18.600 well and has a much lower risk than
00:14:20.399 hiring someone full-time and having to
00:14:21.720 let them go if it doesn't work out
00:14:24.839 so
00:14:26.480 talked about what works how to hire what
00:14:29.040 about once you have them on board how
00:14:31.380 can you work with a junior to ensure
00:14:33.180 that they work best with your team and
00:14:34.800 how your team can work best with them
00:14:38.760 this might be the most
00:14:40.800 important four lines of this whole
00:14:42.240 presentation
00:14:43.380 small well-defined tasks are what enable
00:14:45.899 Junior developers to hit the ground
00:14:47.339 running
00:14:49.019 I go so far as to say can you pinpoint
00:14:51.660 the exact line of code
00:14:53.760 can you submit a change this one to a
00:14:57.060 two or change this plus sign to a minus
00:14:58.620 sign because for that Junior developers
00:15:00.480 first pull request to your code base
00:15:02.699 the changing of the code is going to be
00:15:04.260 the least of their problems they're
00:15:05.820 going to need to know how to set up
00:15:06.899 their developer environment you're going
00:15:08.579 to need to add a SSH or sign in with
00:15:11.100 GitHub how to submit a pull request how
00:15:13.320 to approve a pull request how to get
00:15:15.060 their tests working how to run the app
00:15:17.100 locally the list goes on once they
00:15:19.260 finally get to that code
00:15:22.680 it might be exhausted and if you can
00:15:24.480 make that easy you're going to be in a
00:15:27.540 really good spot because that first that
00:15:30.180 absolute first change that developer
00:15:32.279 makes
00:15:33.959 building confidence is way more
00:15:36.360 important than actually getting stuff
00:15:37.380 done
00:15:39.360 building their confidence to be able to
00:15:40.740 come back tomorrow and know that they
00:15:42.060 can do it that they can that they hit
00:15:43.800 the ground running
00:15:44.880 and you know as time goes on you're
00:15:47.279 going to take off those training wheels
00:15:48.540 you're gonna broaden up your scope of
00:15:51.300 what is acceptable for submitting an
00:15:53.459 issue for them and they're going to
00:15:55.440 learn more and more and more as you
00:15:56.699 train them but that first one the
00:15:58.920 smaller and well-defined that task the
00:16:00.420 better
00:16:02.940 next up is that developer compensation
00:16:06.300 must continue to increase
00:16:08.579 one of the easiest excuses to leave a
00:16:10.440 job is if you're not getting paid what
00:16:11.639 you're worth
00:16:13.019 it's a lot of nodding right now
00:16:15.240 juniors are no exception and if you're
00:16:17.279 doing everything right a junior won't be
00:16:19.139 junior for very long
00:16:20.940 I encourage you to pay them for their
00:16:23.220 current skill level and the current
00:16:24.839 value they provide to your company now
00:16:26.459 they were hired at
00:16:28.560 this might not line up with your annual
00:16:30.600 review cycle I've seen companies do
00:16:33.000 quarterly review Cycles even for nightly
00:16:35.639 review cycles for juniors because
00:16:37.440 they're moving so fast their change is
00:16:39.959 so high
00:16:41.040 if you're doing everything right you'll
00:16:42.899 be rapidly improving and rapidly blowing
00:16:45.360 through those tiers
00:16:48.300 next up is mentorship
00:16:51.180 scary word in the developer industry
00:16:52.920 coming from both sides it has a lot of
00:16:54.959 connotations associated with it it's
00:16:56.759 very heavy word folks kind of cringe at
00:16:59.339 it if they're not totally sure what it
00:17:01.800 means or are a little scared of how
00:17:03.120 structured it could be
00:17:04.500 but this is how I think about mentorship
00:17:06.480 personally me as a developer Mia is
00:17:09.059 running a business for a year on hiring
00:17:10.980 folks
00:17:12.179 foreign
00:17:18.240 being a good Mentor involves two things
00:17:20.939 being available and coding with people
00:17:22.559 if you can do those two things
00:17:24.660 you can be a great mentor
00:17:27.000 being available and coding with people
00:17:28.980 is in practice
00:17:31.020 practical everyday advice on projects
00:17:33.120 and code it's hey can you help me with
00:17:35.280 something I'm stuck let's pair for an
00:17:36.600 hour hey I need a couple questions on
00:17:38.580 how this pull request review you know
00:17:40.140 went can we chat for a little bit it
00:17:42.240 doesn't have to be a weekly Cadence
00:17:44.100 where you come prepared with questions
00:17:45.720 it can be more casual and fun and
00:17:47.760 organic those would be the best Mentor
00:17:49.559 mentee relationships and the best
00:17:50.940 relationships that you can create and
00:17:52.679 cultivate in the company
00:17:55.220 I had a mentor back when I worked at a
00:17:57.960 big bank before I got into rails and we
00:17:59.940 met every Thursday at 1 pm for an hour
00:18:01.679 and every Thursday at 1 pm for an hour I
00:18:04.020 had to come prepared with questions
00:18:06.600 and I was judged on those questions
00:18:08.160 those were determining how much I was
00:18:10.200 leveling up in the company and what I
00:18:11.760 was learning
00:18:12.720 I was one of the worst experiences of my
00:18:14.700 professional career I learned nothing
00:18:16.440 from it my mentor gained nothing from it
00:18:18.600 and it was a broken relationship because
00:18:20.640 the expectations weren't the same they
00:18:22.740 were in charge of making sure of
00:18:23.880 evaluating me I was in charge of showing
00:18:26.160 my worth that's not a mentor mentee
00:18:27.539 relationship
00:18:28.500 the ones that work are the mentors that
00:18:30.240 are selfless and the ones that want the
00:18:32.160 juror to succeed on their own with a
00:18:34.919 little bit of help
00:18:36.780 it's also very difficult to retain
00:18:38.220 Juniors about mentorship
00:18:40.200 nigh I would say impossible
00:18:42.480 on top of that it must be a safe space
00:18:44.760 it must be a safe space for a developer
00:18:46.980 to feel comfortable to ask all the silly
00:18:49.620 little questions and get genuine answers
00:18:52.020 to each of them
00:18:53.400 every single question that is dismissed
00:18:55.320 is suppressing 10 questions down the
00:18:57.600 road do not dismiss a question take
00:19:00.360 everyone seriously and offer your advice
00:19:03.000 as if you had that same question
00:19:04.799 yourself
00:19:05.880 there's guarantee you probably did ask
00:19:07.440 it a few years ago
00:19:09.840 and finally
00:19:11.460 company buy-in
00:19:14.160 it's a tough one
00:19:15.660 mentorship without company buy-in
00:19:17.880 is extra work and not much mentorship at
00:19:20.340 all
00:19:21.840 companies need to know businesses need
00:19:23.760 to know that if it's developers time
00:19:26.400 working is like this you can't just tack
00:19:28.799 on mentorship at the end that's too much
00:19:30.840 hours that's too many hours that's too
00:19:32.100 much time you need to take away coding
00:19:34.080 time
00:19:34.980 or email time or you know meeting time
00:19:37.260 or whatever you do
00:19:38.580 and dedicate that to mentorship what
00:19:41.520 that means is that your short-term
00:19:43.740 productivity will go down you will be
00:19:45.660 delivering less features
00:19:48.299 I like to think of it that the best time
00:19:50.580 for a company to hire a junior is when
00:19:52.740 they can make that sacrifice they can
00:19:54.360 sacrifice a little bit of short-term
00:19:55.740 productivity now for long term maybe
00:19:58.320 even medium-term investment in the
00:19:59.760 future
00:20:00.600 come back to this again and again in
00:20:02.340 three years you might now have a senior
00:20:03.660 developer on your hands in one year you
00:20:05.460 might have a mid-level developer and if
00:20:07.020 you can sacrifice that little bit now
00:20:09.299 for higher retention velocity down the
00:20:11.280 road you're in a really good spot to
00:20:12.900 work with juniors
00:20:15.600 last up
00:20:18.179 power repair programming one of my
00:20:20.280 favorites
00:20:21.840 pair programming is two devs just like
00:20:24.600 this user designers actually two devs
00:20:26.880 working on a machine passing the virtual
00:20:28.799 or physical keyboard back and forth
00:20:30.360 working on the same piece of code doing
00:20:32.340 all of that design trade-off
00:20:34.260 optimization feature discussion that
00:20:35.940 goes on inside your head verbally with
00:20:37.860 each other
00:20:39.539 this is Josh from Jacqueline I was there
00:20:41.640 at pivotal labs when this photo was
00:20:42.900 taken hiding in the corner because I was
00:20:44.640 afraid of the camera
00:20:45.720 and I paired with both of them
00:20:47.460 throughout my tenure at pivotal and one
00:20:50.520 of the best experiences of me growing up
00:20:52.679 as a developer
00:20:54.240 was that it enabled me to go from
00:20:56.580 knowing zero Ruby code
00:20:58.740 to a senior developer in two years
00:21:01.980 yes I was pairing eight hours a day five
00:21:03.960 days a week it was exhausting and
00:21:06.299 extreme
00:21:07.500 but what it did was it took me on a fast
00:21:10.080 track from Junior to senior it was two
00:21:12.059 years after I left I was hired as the
00:21:13.799 lead developer for a small startup
00:21:16.200 being the only developer writing rails
00:21:17.760 code on the team that says a lot about
00:21:19.799 someone who knew absolutely zero two
00:21:21.240 years ago and I encourage you to look at
00:21:23.100 that when you start to bring on Junior
00:21:24.840 developers can you pair with them maybe
00:21:26.520 an hour a day maybe two hours a week
00:21:28.140 maybe four hours a week the more pairing
00:21:30.299 you do you can almost guarantee that the
00:21:32.280 more and more quickly that developer
00:21:34.200 will become a senior
00:21:36.419 which leads me to my next point
00:21:38.580 is that
00:21:39.780 pair programming expedites onboarding
00:21:42.900 it expedites onboarding because you
00:21:45.059 learn more
00:21:46.140 by doing than by reading
00:21:48.299 the best way to learn how to do
00:21:49.679 something is actually doing it yourself
00:21:50.820 so what better way than to have someone
00:21:52.799 sitting next to you telling you click
00:21:54.900 this button type in this command hit
00:21:56.400 enter I haven't gone through the muscle
00:21:58.080 memory on your own
00:21:59.640 developers who pair program are going to
00:22:02.100 learn the team processes they're going
00:22:04.020 to learn techniques how to solve
00:22:06.059 problems they're going to watch a senior
00:22:07.380 developer do it and then they can
00:22:09.000 replicate it on their own
00:22:10.500 so they're going to learn how the actual
00:22:11.640 work gets done not by reading an
00:22:13.320 onboarding documentation by going
00:22:14.940 through GitHub PR or read me but by
00:22:17.400 doing it themselves experiencing it
00:22:19.200 firsthand
00:22:22.500 one of my favorite coding memories
00:22:25.440 love saying that out loud is at pivotal
00:22:28.740 on day one where we had paired all day
00:22:30.900 on something don't remember the project
00:22:32.280 wasn't relevant
00:22:34.440 and my pair typed in git push
00:22:37.020 and slid the keyboard over to me
00:22:39.600 I could hit enter
00:22:40.919 I get to hit enter and push my you know
00:22:43.080 R code to production and I'll never
00:22:44.940 forget that that even though I didn't
00:22:46.559 contribute very much to the code I was
00:22:48.900 given that excuse that that excitement
00:22:51.960 of actually getting my code out there
00:22:54.120 and into the world and I was able to hit
00:22:55.740 enter and see my first real world real
00:22:57.720 world contribution to rails to a rails
00:23:00.120 app
00:23:00.840 um happen
00:23:01.860 and I encourage you to employ that same
00:23:03.360 thing I want someone standing up here
00:23:04.799 giving the same exact talk saying the
00:23:06.299 same question saying the same excitement
00:23:08.400 that I'm doing right now
00:23:12.299 last up on the power pair programming is
00:23:15.240 that learning goes both ways
00:23:19.140 because you're more senior than someone
00:23:20.220 does not mean you have nothing to learn
00:23:22.320 I learned time and time again from folks
00:23:24.539 that consider themselves Juniors about
00:23:26.220 ins and outs of rails we dive into
00:23:28.500 documentation together we dive into
00:23:30.059 source code of gems sometimes rails
00:23:31.740 itself sometimes devise recently for
00:23:33.960 whatever reason and
00:23:36.000 and learn way more than if I was just
00:23:38.220 working on my own
00:23:39.780 but one of the main benefits to all of
00:23:41.400 this
00:23:42.179 is that in the process of a senior
00:23:44.039 working with a junior the senior is
00:23:46.320 forced to slow down
00:23:48.240 in the process of explaining something
00:23:50.100 they uncover potentially invalid
00:23:53.039 assumptions
00:23:55.559 you don't really know it until you have
00:23:57.299 to teach it
00:23:58.440 this couldn't hold more true than when
00:24:00.539 you're paraprogling with someone and you
00:24:02.220 have to explain why something's always
00:24:04.260 been done
00:24:05.460 or why this helper works the way it does
00:24:07.559 or why view components are better than
00:24:09.960 this or why Erb is better than slim or
00:24:12.419 vice versa so you actually have to
00:24:14.340 explain it
00:24:15.299 teach it
00:24:17.720 so in recap
00:24:21.299 four tips for what works once you hire a
00:24:23.520 junior developer
00:24:25.020 having that first task given to them to
00:24:27.059 be as small and well-defined as possible
00:24:28.559 and slowly taking the training wheels
00:24:30.360 off and watching their confidence soar
00:24:33.120 ensuring that their compensation
00:24:34.440 continues to increase as their skills
00:24:36.659 and value provided to the company
00:24:38.280 increase with them
00:24:40.440 mentorship and how I like to think about
00:24:42.059 it or how you like to think about it
00:24:43.620 whatever works but definitely mentorship
00:24:46.080 and how much parent programming can you
00:24:47.700 squeeze into a day with them at the
00:24:49.320 beginning to get them on board as
00:24:50.700 quickly as possible
00:24:54.179 sometimes when companies
00:24:55.860 and Junior developers I want to shake
00:24:57.120 them by their Hood
00:24:58.320 Danielle where do you think senior
00:24:59.700 developers come from
00:25:01.260 I love this
00:25:02.820 but it also Rings something a little
00:25:04.140 scary underneath it
00:25:06.120 if no more juniors are getting jobs in a
00:25:08.700 few years there won't be any more
00:25:10.380 singers
00:25:11.760 seniors don't magically pop out of the
00:25:13.200 thin air nope they start as Juniors and
00:25:15.600 they work their way up
00:25:17.240 I know this was said tongue-in-cheek and
00:25:19.740 excitedly but there's a lot to unpack on
00:25:22.020 this
00:25:24.480 so
00:25:26.279 my challenge to you
00:25:28.620 my challenge is that you do one of these
00:25:31.620 in the next six months
00:25:35.640 Can you hire one Junior developer on
00:25:38.340 your team at your company at your
00:25:40.020 startup at your single person SAS in the
00:25:42.960 next six months
00:25:45.480 it's too hard I don't work on the hiring
00:25:46.980 team I don't I'm not part of those
00:25:49.140 decisions that's fine
00:25:50.880 can you instead bring on an intern for a
00:25:52.740 few months
00:25:53.880 give the power to bring on an intern for
00:25:55.440 just a few months to help someone who's
00:25:56.760 looking for their first rails job get
00:25:58.980 some real world experience have
00:26:00.600 something on their resume that says I
00:26:01.919 worked here for X months to get their
00:26:04.080 foot in the door for their first real
00:26:06.059 Junior job
00:26:07.919 okay fine you don't do interns at your
00:26:09.419 company you're too low on the totem pole
00:26:11.460 to have influence on this I don't buy it
00:26:13.980 but if you say that
00:26:16.020 can you Mentor a junior developer
00:26:17.460 looking for their first job
00:26:19.020 can you find someone on Twitter on the
00:26:21.179 Ruby friends hashtag on slack on Discord
00:26:23.340 or all the thousands of communities that
00:26:24.779 exist and Mentor someone
00:26:27.120 take them from no rails job to rails job
00:26:29.820 spend the time with them be a selfless
00:26:32.279 Mentor apply the tasks and the
00:26:35.520 mentorship techniques that I outlined
00:26:37.320 earlier and get them their first job
00:26:40.080 every single person in this room has the
00:26:43.020 power to do that
00:26:44.520 my challenge
00:26:45.960 is William
00:26:47.220 thank you very much my name is Joe
00:26:48.600 mazzolati I'm the founder of rails dubs
00:26:50.880 this is my Twitter handle this is my
00:26:52.559 email address this is an open invitation
00:26:54.480 to email me if you're interested in
00:26:56.159 hiring need some expert pairing tips or
00:26:58.980 want to share your story I'm here to
00:27:00.539 help if you enjoyed this talk please
00:27:02.340 tweet me or send me an email thank you
00:27:13.860 foreign
Explore all talks recorded at The Rails SaaS Conference 2022
+4