If you want to take your Angular applications from good to great, you need to learn more than the basics of adding a few components and services to your apps. In this deep dive, you'll learn advanced application architecture techniques, how to create libraries you can share across applications, and how to efficiently communicate between components. You'll leave with new knowledge to help you build sophisticated and performant medium and large Angular applications. In part one of this two-part session, you'll learn best practices related to component, service, and module organization as well as how to create shared libraries. In part two, you'll learn multiple techniques that enable advanced component communication.