The Making of a Junior Engineer

Asurion’s Software Engineering Apprenticeship Program

Braedon McCoy
asurion-product-development
8 min readJun 17, 2022

--

Think back to your first week at your very first job. Maybe you earned a degree preparing you for that field — possibly some internships or co-ops to give you some hands-on experience in that industry — or maybe you had nothing to prepare you for what was to come. Whatever your circumstances, I’m sure you learned, un-learned, and re-learned more in those first weeks and months in that role than you ever thought possible.

We have all heard of the value in “hands-on” experience, “learning the ropes,” or “on-the-job” training, and Software Engineering is no exception. Newcomers to the industry will spend their first years learning, un-learning, and re-learning the specific tools, technologies, approaches, and culture of their company. This doesn’t mean that a degree is useless, just that it’s not the only recipe for success. And if it’s not, what other recipes are out there?

At Asurion, our team’s question was, “How can we create a program that would allow us to identify talented individuals from other career paths, provide them education and training, and grow them into successful junior engineers regardless of background?”. The idea was that if we could grow someone into a junior engineer, our existing growth pipelines would take over and we could grow them from junior to senior to principal engineers and beyond. So we partnered with our HR teams, adapted themes from the Product Team Model to ensure that we were approaching this challenge iteratively and that our results would be sustainable and reproducible in cohort after cohort, and we got to work.

Finding the right people

We started by identifying potential candidates for this program: successful frontline employees from our call centers and customer-facing roles. These team members had demonstrated proficiency with technology, possessed diverse backgrounds, and were enthusiastic and energized by this opportunity. Many of these folks had all of the skills you’d look for in someone interested in a Computer Science degree, but did not have the opportunities to pursue such a degree. As apprentices, they would bring insights from other areas of our business that could be incredibly valuable to the engineers, product managers, and designers in their pursuit of customer feedback. They were the perfect candidates to upskill and grow into Software Engineers, and they were definitely interested! Every single person we talked to expressed interest in becoming an engineer. Many of them had worked with engineers from our teams, and were drawn to the many growing opportunities in the engineering field.

Defining Success

Once we had our pool of candidates, we needed to examine our success metrics. What could we reasonably expect to turn these capable employees into with a year’s investment? What tangible goals and achievable performance metrics would set them up for success in our engineering organization?

We spun up an Apprentice Role Profile Working Group, meeting regularly for a few weeks to define what success would look like, and established a role profile for an apprentice who graduated from our program. We brainstormed what core skills we hoped to develop over the course of the program, how the apprentice role would map to a junior engineer position with a four-year degree, and what skills or competencies we could expect from them after only a year of growth and learning.

We quickly agreed that applying the traditional expectations for an entry level role was not the right approach for these apprentices. Apprentices would likely require more investment from the team in their development over the first year than a new hire with a four-year degree. They would be expected to ask more questions, giving senior engineers more opportunities to grow their mentoring and coaching skills. They would require more hands-on guidance with programming tasks, allowing the teams to implement successful pair-programming practices. The challenges and benefits of having an apprentice on an engineering team were clear, and now we had a model for success.

Recruiting Apprentices

As we formalized our recruiting and interviewing process and spread the word to our frontline employees, we quickly found ourselves inundated with highly motivated candidates. The allure of an engineering job was attracting folks from all over the company, from roles and experience levels we hadn’t predicted! We soon had over 200 applications for five open positions in our pilot cohort. Our Asurion Certified Interviewers conducted phone screens, logic and aptitude tests, and multiple rounds of in-person interviews to ensure that we had enough data for a fair and unbiased consideration of top candidates for the program. We were thrilled about the diversity, experiences, and enthusiasm of our wider candidate pool and the impacts this program would have on diversity, equality, and inclusion efforts in our engineering organization. In the end, our pilot cohort consisted of five apprentices, including three women and four people of color.

The First Cohort

Our pilot cohort of the Asurion Software Engineering Apprenticeship Program started in May of 2020, quickly pivoting from in-person instruction to remote learning as the entire company adjusted to working from home. The plan was to leverage a mix of classroom instruction and on-the-job training to upskill these employees with the real-world skills they would need to be successful engineers. The first semester included a six-month engagement with Nashville State Community College, where the apprentices took courses in Programming Fundamentals, JavaScript, Typescript, C++, Python, and more. Apprentices spent half the day with their instructor, and then half the day working on course assignments with their Apprentice Mentor’s guidance. These mentors helped provide context and examples for how the classroom learning would translate to practical skills as a Software Engineer with Asurion.

