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