Ruby

Summarized using AI

Hiring Juniors

Ryan Bigg • March 08, 2018 • Earth

The video titled "Hiring Juniors" features Ryan Bigg speaking at RubyConf AU 2018. This talk focuses on the importance of hiring junior developers to foster a sustainable and thriving tech community.

Key points discussed include:

- The Future of Development: Ryan emphasizes that the next generation of brilliant developers exists among current junior developers and that hiring them can lead to future innovation.

- Rethinking Hiring Practices: Many companies fall into the trap of exclusively hiring senior developers, which leaves talent pools depleted. Ryan argues for lowering hiring standards to accommodate juniors who show potential.

- Diversity and Team Dynamics: Juniors bring diversity in skills and perspectives that enhance team performance. Mixed-skill teams are more productive than those comprised only of seniors or juniors.

- Documentation and Communication: Hiring juniors often leads to better documentation and clearer communication within teams, as juniors ask fundamental questions that challenge existing practices.

- Empathy and Mentorship: Ryan shares his experiences at Culture Amp, where juniors are nurtured through structured training programs, emphasizing the need for mentorship and patience during their growth.

- Effective Interviewing: Ryan advocates for a gentle interview approach, providing specific, actionable, and kind feedback to juniors, enabling their development regardless of whether they are hired.

- Creating a Supportive Environment: It's crucial that companies foster psychological safety, allowing juniors to contribute, make mistakes, and learn.

In conclusion, Ryan urges attendees to prioritize the hiring and mentoring of junior developers to ensure the longevity and vibrancy of the tech community. He asserts that this not only fills current gaps in expertise but also prepares the industry for future challenges with a new generation of capable developers.

Hiring Juniors
Ryan Bigg • March 08, 2018 • Earth

RubyConf AU 2018 | Sydney | Australia
March 8th & 9th, 2018

Organisers: Melissa Kaulfuss (@melissakaulfuss), Nicholas Bruning (@thetron), Sharon Vaughan (@Sharon_AV) & Nadia Vu (@nadiavu_)
MCs: Melissa Kaulfuss & Nicholas Bruning

Sponsored by: Envato, Culture Amp, Lookahead, Reinteractive, Oneflare, Shippit, Twilio, The Conversation, Netflix, Disco, Heroku, REA Group

RubyConf AU 2018

