Qwasar-Silicon-Valley-Blog-02

What are Advanced Engineering Apprenticeships?

Apr 3, 2023 2:15:16 PM / by Jennifer Robertson

Advanced Engineering Apprenticeships are apprenticeship programs in subject areas that require advanced technical training as opposed to other tech apprenticeships that focus on subject areas that are less technically difficult.

There is a significant difference in the level of technical skill between an “advanced” apprenticeship and a “normal” apprenticeship in industry today.

Examples of advanced engineering apprenticeships include:

  • Embedded software engineering
  • Backend software engineering (C/C++, Rust, Go, etc.)
  • DevOps engineering
  • AI/machine learning, including CUDA and similar performance engineering

Most current tech apprenticeships tend to focus on easier subject areas such as Tech Support or Web Development. There are exceptions, and these largely include apprenticeship programs that are insanely competitive: those at LinkedIn Reach, Microsoft Leap, etc. who receive 6K+ applications per cohort and are more competitive than getting into Stanford, Harvard, or Berkeley.

How do Advanced Engineering Apprenticeships Work?

Advanced engineering apprenticeships are designed to bridge the gap that exists between available talent and what's required for your roles.

There's not a lack of talent or interested talent, but there is likely a lack of talent with the specific skills you want (and that includes CS grads and bootcamp grads):

Artboard 1 (1)

At Qwasar, advanced engineering apprenticeships take available talent as the input, then we transform them during 3 months of training via a core then customized curriculum, which outputs an apprentice ready to join your engineering team as apprentice for 3-9 months, contributing as junior engineer:

how advanced engineering apprenticeships work

To be clear - advanced engineering apprenticeships are challenging. We're not talking about web development here but real software engineering - enterprise-level applications, parallel programming, CI/CD pipeline management, autopilot software, neural networks verging on deep learning, etc.

Good apprenticeships should reflect the work environment during their training period so that the transition to engineering teams is seamless and so that employers have confidence apprentices can actually do the job. At Qwasar, this means:

  • Daily standups
  • Pair programming and coding collaboration sessions
  • Give and receive peer code reviews
  • Testing (unit, functional, etc.)
  • Write to a norm
  • Use Git system
  • Complete projects by deadlines, or communicate otherwise
  • Proceed with a project despite unclear instructions, incomplete instructions, or purposeful ambiguity

During the training period, at Qwasar, apprentices are required to complete programming projects, meaning they gain significant experience with the software development lifecycle. Training lasts 3 months, then apprentices join your engineering teams. Projects could include:

  • AI that solves Atari games
  • Car to car communication system that eliminates need for stop signs

Unacceptable projects lack depth, complexity, technical difficulty, such as building a table reservation system for a restaurant.

Apprentices are responsible for all elements of their projects, as they would be on the job:

  • Software architecture
  • System design
  • Exploiting languages
  • All testing
  • Deployment
  • Writing quality code

 

How Are They Different From Other “Tech Apprenticeships”?

There are generally two types of Tech Apprenticeships: those run by companies themselves, and those done in partnership with an apprenticeship provider.

Tech apprenticeships run by companies themselves, such as Microsoft, LinkedIn, or Airbnb, have high entry requirements and require a significant minimum technical skill level in order to be considered and in order to pass their technical interviews and technical assessments or take home projects. These programs tend to not have any training period but instead, apprentices start directly as members of their respective engineering teams and learn on the job. Apprentices still undergo employee onboarding and other training, but very little related to technical skills.

Tech apprenticeship providers work with companies to train apprentices for a period of time before placing them at a company. Training tends to be 2-3 months long, and focuses on web development or light Java.

This means apprentices in normal tech apprenticeships do NOT cover:

  • Data types, data structures
  • Memory management
  • C, C++, Rust, Go, Assembly, or any low-level programming language
  • Software architecture
  • How to start a new project that is large, complex, has ambiguity and demands decision-making skills
  • Giving and receiving peer code reviews
  • Structure problem solving
  • Efficient debugging
  • Standups
  • Pair programming

Apprentices in such programs are not trained to have more advanced technical skills that would be expected of a junior software engineer, an embedded engineer, or a DevOps engineer.

Qwasar is the only apprenticeship provider to offer Advanced Engineering Apprenticeships in 4 subject areas:

  • Backend software engineering (C, C++, Go, Rust, Java, OOP, low-level programming, etc.)
  • Embedded engineering (C, Assembly)
  • DevOps engineering (CI/CD, Terraform, AWS core serverless technologies, IaaS, etc.)
  • AI/machine learning (Python, Pytorch, Jupyter, CUDA, etc.)

 

How Are Apprenticeships Different From Internships?

An internship is a temporary position in a company where a student or recent graduate can gain work experience related to their field of study, computer science. The vast majority of internships require applicants to be in a computer science degree program.

