People working on computers

The Open Source Apprenticeship Model

The software industry is facing a workforce shortage of unprecedented proportions.  

The bureau of labor statistic is projecting a shortage of 1 million people over the next five years, when they compare the number of jobs that will be posted that require a Computer Science degree with the number of graduates the university system will be able to turn out within that same time window.  Looking at this huge gap, it's time fot the industry to look at vocational programming schools and apprenticeships as a viable way to solve this problem.

This approach is not just about pulling best talent from out of schools like Epicodus, Tech Academy, Treehousethe Code Fellows, and PDX Code Guild, but it is also about setting all students up for success and finding an onramp into the industry upon graduation. Paid apprenticeships that are profitable to business owners provide a path towards development talent retention.

Many of today’s programming students graduate into a job market that demands on-the-job experience. This gap between basic education and hardened work skills represents the biggest challenge to Portland becoming the next great technology hub. This gap needs to shrink or, better yet, disappear….and it is our belief that it starts with employer-funded paid apprenticeships.

The goal of the Open Source Apprenticeship Model is to create entry-level programming positions that benefit employers, workers, and the software community at-large.

To summarize the benefits:

  • Paid entry-level opportunities provided within the open source community.
  • Higher quality work, via more human quality assurance.
  • Extended (4 month) paid interview for new hires with finite timeline.
  • Leadership/mentorship opportunity provided for existing programmers.
  • 35+% percent profit margin on work produced.
  • Minimal cash investment (~$8k per 2 internships offered).

The different levels are broken down into Student (4 months), Apprentice (4 months), Junior Programmer (2 years), and Programmer (3+ years). Success criteria for each are:

Tier 1: Student (4 months)

Students should start with basic computer literacy (mouse+keyboard, email, typing, etc.) and some professional experience (timeliness, good communication, etc.), though this is intended for a broad audience. Prerequisite skills should be:

  • Computer literacy
  • Git and GitHub
  • Rudimentary programming
  • Rudimentary HTML
  • UNIX command line basics

Our strong recommendation for this phase is a vocational programming school like Epicodus, PDX Code Guild, Code Fellows or an online program like Treehouse or Thinkful.  The cost for this has typically ranged from $3,000 to $5,000 depending on the curriculum.

Tier 2: Apprentice (4 months)

After completing 4 months of intensive, full-time programming training, graduates are inducted into a professional work environment where they continue to develop their skills and provide valuable, billable work. By now, their experience has eclipsed the prerequisites and they should be acquiring a basic familiarity with:​

  • Javascript & JQuery
  • PHP, Java, Python, Ruby or ASP (control structures, conditionals, OOP, arrays, variables)
  • Theming experience with CMS or Framework (Drupal, Rails, etc.)
  • Coding standards specific to their CMS or Framework
  • Database fundamentals
  • QA Fundamentals
  • Ticketing system exposure (Jira, Redmine, etc.)

Daily activities should include ½ hour per day code review or coaching with Staff Programmers/Coaches and weekly activities should include brief group meeting (3-4 interns + coach + 1 Senior Programmer) to discuss challenges.

The recommended employee arrangement should be minimum wage, 32 hours per week, and limited to a 4-month term. This setup ensures success for all parties, including the employer.

Ideally, projects for interns will be non-billable historical projects with existing technical specification and a completed codebase (for reference). There should be billable manual quality assurance from user stories on real projects for 1 (and certainly no more than 2) days per week and the business goals for these internships should center around offsetting hourly wage and "coaching" salary costs.

Apprentice goals should be to increase familiarity with HTML and framework competence while introducing libraries and DOM-level Javascript (JQuery, etc.), and other fundamental toolsets (Github, Basecamp, JIRA, etc.). 

Tier 3: Junior Programmer (2 years)

Once someone has completed training and apprenticeship, they will be ready for more independent billable work. This tier is lower paid, allowing for learning and mistakes that people are likely to make early in their career. It also helps to offset the cost of coaching they will likely require. Entering Junior Programmers should now have 1+ year of work experience, 3 months of training + a 2 month internship, or 1 year non-directed professional development experience to be properly prepared for a Junior Prgrammer role.

Their prerequisite technical skillset (above) should be well vetted at this point and their intermediate skill should resemble:

  • Advanced HTML/CSS + SASS & Compass
  • Intermediate Javascript & JQuery
  • PHP, Java, Python, Ruby or ASP (control structures, conditionals, OOP, arrays, variables)
  • Theming experience within a CMS or Framework (Drupal, Rails, etc.)
  • Coding standards specific to their CMS or Framework
  • Database optimization
  • Advanced Unix command line
  • Compass
  • Feature exports / configuration management
  • Library creation
  • Framework design patterns (dependency injection, hooks)
  • Behavior-driven development (BDD)
  • Essential understanding of the web security model (same-origin policy, cookies, SQL & code injection, XSS, XSRF)
  • Build tools and task runners (varies somewhat by company, examples are npm, grunt, capistrano, composer)Ideal projects:

