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!