How do you approach system design for a complex web application? In this video, I outline my methodology for figuring out which language to use, which framework to use, how many micro-services I would end up creating, where to store the data and what database type to choose, and what other services I would use to orchestrate my servers or various micro-services. I also discuss what continuous integration, continuous delivery and continuous deployment works and how you can use Github to collaborate and tie that in with tools such as Jenkin.