The core principles behind maintainable software, the five SOLID principles, the software development lifecycle, and the methodologies teams use to run it, all through Ledgerly, a small invoicing app.
Welcome to Engineering Foundations, the first module of the Software Engineering Fundamentals course. Here you’ll build the mental toolkit every later module assumes you already have: the difference between code that merely works and code that stays easy to change. You’ll learn six core principles — modularity, abstraction, encapsulation, DRY, KISS, and YAGNI — then go deeper into object-oriented design with the five SOLID principles.
From there, you’ll zoom out from individual classes to the whole process of building software: the six phases of the software development lifecycle, and the methodologies — Waterfall, Scrum, Kanban — teams use to move through them. The module ends with a guided project where you plan and build one real feature for Ledgerly, a small invoicing and subscription-billing app for freelancers, from a rough idea to a tested, SOLID-respecting code skeleton.
Every code example in this module runs for real. Start with Lesson 1, where you’ll meet Ledgerly’s codebase and the principles that keep it maintainable.
Complete all 5 lessons to finish the Engineering Foundations module.