Our mission is to help software developers improve their skills and grow into professional technical leaders who can increase the quality of software in the world.

Through an intense, structured approach that combines aspects of traditional in-class education with the apprenticeship model's emphasis on practical application and mentorship, the Weirich Institute of Software fosters an environment where professional developers are able to learn at an accelerated pace while continuing to fulfill their responsibilities at work.


Students accepted into the Weirich Institute of Software will join classroom sessions over the course of 4 months. This requires 6 hours per week during traditional work hours (9-5 CST). In addition to 6 hours per week in class, students will be expected to complete 12-15 hours of work outside of classroom sessions. This is an intense program and requires a significant commitment from students.

Students will join class, either in person in 8th Light's Chicago office, or remotely via Zoom. Classroom sessions will be recorded for viewing. Live coding examples and sessions will utilize tools that make remote collaboration and pairing easy.

If joining remotely, students are encouraged attend class and watch lessons together, rather than doing it on their own time and away from work. This is a collaborative effort and the classroom environment, and camaraderie and shared learning that we facilitate, is incredibly important to student success. We will work closely with you throughout the program to ensure remote students feel engaged, inspired, and connected to individuals in other locations.

Students are evaluated throughout the various courses and completion of a course requires the student to demonstrate mastery in the specified topics. The pace at which students advance will depend on their individual skill level and needs and the speed with which they progress through the lessons.

Instruction is customized based on the needs of the students and is subject to change. The program is meant to simulate the real world day-to-day job of a software professional, while providing a balance of lecture, group projects, solo work, and mentorship.

Improve your skills and begin a lifelong journey to mastery in software.

Software Architecture for Large Scale Systems


It's one thing to write simple unit tests or follow established patterns in a code base. It's another to design a system that you can rely upon and to understand how testing fits into that. To understand how to scale and maintain tests, rather than writing them out of obligation. To understand how to design under the assumption of failure and how to improve your confidence in a system.

At Weirich, students go from being able to work within the established architecture to challenging and improving that architecture, to eventually having the ability to drive out their own architectures from scratch as they lead new teams.

Reliability and maintainability are always at the root of our lessons and through the constant focus on these attributes students will become for effective and efficient developers.

Here we explore a wide variety of topics such as legacy code, object oriented design, DevOps, test-driven development, and project management. We'll explore programming languages in different paradigms using a toolchain that includes Ruby, JavaScript, git, Jenkins, AWS and Postgres, among other technologies. We'll leverage an existing application and ecosystem we have built for the purpose of teaching. This environment simulates a real-world production environment with all the challenges and pitfalls developers face in their day-to-day jobs.

  • Reliability

    Security issues

    Maintaining & scaling tests

    System failure

    Correctness and Robustness.

  • Communication & Collaboration

    Agile Development



    Code Review

    Part of a Larger Vision.

  • Productivity

    APIs & Frameworks

    Software design

    Efficient Production of Quality Work.

  • Maintainability


    Legacy Code

    Logging & Monitoring

    Constant Improvement.

Foster a culture of continual learning by demonstrating your commitment to education.

Request information


Weirich provides expert instruction from 8th Light's senior software developers.

Eric Smith, Lead Instructor

Eric Smith is an experienced software developer and coach at 8th Light who has trained teams of all sizes to adopt software’s best practices, and test various challenging portions of their system. He also leads code retreats that reinforces a developer’s fundamental skills by stressing illuminating edge cases.

To develop his training curricula, Eric draws from his extensive experience as a software developer and consultant. In addition to his duties as Director of Training Services, Eric continues to craft innovative software solutions for some of 8th Light’s largest and most challenging clients. A consummate polyglot, Eric has deliberately worked on projects that force him to build complicated products and employ many different languages to reinforce his code sense.

Eric earned both his Bachelor of Science degree in Computer Science and his Master’s of Science Degree in Video Game Development from DePaul University.


Tuition for the Weirich Institute of Software is typically paid by employers on a per-student basis. Students from groups underrepresented in the software industry are eligible to receive a scholarship to offset the cost of tuition. Contact us to discuss what this could look like for your team.