Become a Software Engineer

Join the industry-leading training program for software, AI, machine learning, data science, & more
Gain the skills, foundations, and experience to become a software engineer at Tier 1 tech companies and beyond.
Technical Skills

Gain a foundational and vital understanding of software before specializing in the area of your choice.

21st-century Skills

Develop essential skills in problem-solving, creativity, collaboration, critical thinking, and empathy.


Optional last-mile training available to help candidates gain 6-12 months of work experience to access entry-level jobs.


What sets us apart

Our programs use 100% active learning. Coding is like sports: you don't become good by sitting in a classroom. You need to learn by doing, practicing, and correcting what's not working. Our program brings the workplace into a learning environment, and unlike other programs, we've been doing this for 20+ years around the world.


Complete basic coding exercises and small projects to qualify for Season 1.

Season 1

Cover fundamental computer programming concepts and learn the basics of C.

Season 2

Increase complexity and begin fullstack areas, namely front-end and back-end basics including data structures, algorithms, and databases.

Season 3

Begin the hard stuff: functional programming, network programming, and major technical portfolio development.

Season 4

Complete end-of-program project (large project) in specialty area tied to job or industry of interest. Contribute to open source projects.

Season TIPP

Technical Interview Preparation Program: complete ~40 technical interviews, exercises, and resume/LinkedIn profile. Apply for jobs.

Entry requirements
(hint: no degree required)

Our goal is to create pathways to the workforce. It doesn't matter if you don't have technical experience or academic credentials. Our program works well for people who think differently and love creating, making, breaking, fixing, and doing. You must complete the Pre-season to reach Season 1 and begin the curriculum.

Software Engineer Program 1

Our Approach to Learning

Project-based learning

Projects are based on real world problems and challenges that are designed to develop fundamental technical skills. Projects grow in difficulty, complexity, and size. Most students enjoy the challenge of having to solve a problem and find it more motivating and (let’s be honest) less boring than a lecture or online video.

Practice & Repetition

Confidence is directly related to what you’re capable of and what you know you can do, which is why practice and repetition are important. We use weekly and daily exercises as a means for students to practice the skills they’re developing. Practice helps reduce anxiety, especially during interviews.

Role Play

We use role play to develop soft skills such as job negotiations or conflict resolution. We also use role play in technical interview practice where participants will both be the interviewee and the interviewer. This dual-sided perspective is unique to our program & helps build better interviewees.


Changing career, learning new material, and getting a job can be tough and an emotional rollercoaster. We’re here to build a supportive learning community to help you own your transition into a software engineer role.

Commitment and Workload

This program is designed 12 months full time or 18-24 months part-time. Students can complete each season in a 3-month period and take breaks in between.

Currently, this program runs solely on campuses, though we’re working quickly to bring the program online for those who aren’t close to a campus.

Learners are expected to commit at least 40 hours a week full-time or 15-20 hours a week part-time to learning and we strongly encourage students to complete their work on-site. Since most of the work are group projects, students are more efficient, motivated, and learn more when they’re in community on campus.


What to Expect


Learn by Doing

Being good at technical interviews isn’t something you’ll learn by reading a book or watching a video. You need to DO them!

Mastery-based Learning

We use mastery-based learning: you need to master the 12 subject areas covered in technical interviews. The point isn’t to pass; it’s to be confident and able to use the skills required for software engineer jobs.

Software Engineering Program Curriculum

Required Fundamentals

All students are required to understand the basics of computer programming, starting with lower level languages such as C, and moving to higher level languages. This gives students a fundamental understanding of each language’s architecture, syntax, and strengths, and empowers them not only to learn another language quickly, but to truly understand how to problem solve when something isn’t working when using higher level languages.

Mobile, and App Development

Students will cover the foundations of computer programming before focusing on programming frameworks, system admin for deployment, cloud infrastructure, security, and front-end and back-end programming. Languages and tools covered include C, Rails, Django, NodeJS, Javascript, CSS, HTML, Apache, Nginx, MongoDB, Redis and more.


Students become well-rounded and cover foundations before shifting to architecture, cloud infrastructure and tools, scripting, Kubernetes, security, and tools/languages including Python, Ruby, Ansible, Chef, Puppet, Apache, MondoDB, Postgres, Django, Javascript, and more.

AI and Machine Learning

Students cover the foundations of programming, cloud infrastructure, data science, machine learning, algorithms, data structures, and advanced software architecture, putting all together to build real-world AI & ML applications based in the cloud that process data quickly & securely.

Cloud & Data Engineering

After coving the fundamentals, students combine software architecture with cloud architecture, learning how to build applications directly on the cloud using existing tools. This naturally includes covering use of big data and data engineering techniques combined with data science and memory management.


Students will have a series of projects to complete each season. These are problems and challenges to build software based on certain requirements and restrictions.

One example of a project would be to build a task-management software with tags, permissions, and a basic user interface.

Projects will be reviewed by those who have already passed the project to ensure your code is up to speed and for you to receive feedback on your work. This is part of the learning process.


Each week, participants will have 1-5 coding exercises to complete. These are accessed through our software in which students can complete the exercises.

Exercises will be auto-graded as well as reviewed to ensure your code is up to speed and for you to receive feedback on your work. This is part of the learning process.

We have over 900 exercises in our library with thousands of test cases!

Software Engineer Program Information


Students in our full-time programs are expected to commit to 40 hours a week and actively working with their group members to complete their projects. Students in a part-time program are expected to complete around 15-20 hours per week, depending on the program’s flexibility and requirements.


Costs vary by country, city, and campus.


This program currently available in-person at our Oakland location. View location options for upcoming

We are in the process of expanding. Programs are opening in Uzbekistan, Kazakhstan, and Australia in Spring 2020 via our partners.

Programs will also shortly be available online and a pilot signup is currently available.