The 21st century executive

Software Engineering Apprenticeships for Building Talent

software engineering apprenticeship

Digital transformation efforts are creating a global demand for software and tech talent, but many initiatives are already stalling. Almost 60% of employers are finding their digitalization projects derailed by the shortage of skilled talent, causing many to start looking into offering software engineering apprenticeships to fill the gap. 

For software engineering beginners, apprenticeships are quickly becoming a smart option to accompany their studies. 

A 2021 survey found the most popular sources of training and education for developers are: 

  • Online resources. (videos, blogs, community forums, etc.) 
  • Formal classes at school 
  • Coding books  
  • Online courses or Certifications 

Download free eBook: Software Essentials for Business Leaders

What are Software Engineering Apprenticeships? 

Given the rising difficulty in finding skilled tech professionals to work in-house, many companies are opting to build talent pools. Like technical apprenticeships and vocational training programs, software engineering apprenticeships provide aspiring tech professionals with opportunities to gain industry-relevant skills. They are high-return career pathways that allow employers to natively develop their future workforces. 

Unsurprisingly, established tech companies in the MAANG group have already been offering a range of educational opportunities to build their own talent pools. Google, for instance, has offered a range of educational programs, certifications, and scholarships for years. They are also stepping into the apprenticeship game, with software engineering apprenticeships in selected locations. Similarly, tech companies like Microsoft, Accenture, IBM, and Airbnb have also been offering paid training opportunities for eligible applicants. 

Who are they for? 

Organizations in need of tech talent may choose to take on less experienced candidates, to develop their skills and provide work experience. In many cases, these apprenticeships are paid. This means that candidates who would normally be unable to seek training due to financial circumstances can now benefit from career-advancing opportunities.  

So, what do they gain? 

By creating native talent pools, these businesses are essentially investing in their futures. Using these apprenticeships, they can: 

  • Create reliable talent funnels for skilled and specialized workers.  
  • Improve retention rates and offset churn 
  • Fill identified skill gaps 
  • Upskill existing workforce 
  • Increase diversity in software engineering teams

In the short term, they can begin filling junior positions within a few months, but in the long term, they create a steady stream of adept professionals to support scaling and operational expansion. 

On the other side of things, apprenticeships are popular choices for recent graduates, career changers, and even junior-level software developers. Some of the key benefits for these candidates include opportunities for upskilling, career advancement, and personal development. 

What makes them particularly attractive, is they are essentially easier ways to break into the tech industry. While job seekers often bemoan the unrealistic demands found in modern job postings, software engineering apprenticeships now present a low initial barrier to entry.  

How do they work in practice? 

Traditional apprenticeships are strongly arbitrated and documented professional development programs. Formal apprenticeship programs are usually registered with the U.S. Department of Labor and must offer the following to be recognized: 

  1. Structured, systematic on-the-job supervised training 
  2. Industry-relevant training and education 
  3. Progressive attainment of skills and knowledge up to industry standards 
  4. Candidate inclusion in regular business operations 
  5. Nationally and industry-recognized work credentials 

That said, informal apprenticeship programs also exist. These aren’t necessarily recognized by the Department of Labor and may not offer widely used credentials, but they can still provide candidates marketable skills and create opportunities for career development. 

Typically, software engineering apprenticeships can be broken down into the following 4 stages. 

1. Candidate screening and selection

Applications are collected during a defined intake period and based on company-defined criteria of eligibility, selections are made. Criteria can include experience with requisite technologies, motivation for application, or experience level 

The number of candidates selected depends on the need for capacity in related roles. The likelihood that candidates may not complete the apprenticeship due to unforeseen circumstances may also be a factor in deciding the number of accepted applicants. 

2. Training and education

In this stage, apprentices begin training with the tools and technologies in use for their intended roles. In addition to practical coding projects and problem-solving exercises, there is usually a large theoretical component as well. Training in this stage often consists of intensive classroom or Bootcamp-style sessions and lessons. 

To proceed to the next stage, apprentices need to fulfill specified criteria demonstrating competence to a standard determined by instructors or mentors. This process allows employers to ensure that the quality of talent remains above a certain benchmark. 

3. On-the-job training/ Internship experience

In keeping with the need for practical experience, candidates at this stage are put into real working roles that reflect their likely day-to-day responsibilities as junior software engineers. To get the best out of apprentices, they should be challenged to contribute work that benefits organizational goals, rather than simple busywork or menial tasking. 

At this stage, it’s common for apprentices to be paired with a direct supervisor or mentor. This mentor is responsible for assigning tasks, demonstrating solutions, and helping where needed. They are invaluable to developing apprentices’ skills and experience in practical use cases. 

4. Hiring

Not every candidate may complete the course of the apprenticeship, but those who do are often funneled into junior software engineer roles as direct hires. By this time, they will have developed professional connections within teams and become acquainted with the workplace culture and the day-to-day development operations of the organization. At this point, the software engineering apprenticeship cycle is ready to begin again with new candidates. 

For those apprentices who aren’t hired, however, they still benefit from the skills and training received and are, therefore, suitable candidates for future positions when they become available. What’s more, with the training they have received, it’s also possible to continue developing themselves and seeking employment elsewhere. 

Make the most of Software Engineering Apprenticeships 

Many companies have seen great success filling positions with apprenticeships. Some have even reported conversion rates of 100% from candidates to software engineers and developers. While starting a software engineering apprenticeship initiative may take some time and a bit of investment to get off the ground, it can be an extremely rewarding endeavor. Monitoring your apprenticeship program and improving iteratively is the key to streamlining and maximizing its effectiveness. 

Remember, apprenticeship programs on their own won’t solve all your recruiting challenges. However, they’re a great way to diversify your talent recruitment efforts and develop capacity in-house. One of the best ways to get real value from your apprenticeship is to identify where your skill gaps are and build capacity specific to those roles. Not sure where to start? Learn more about building effective software teams in our article here or what skills leaders are looking for when choosing new talent here. 

New call-to-action

About the author
Alvaro Marinetto

Working as Foreworth’s, Development Director, Alvaro manages the day-to-day activities of the development team. He helps steer the direction of the company’s new feature development as well as their maintenance efforts.

More info →

What do you think? Leave us your comments here!