00:00:00.030 Up next, we have Ryan Bigg. He might be a familiar face for a lot of you, but for some of you, he might not be. At the very minimum, those of you from Culture Amp should recognize him, as they are one of the sponsors of our conference today, for which we are immensely thankful.
00:00:05.700 A lot of what you see here today might not have happened if it wasn't for his God-tier money transferring skills. He is also our Ruby Australia Financial Controller and the treasurer, the holder of the credit card, and my current best friend for that reason.
00:00:12.990 Ryan is a prolific writer of books and is currently working on his ninth book about Elixir—that's nine more books than I've ever written. So, without further ado, take it away, Ryan!
00:01:05.070 Thank you! So I have a confession to make. I started preparing this talk, and I usually write all my talks in a text editor before I do any slides. I got a day off at the end of January, which was a Friday. I opened up the text editor to start writing my talk, but accidentally ended up writing an entirely new book. It wasn't a full book but about 5,000 words, and I was very passionate about it. However, I was also very passionate about this talk.
00:01:30.310 Instead of focusing on my talk, I worked on the book and only just finished it at the end of February. So, I’ve really only been working on this talk since then. Yeah, I wrote another book. That's how I procrastinate—I do more work. I'm kind of weird that way.
00:01:49.740 But hey, let’s talk about the future! How good is the future? Who's looking forward to it? Yes, the future is great! Well, guess what? I've seen the future.
00:02:01.700 I have, and that’s thanks to my God-tier financial forecasting skills. I can predict that the money in the bank will be XY and Z in a few months. But also, five years from now, someone will be on a stage like this one, and they’re going to blow your minds.
00:02:19.380 This person will amaze you with a radical talk on a subject that we can only guess at today. You can guess and guess, but you're not going to guess who it is. I’m sorry, but this person won't be Sandy, Eleanor, or even me, although I would love that.
00:02:32.910 I’m actually preventing you from going to dinner right now—you have to wait for me to finish speaking first. This person knows a model; they might walk down a catwalk wearing some ostentatious outfit.
00:02:45.090 They think that Ruby on Rails might be a cause for concern because an abundance of Ruby on Rails could potentially derail a train. How wasteful that would be! This person today has just started Chris Pine's 'Learn to Program' book, and I recommend that book for anyone wanting to learn Ruby.
00:03:05.250 They just invoked the 'puts' method for the first time today, but in five years, they're going to blow your minds. How cool is that?
00:03:12.360 Tomorrow, they'll attempt Ruby Koans, and maybe next week, they'll dabble a bit in HTML and CSS. In a few months, they might learn how Ruby on Rails combines it all— Ruby, HTML, CSS—and they'll feel that thrilling shiver of excitement when it all just works.
00:03:30.840 In five years, they're going to astound you with a talk of astonishing brilliance, eloquently delivered with perfectly timed jokes and puns. As a dad, I love puns. If I don’t tell a pun in a single day, my dad license is actually revoked!
00:03:43.530 So yes, they will tell an incredible talk, and we will know who this person is five years from now. They'll be on stage with a wonderful introduction from Mel and Nick—anything can happen in five years, right?
00:04:03.750 So, we won’t be able to pick this person out from a crowd right now; they simultaneously exist and do not exist in our minds. We can picture who they might be, but trust me, the image in your mind doesn’t match the eventual reality.
00:04:21.570 One thing I do know is that one of you will hire this person as a junior developer, and that will be their very first programming job. You will kick-start the career of someone extraordinarily talented, and it will all be because of what I’m about to tell you.
00:04:30.270 So, pay close attention.
00:04:36.720 If there is absolutely one thing that I want to stick in your mind, it would be this: hire junior developers! Who here is a junior developer? Look at them!
00:04:47.280 You can hire them! Well, not if they’re already working at a company. I wouldn’t say go and punch them, but if they’re not working somewhere, maybe ask them first and then hire them. Hire junior developers!
00:05:01.350 This is the way we build a stronger community. The juniors you hire today will be the people blowing our minds five years from now. I know what you're thinking, but Ryan, we only hire senior Ruby developers!
00:05:20.550 True, that’s been the active mantra: hiring senior Ruby developers. But how is that quest going for you at the moment? Who's currently trying to hire a senior Ruby developer? That’s several hands!
00:05:38.729 We all know the three hard problems in computer science: cache invalidation, naming things, and hiring more senior Ruby developers. It’s challenging because we've drained our talent pool dry, yet our obsession with hiring seniors continues to no avail.
00:06:01.670 Why do we only focus on hiring seniors? I reckon it’s because we want someone who can dive straight into our code with little to no guidance and start shipping things immediately. This expectation exists because our code is supposedly structured and organized according to Rails best practices—right?
00:06:19.349 They should not need to upskill on a single part of the codebase, as we abide by the laws of Sandy and the commandments of apathy. But the reality is that legacy code exists, and the decisions that led to those codes were sometimes made in a hurry.
00:06:31.560 I should point out that the names involved are protected to safeguard the not-so-innocent. You think you need to hire the best of the best because your application is a large, unmaintainable collection of microservices written in obscure languages. What a nightmare!
00:06:50.000 You need these experts to navigate through the spaghetti that is your legacy code. But it doesn't have to be this way! Perhaps your application isn't as terrible as you think, or it just might be that we need to invest more in our junior talents.
00:07:05.219 Tech companies are spending thousands of dollars searching for that elusive ten-times developer rockstar unicorn. The reality is, those unicorns are no longer roaming freely, as they’re already working somewhere else, leaving you in quite the predicament.
00:07:22.830 It’s time to start growing our own. We need to hire and train our own ten-times developer rockstars. Right? You all agree!
00:07:35.780 But where do we find these aspiring developers? Let’s start by lowering our bar for engineering talent and not get too caught up in hiring only the best. Instead, we should invest in people’s future potential.
00:07:52.820 Your next rockstar unicorn isn’t necessarily among the top five or ten percent—those people are probably out there hanging out with their peers.
00:08:06.360 Those at the bottom end of the talent pool just need mentoring to grow into future brilliant minds. There isn’t an endless supply of brilliance; we need to lower the hiring bar.
00:08:16.890 This will allow us to recruit and train juniors who will eventually become the next generation of leading developers. This process won't happen overnight; we can't just mix a packet of magic and get ten senior Ruby programmers at once.
00:08:32.700 Rather, it will require years of hard work. But these are vital years of hard work, essential for ensuring our community continues to thrive.
00:08:48.050 This work guarantees that we'll have well-trained developers working in our companies, who we know are well-trained because we undertook their training ourselves.
00:09:05.000 But that’s not the only reason to hire a genius; it’s not just about filling gaps because you can’t find any seniors. I have a much better reason why you should hire junior developers—juniors unequivocally make teams better.
00:09:20.000 This may seem like a bold claim, but it’s true. We know from experience that gender-diverse teams perform better than uniform teams of all men or all women. The same can be said for skill diversity.
00:09:32.340 Teams that mix skill levels, including juniors, outperform those comprised only of seniors or only juniors.
00:09:40.000 The most productive teams I have worked on possessed a mix of skill levels and experiences. Without this balance, I don't believe we would have reached the same level of success.
00:09:55.210 Another reason juniors enhance your team dynamics is that they require simpler explanations, which ultimately benefits everyone. When concepts are presented without jargon or high-level terms, understanding improves for all team members.
00:10:11.880 Additionally, teams with juniors often find themselves documenting things better. When I was on a team developing microservices that integrated with our Ruby application, we hired a junior. She asked how events flowed from the main application to the microservices, and we soon realized we hadn’t explained it well.
00:10:24.000 Instead of using technical jargon, we created a diagram showing the entire process. Not only did this help her grasp the concept, but it also became an invaluable resource others referred to time and again.
00:10:38.340 The documentation was actually more beneficial to us, the seniors, than to her! If we hadn’t hired that junior, we may never have created that visual aid.
00:10:54.120 Juniors make teams better by creating opportunities for documentation, ultimately enhancing productivity. This leads us neatly into my next point: communication becomes much clearer.
00:11:05.360 Without juniors, teams often rely on an implicit style of communication. For example, we might say, 'Oh, just use the enumerable module in Ruby.' But then a junior enters, confused and asking, 'What is the enumerable module? Do I need to gem install it?' This prompts the team to be explicit about concepts.
00:11:21.050 When the junior joined my previous team, all communication shifted from abstract terms to more tangible explanations, reducing confusion.
00:11:34.460 More questions are typically asked by juniors than by seniors on the team. The questions asked by juniors can lead to insightful discussions and potential improvements to how we document or structure our systems.
00:11:46.930 Questions from juniors often challenge established practices. They ask why things are done a certain way, leading to opportunities for betterment, as seniors tend to accept legacy code without questioning it.
00:12:05.300 And here's something that juniors provide that no senior developer can, and it’s the most important skill of all: patience. Patience is critical for any developer.
00:12:19.620 Juniors take time and effort to explain things to. This process requires patience, which ultimately helps both them and the senior developers.
00:12:32.390 The irony in this is that I’m generally an impatient person! I constantly find myself scanning the room, looking for the exit and wanting to speed up this talk. However, I think I’m learning to be more patient through mentoring.
00:12:45.190 This is why we should hire junior developers: they unequivocally make our teams better. Things are better understood, documentation improves, and communication channels become clearer.
00:13:01.130 Patience is instilled, and the team benefits as a result. So how do I know hiring juniors will make teams better? At Culture Amp, we hired genius; I actively train them.
00:13:14.520 We hired seven new developers last year, which is about seven more than most companies. We now boast a ratio of one in seven developers being juniors. We have ten junior developers, each from diverse backgrounds.
00:13:32.450 We’ve initiated a structured training program called the Culture Amp Junior Engineering Program, or JEP for short. This accelerated learning environment has been set up to teach these juniors how to effectively write software.
00:13:46.370 The program lasts six months, and at the end of it, they will be fully-fledged developers capable of contributing to their teams at Culture Amp. So far, progress is impressive, and I look forward to seeing how far they develop by the end.
00:14:03.470 As I've said, we've hired people from diverse backgrounds, not just the typical white male demographic. This diversity has proven beneficial to our business.
00:14:15.960 Moreover, you could highlight the fact that we’ve hired individuals who might not have come from conventional tech backgrounds, yet they possess a great skill set built on self-development.
00:14:30.210 You’ll find plenty of eager learners who haven’t gone through formal education—these individuals are the future brilliant developers of our community! We must start hiring—and training—these people today.
00:14:43.650 Now that you've identified a junior to hire, you probably want to know how to interview them. Remember, this could be one of their first programming job interviews, so you should treat them gently.
00:14:54.980 Do not try to trap them with programming riddles or obscure trivia. Rather, approach the interview as a relaxed chat where they feel comfortable.
00:15:11.320 After the interview, provide them with feedback, whether you’re accepting or rejecting them. This feedback must be actionable, specific, and kind.
00:15:27.650 Providing actionable and specific feedback without kindness can come across as criticism. Conversely, actionable and kind feedback lacking specificity may leave the junior lost for next time.
00:15:44.820 At Culture Amp, we give around seven pages of feedback per candidate, totaling about 400 pages annually for juniors. This considerate approach helps mitigate the sting of rejection and instead promotes self-improvement.
00:16:01.500 Juniors flourish with actionable, specific, and kind feedback, which ultimately assists their growth. Putting in extra effort post-interview is crucial, even if they're rejected.
00:16:17.350 We want to provide juniors with opportunities to improve rather than face a flat rejection. Next, let's discuss how to effectively mentor once you hire a junior.
00:16:37.470 These juniors will require lots of love and attention; treat them like a puppy rather than a cactus. A puppy needs nurturing, whereas a cactus can thrive with minimal care.
00:16:55.560 Juniors need mentorship, training, and attention to grow into senior developers. They thrive when provided opportunities to practice and receive guidance.
00:17:09.100 So when a junior submits code via pull request, ensure you give them actionable and kind constructive feedback. Engage in discussions face-to-face as it fosters a better rapport than merely commenting.
00:17:20.920 Lastly, it’s vital to ensure juniors feel welcome and safe within your team. Google conducted a study called Project Aristotle, emphasizing the importance of psychological safety.
00:17:38.680 Their research found team members feel secure taking risks and being vulnerable. Simply put, juniors should always feel they can contribute without fear.
00:17:57.930 Mistakes will happen! We’ve all made them. Ask me about the time I dropped a production database without realizing it; it was a learning experience for everyone.
00:18:13.040 Juniors must depend on those around them for support, understand the direction clearly, and feel they contribute to a greater cause. We can accomplish this through targeted mentoring and support.
00:18:28.100 So let’s continue making an effort to elevate junior developers within our teams. We must prioritize hiring and developing these promising individuals if we want to preserve a sustainable future for our community.
00:18:42.110 Thank you for your time!
Explore all talks recorded at RubyConf AU 2018
+8