We deep dive into the process of analysing the source code and code architecture of an application with the objective of discovering security vulnerabilities, security design problems, and the blocks of potential improvements in programming practices.