In contrast, an apprenticeship is a long-term, structured training program where an individual perfects a skilled trade, such as software engineering, by working alongside an experienced professional. Apprenticeships don’t require a degree, but instead focus on skills. Software apprenticeships often have a skills assessment and technical interview as part of the application process.

Apprentices are expected to deliver at a level very similar to that of a junior software engineer, whereas interns are not.

The Advanced Engineering Apprenticeships at Qwasar require a minimum technical skill level in order to join - we don’t take people who have no experience programming.

Advanced engineering apprenticeships are great ways to bridge gaps between talent in the market - including CS graduates - and the skill level, programming languages and tech stack that you need at your company.

Some advanced apprenticeships in Europe do accept people with no programming experience, however, these programs last 2-3 years and are also degree programs such that apprentices earn a degree upon completion of their program. Nothing like this exists in the US.

Overall, the primary purpose of an internship is to provide students with the opportunity to gain real-world work experience and to help them make connections in their field of study. Apprenticeships, on the other hand, are designed to provide individuals with the training and experience needed to become skilled professionals in a particular trade AND to fulfill talent shortages or in-demand jobs at a company.

 

Why Should My Company Run Apprenticeships?

There are three major reasons to run an advanced engineering apprenticeship:

  1. Get quality talent with the technical skills your company needs
  2. Save money (ROI, retention, lower recruiting costs, increased team output, etc.)
  3. Increase your workforce diversity

If you’re struggling in any way to find the software-related talent you need, you should seriously consider apprenticeships as a way to solve that problem.

There is not a lack of available talent in the market, even in states where recruiting is difficult. This is evident from the sheer volume of applications that apprenticeship, internships, and entry-level engineering positions receive - they are literally in the thousands, in some cases, 20-30K.

The problem is often that the talent, even with CS degrees (and I include Master’s degrees), don’t actually have the programming or software development experience that companies want and need.

Apprenticeships solve that problem quickly.

If you’re spending more than 3 months recruiting or filling a position, apprenticeships can literally get you talent faster, and for less cost than you’ll spend on a recruiter or agency.

Apprentices stay longer at companies, and have insanely high retention rates.

The ROI for apprenticeships is also much higher than internships, where conversion rates range significantly from ~20% to 50%. Apprenticeships on the other hand have 90-100% conversion rates.

Finally, apprenticeships don’t have degree requirements, meaning the door is open for a wider pool of talent who might have the skills but not the degree. Given the demographics of who can and cannot afford a CS degree, this means apprenticeships are widely successful at also increasing your workforce diversity.

 

Aren’t Apprenticeships for Trades Like Construction?

They were, but the world has changed. In the US, traditionally, apprenticeships were for manual trades such as construction, plumbing, electricians, etc.

However, apprenticeships as a model for talent pipeline development have been used for decades in other subject areas and careers, namely in Europe. Advanced engineering apprenticeships, tech apprenticeships, and more have been present and operating for a long time, and America is catching up to the success of the model.

 

Won’t My team Lose Time and Resources Training Apprentices?

If the apprenticeships are well designed - no, not at all.

Qwasar apprenticeships are designed such that apprentices are ready to contribute to your engineering team on Day 1. They already know how to work as a software engineer, DevOps engineer, embedded engineer, etc. because they’ve already done so in their training period with Qwasar. The same expectations you have of your junior engineers are the ones we have for apprentices during their training period.

Further, our apprenticeships are customizable to your tech stack and the skills that are most important to your company. So if you really need someone who has experience in C/C++, memory management, and autopilot, that is what apprentices will do in their training period.

Again, apprentices aren’t interns - the level they’re trained to is higher, their focus is on skills not lectures or exams, and they’re able to learn from and work with more senior engineers.

 

Can We Customize an Advanced Apprenticeship to Our Tech Stack and Needs?

At Qwasar - yes! During the 3-month training period, apprentices cover a core curriculum, then begin to specialize for your company and needs.

For example, in our backend software engineer apprenticeship program, apprentices cover intermediate C programming, implement advanced algorithms, rebuild malloc, then specialize in C++, Rust, Go, or Java. As they specialize, they must complete at least one project related to your company and/or its industry. So if you’re hiring backend engineers for autopilot, the final project will be related to autopilot. This gets apprentices in the mindset they need to join your engineering teams and understand their pains, goals, and point of view.

The most successful apprenticeships are customized, because it reduces the skills gap in available talent to virtually nothing.

 

How Do I Find Out More About Advanced Engineering Apprenticeships?

We’re always interested in discussing Advanced Engineering Apprenticeships! Reach out to Qwasar to speak with Deidra or Jennifer.

 

Jennifer Robertson

Written by Jennifer Robertson

Jennifer is one of the co-founders of Qwasar and is on a mission to make a difference via engaging education.