The second semester of the Apprenticeship program provided six months of on-the-job training, where apprentices were embedded onto their mentor’s team. The mentor was responsible for people-leadership duties to support the apprentice, facilitating as the team welcomed the apprentice into their unique ceremonies, processes, and workload. Apprentices were empowered to take what they had learned in the first semester and put it to use. Apprentices were not expected to work individually, but instead pair programmed with their mentor to ensure they were supported and encouraged. This individualized attention and commitment to pair programming also embodied our approach to building a collaborative engineering culture, as we prioritized personal growth and knowledge sharing over any specific deadlines or product launches. We hoped that apprentices would start contributing code over these six months and would reach the level of our newly defined Associate Software Engineer role by the end of the program.

To help track their progress over these two quarters, we worked with the Tennessee Department of Labor to create a competency list, enumerating the skills and abilities we felt an Associate Software Engineer would need to be successful. This was heavily influenced by our role profile, and the list was designed to allow us to track progress towards the goal and highlight any areas of improvement or any gaps in knowledge. This competency list also went through many rounds of review before being finalized into an organized, easy-to-use, visible progress tracker. We also layered some of the ceremonies from our engineering org, including daily and weekly syncs, retros, and demos, helping us keep an eye on the progress of the entire cohort and allowing the apprentices to become more comfortable with our processes.

Throughout the first cohort of the program, we also dealt with a number of challenges and growing pains. We experienced turnover in the apprenticeship leaders, adjusted to remote work styles, and supported the apprentices as they faced drastic changes in their careers. We also learned a great deal about what made the program successful, and we worked to internalize these lessons and carry them into the second cohort that launched in 2021.

The first cohort of apprentices pose in their cap and gown with the program manager.
The first cohort of apprentices pose in their cap and gown with the program manager.

The Second Cohort

As we began recruiting for our second cohort, we were stunned to see even more interest in the program. We had our work cut out for us, with over 300 applicants, and an accelerated timeline to ensure our candidates were prepared in time to start with our new educational partner, Nashville Software School. This change in educational partner was one of the modifications we made after extensive review of the pilot cohort experience. Additional changes included redefining the Apprenticeship Mentor role, altering structure of the program, and increased the size of the cohort. We had learned so much from the pilot cohort, and in the spirit of one of Asurion’s Leadership Principles, we were ready to Reach for Success.

With more demand than ever and a clearer plan on how to set these apprentices up for success, we again hit the ground running. The mentor role from the first cohort was split into two roles, now Apprentice Mentor and Apprentice Leader. The new Leader role was meant to provide more career growth guidance and leadership support (in addition to senior engineering expertise), as those leaders had completed extensive leadership training such as Asurion’s Leadership Development Kit. The Mentor role continued to provide more hands-on support and peer level engagement with the apprentice in their day-to-day projects. By redefining these roles, we had effectively doubled both the amount and types of mentorship that apprentices would receive.

Our new partnership with the Nashville Software School also came with new changes to the program structure. Rather than the first cohort’s part-time split between course instruction and on-the-job training, the second cohort enrolled in 6 months of full-time, targeted coursework for the front-end and back-end frameworks React and Django. Having laid a full foundation in their dedicated coursework first, the apprentices were better prepared to take advantage of their practical engineering training with Asurion teams.

This additional mentorship support and more effective structure also allowed for a larger cohort size, which increased from five apprentices in the first cohort, to nine apprentices in the second, which included four women, five people of color, and one veteran.

Future Recipes for Success

In the end, our teams had met their original goal — we identified talented individuals from other career paths, equipped them with valuable training and skills, and provided them with unique opportunities as new junior engineers. In fact, all five apprentices from our first cohort were promoted to junior engineers at Asurion. Since then, they have helped us deliver value to our customers through improvements to our claim filing process and our account web experience, enabling localization support for French into our mobile app, improving the time to market for their product, and much more!

Looking back over the experiences of our apprenticeship program in Nashville, we are proud to have successfully launched Tennessee’s first apprenticeship program for software engineering roles. We are also honored that our Software Engineering Apprenticeship Program received the Nashville Technology Council’s Diversity & Inclusion Initiative of the Year in 2021. With these milestones, we hope to continue to improve on our successes and learn from our challenges, and expand the program to more offices and career paths within the company.

When these apprentices look back to their first week at their very first position at Asurion, perhaps they never expected to be here — as highly trained, full-fledged software engineers. Still, we hope that this program has opened new doors for our apprentices, and equipped our industry with new and exciting recipes for success.

You can find more information about our career growth opportunities and see how to join us at careers.asurion.com!

Braedon McCoy is a Senior Engineering Manager at Asurion. He was an Apprentice Mentor in the first cohort and Apprentice Leader in the second cohort of Asurion’s Software Engineering Apprenticeship Program.

--

--