Ideally, their projects would be billable client work with other developer oversight and coaching. Their goals would then be to increase HTML, drupal building, theming, module and jQuery competence while introducing advanced topics like Solar Search, AngularJS, etc.  Mastery of toolset (Github, Basecamp, etc.).

Hours of recommended oversight/interaction are:

  • 7+ hours/day of individual programming.
  • 1 hour/day of pair programming, code review or coaching with Mid-Level Programmer.
  • 1 hour/weekly group meeting (3-4 Juniors + 1 coach) to discuss challenges.

The recommended employment structure for the Junior Programer role is an entry level full-time salary plus benefits on a 2-year limited term.  In the Portland area salaries could range from $35K to $55K per year, with full compensation after benefits reaching $50K to $70K.

Tier 4: Programmer (3-5 years)

Once a developer has completed their term as a Junior Programmer, they should have the equivalent of 3 years worth of experience under their belt. They are now ready for a role in the company as a regular staff programmer and, after another 3-5 years, they should be ready to move into a Senior role. In the Portland area these salaries can range from $55K to $75K - with Senior roles paying above that, potentially well into 6 figures.

This is an open source plan and a call to provide a career onramp into an amazing industry with huge opportunity.   If we all work to take it, improve it, scale it, and modify it to suite our business needs we will be solving a problem with workforce shortage that will otherwise continue to plague us for decades to come. I encourage any company for whom this piques and interest to reach out with questions or comments on what is working for them.



Date posted: February 18, 2016


It seems like a bit of a jump from tier 2 to tier 3. If someone starts off with zero experience, they only have 5 months once they are done with their internship phase. How do you fill that gap?

Good questions!  The Junior Program itself ( a 2 year program) fills the gap.  The pre-requisites for entering the Junior Program are simply what people have learned over the 5 month (student + intern) program prior.

Does that clarify things?

I really like this idea. Have other companies adopted this approach? If so, which companies?

Love the idea. Have other companies adopted this approach?

How does a new college college grad in software engineering fit into this program?

Where does a new college grad living in Portland with a software engineering degree from Oregon State fit into this model?

As a student of the Code Oregon program, this gives me a better idea how I should be focusing my learning and what positions I'm suited for. Thanks.

This was just what I was looking into. I have found that there really is a lack of understanding when it comes to what to learn. However, this article is encouraging.

Add new comment

Restricted HTML

  • Allowed HTML tags: <a href hreflang> <em> <strong> <cite> <blockquote cite> <code> <ul type> <ol start type> <li> <dl> <dt> <dd> <h2 id> <h3 id> <h4 id> <h5 id> <h6 id>
  • You can enable syntax highlighting of source code with the following tags: <code>, <blockcode>, <cpp>, <java>, <php>. The supported tag styles are: <foo>, [foo].
  • Web page addresses and email addresses turn into links automatically.
  • Lines and paragraphs break automatically.

Metal Toad is an Advanced AWS Consulting Partner. Learn more about our AWS Managed Services

About the Author

Joaquin Lippincott, CEO

Joaquin is a 20+ year technology veteran helping to lead businesses in the move to the Cloud. He frequently speaks on panels about the future of tech ranging from IoT and Machine Learning to the latest innovation in the entertainment industry.  He has helped to modernize software for industry leaders like Sony, Daimler, Intel, the Golden Globes, Siemens Wind Power, ABC, NBC, DC Comics, Warner Brothers & the Linux Foundation.

As the CEO and Founder of Metal Toad, an AWS Advanced Consulting Partner, his primary job is to "get the right people in the room".  This one responsibility is cross-functional and includes both external business development functions as well as internal delegation and leadership development.

A UCLA alumni, he also serves in the community as a Board Member for the Los Angeles Area Chamber of Commerce, the Beverly Hills Chamber of Commerce, and Stand for Children Oregon - a public education political advocacy group. As an outspoken advocate for entry-level job creation in tech he helped found the non-profit, P4TH, an organization dedicated to increasing the number of entry-level jobs in the tech industry, and is in the process of organizing an Advisory Board for the Bixel Exchange, a Los Angeles non-profit that provides almost 200 tech internships every year.


Schedule a Free Consultation

Speak with our team to understand how Metal Toad can help you drive innovation, growth, and success.