 Hi So Everyone wants to hire senior developers, right? Everyone's looking for them the demand to increase headcount in many tech companies is rising Even with the difficulty of hiring for top talent to counteract that some big companies have removed the required college Require a degree barrier to entry But even though with online training and all the various boot camps around our industry has a surplus of bright junior developers But a lack of open junior positions Your people are the most important and valuable resource. You can only innovate if you have the right talent with the right skills Current traditional hiring practices are not meeting demands Companies need new solutions implementing an apprenticeship or an upskilling program is such a solution I run a six months apprenticeship program for huru. That's now Qantas hotels in Melbourne, Australia It was considered a great success and we are currently examining options to run it again By definition an apprenticeship It's training in an art trade or craft under a legal agreement That defines the duration and conditions of the relationship between the master and the apprentice and the apprentice an Apprenticeship program allows employer to evaluate talent and provide apprentices with a structured learning period The nature of the apprenticeship is to allow the apprentice to learn a great deal About the company and in the street in a short amount of time under garden mentorship When we talk about apprenticeships usually hear three terms an apprentice a journeyman and a master So previously apprenticeship has been around for thousands of years and generally They've lasted between two to seven years Depending on the particular trade under which the apprentice became a journeyman The term derived from the French word for day journey and basically meant that the journeyman would be paid by Day for their work after a period of Extensive experience a journeymate could submit a piece of their work to the appropriate guild For assessment and approval if this masterpiece was accepted They could become a master craftsman and could set up their own workshop and train apprenticeships So we are going to consider more about apprenticeship stage Now how is it different to an internship? Okay, so by definition an intern is a student or trainee who works sometimes without pay in order to gain work experience or Satisfying requirements for qualifications. So when we think about interns, we usually think about students They focus on one specific project that implies that they will do the dirty work and we are talking about the short-term engagement On the other hand when we talk about an apprentice an apprentice is a person who is learning a trade from a skilled employer They have been agreed to work for a fixed period of time at relatively low wages So when we think about an apprenticeships, we think of that it's on-the-job training It focuses on sustainable growth It's a longer-term engagements with real applications to your work It has dedicated mentoring the classroom instructions relates to the occupation Where the apprentices can hone this the craft you have some form of talent Evaluations and usually completion of the apprenticeship usually results in a full-time role Now why should you start one? Well first hiring junior makes for better team workflows It improves your diversity it opens your candidate pool and helps foster support for diversity in initiatives It increases diversity of the background and skill of potential candidates It improves your performance because we all know the diverse teams have better performance increased productivity it Support simple explanations and better understanding of the code base along the way you get things documented and Communication becomes explicit between all the team members Hiring junior supports also team development because it improves retention in your team It ensures employees are trained to best practices and company processes It provides employers with a competitive edge through a well-trained and flexible workforce It addresses the skill gap between seniors and juniors It supports the scale of fast growth companies and you also save time and money on recruit recruiting and onboarding talent So what do you need? Well at a minimum you need an apprentice and mentor and a company that's willing to make the investment So company buying you will need senior leadership support a company's leader that wants to build a talent pipeline to grow the company It's important to understand that it's going to take time and money to ensure that your program is a success You also want to have team buying a team that is willing to mentor and work directly with the apprentice Apprentices succeed when the team is dedicated and committed to working with a beginner and You also need a person responsible It can either be a person to drive the program and or a mentor and apprentice that are all invested in the success of the program So how do we start one? Well first we need to understand the needs of the company and so let's consider some of the key factors for one You should consider the length of the program. Do you want to do it over three months six months 12 months? The number of apprentices that you can support in your team. Who's in charge of what? What they should know before they start the program what they should learn during the program and How they should learn that You should also develop a plan for defining realistic expectations of what do you expect to get? In the end of the program set timelines Plan how to source and hire apprentices develop processes and logistics around the program and set a budget for the whole thing When we're sourcing candidates things that you should consider is How will you recruit and screen candidates and ensure that all the requirements are met? Decide what you're looking for Decide pay grade decide on promotion channels where you're gonna promote the program and how you're gonna reach more on the represented groups Define the hiring process adjust for beginner level Set the dates in the calendar for all the hiring process that you want to have Select a hiring committee from the team that you're working with and then make the hiring a team decision So how did we do it at Huro? Well, we started with the job ad we advertised how Huro Aquinas hotels works and What our values are and the culture and the perks that you're gonna get while working with the company? Then we continued by saying that who we are looking for and I believe that knowledge is not enough that Successing life depends on both knowledge and character So we define the person that we are looking for so we wanted somebody with basic programming skills Preferably in Ruby demonstrate itself learning have a growth mindset have drive Demonstrate initiative communicate well and is interested in Huro's purpose and values When we asked people to submit an application we asked for three things we asked for a CV We asked answers to those four questions and then a code sample for Those four questions when I reviewed all the application that was sent in I created a rubric for Answers so for example the first question that was why programming what have you done to expose yourselves to programming so far I Have a rubric for average answer good answer and great So the average one would be haven't done much or said they've done some things but not showing anything for it a Good answer would be have done some things along the way, but not display much drive and a great answer Would be having invested time and efforts kept a progress log care about what they are learning and have done more and beyond because they care just an example For the code sample, I wanted to be Conscious that some people have limited time that they don't have enough time to provide a lot of code samples So we gave them two options We gave them provide a code sample of something that you already have that you are proud in proud of or An option to solve one of two code challenges one of the code challenges that we did was Offer a scrabble score, which is pretty much taken out of the exorcism or it's available in many places online And the other one is validating a credit card number We also told them what we are looking for in the code sample So we looked for knowledge of a recent text style organization on refactoring We wanted to see division into logical components and methods with clear responsibility And then we wanted that all the requirements are laid out per the specifications of the exercise Once we reviewed all the applications that we got in the next step was to invite people to a non-technical interview this interview was done with the engineering manager and an HR person to check the for the characteristics that we were looking for We created a set of six Questions for all the candidates plus two custom ones depending on the candidate And then we allowed for a bit of time to allow them to ask us questions in return One of the question for example was tell us about a time that you worked as a part of the team What was your contribution? What did you like dislike about the team environment and what was the outcome of the team's work? we were Defining exactly what we were looking for with each with each questions for in this one We look for signs that they know they're on strength and weaknesses can empathize with others Someone who can appreciate the benefits that we receive from others on the team and wish to reciprocate Once the past that phase We went to a technical interview the technical interview all the phases of the hiring process was done with at least two people from the team and we try to always have and male and a female on the Interview the technical interview was done with two developers from the team once again It included set questions that were selected and adjusted for beginner level I also ran it by an existing junior at work to check that it was appropriate and not to advance for the juniors and Then the last phase in the hiring process was an in-office visit It included two pairing sessions one on actual code that the Team is working on which was pretty consistent at the time for all the candidates And then the second one was on the scrabble score problems from the core challenges Because none of the people that made it to the in-office visit actually use that So it was a good way to do the same thing with everybody to see how they approach that And then they also got a chance to meet and interact with the rest of the engineering team The idea was again that every step of the way the team has a voice in who should continue to the next stage So all the team has a bind with who got selected The other thing to remember about the hiring process is to communicate Continuously with the candidates, which means that every step of the interviewing process I will inform them of what's happening next what the next steps will be and when they should be hearing for me and Last we offer to provide feedback to everybody that has been unsuccessful We've done this on request and pretty much every single candidate asked for feedback on what they can do to improve their chances for next time Once you have apprentices that you selected and that you want to work with you need to develop a program So some questions to ask is what kind of training will be delivered? What to include in the curriculum what competencies do you want them to exit with? Who will be the program coordinator? How will you measure and evaluate the apprentice outcomes There are quite a few companies in Melbourne that over the last few years have done some type of Apprenticeship programs, and I want to mention three I want to mention Envato Culture amp and her or Qantas hotels each one shows a completely different approach of how to run the program So I want to talk about how to guide You want to set realistic expectations Prepare the team and the mentors consider on-boarding and consider training Each one of those companies that are mentioned chose a different approach So for example Envato chose to they got a legal exceptions to advertise to women only They hired two women at a time. They've run this now three times in a row The two women that they work with get a full-time mentor that works with them And then they go on team rotations and work on actual Work problems that they have while they learn new things along the way So this is more like ad hoc will do the work And then when we find a problem that we don't know will stop and we'll chat about that Culture amp did a different approach where they did they hired for the first they've run it twice I think every time they've hired ten juniors they started with Doing every week two days of Learning and two days of and three days of actual work on the teams that they got assigned on to They Found out that this was too much context switching and they they didn't work very well So they ended up doing a full week of study with every third week So that's a different approach with again a dedicated instructor And then we have the who which was the program that I ran and that was a week on and a week off So a week on learning theory and working with me and then a week off working with the teams while having team rotations So different things to consider when you plan the program How to guide we mentioned setting realistic expectations We also want to prepare the team and the mentors. So for example, I did a session with the team on how To pair with a junior. I did the same sessions with the apprentices It gave everyone the same foundation and a common language of how to talk how to talk to each other while they pair With onboarding I started introducing many of the workflows in engineering teams for example How to approach learning how to pair program how to do our code reviews How to give feedback how to debug coding Ruby how to do retrospectives all the things that are around actually writing code and then the training is Different depending on how you decide You also should define success what what will success look like for the program that you are running For example setting milestones Various companies choose different ways of assessing the people that are on the program. I chose a breakable toy Which give people an opportunity to work and see and for me to see how they've what they've learned with their time with me Culture went with an assessment So the apprentice apprentices got a project with set requirements Which each required was a point up to a hundred points and that was their grade in the end of the program and Vado chose personal confidence Which means the apprentices work with a mentor until they or the mentor feel that they are Confident enough to go and work with the team or I've seen other options when people use big scary quiz That is that and sometimes can be open and can be taken as many times as you can as you want Until you get a good grade and then they calculate an average of all the times you try that different approaches So lastly, I want to talk about my apprenticeship program The program ran for six months and was a paid apprenticeship. The Apprentices got a low rate for the six months. They were on the program and once they finished the pay got bumped to a Genu level market rate pay Pay grade it was a blend of structured learning and on the job work We alternated Academy weeks with product work and found that four weeks with the team gave the apprentice Developers enough time to take ownership of story cards as well as a break from the intense learning periods I created a curriculum that is available online that you can have a look for every week and you can see that in the first week we introduce more Git and introduction to command line and various other things and then it got more advanced as the weeks went through most days were consisted on theory sessions in the morning and Then which included codelogs as well and then self-work periods usually in the afternoon Things that we've done in the program. We've done pairing a lot We Blocked one hour for exorcism a day every day of Academy weeks We found that unless we block it for an hour like the whole morning's just gone sometimes depending on the exercise Exorcism allowed us to also Compare code solutions and discuss better options and better design paradigms we Implemented a gradual release of responsibility models where for example if we use exorcism gradual release of responsibility means I do first and you watch then we do together where I lead Then we do together where you lead and then or you do together without me But still in a pair and then you do individually by yourself So you slowly get more and more responsibility on the work that you do So with exorcism for example We started the first couple weeks We've done mop programming when one of the persons in the room was in charge of the keyboard And then everybody else worked together on solving the problems then continued with pairing of two groups of two And then within two months we had moved to doing the exercise in the exercises individually by themselves We've done student lightning talks of small topics that I didn't really want to cover So that gave them an options to practice Giving presentations which they've then taken to local meet-ups We've read three technical books throughout the six months For example put a 99 bottles and another one from of degree We employed a breakable toy, which is one of what? Which is defined in a book of the school apprenticeship patterns as a personal Project that you work on to learn Concept that you're trying to learn at the moment They practice what they learn and was used for their final evaluation and assessments of their knowledge and understanding We did for nightly one-on-one. So they did one-on-ones with me as the The instructor and also with the engineering manager on alternating weeks We had for nightly retros when they told me that I'm making them work too hard and I need to let go Each one of them was matched with a mental body just to make sure that they have somebody to talk to that They feel comfortable with They had we had team sessions So I got more buying from the team by having the actual Engineering team run some of the sessions that were in the program for example getting the DevOps guys to teach about AWS And we had team rotation when we started we thought about doing team rotations that would be every month But we found that it was too quick. So we ended up doing rotations every two months on each team They got practical work. They learned how different teams work It helped with knowledge transfers between the teams because then you have shallow silos of knowledge and The team got to know the apprentices and they became part of the company In the end of the program placements were based on organizational needs and the apprentice wishes as well as As what they've which teams they worked on which ones they liked best as The result all four apprentices have selected teams and have been productive members of these teams for the past two years Building a developer apprenticeship in your organization creates a continuous learning environment It helps all your engineers understand that technology stack the culture and shared vocabulary It helps the team engagements and retentions It means investing in the team you will benefit from introducing fresh perspectives and ideas You will recruit great candidates that you will that will help shape your company's future engineers. So why not start one now? Thank you so much