This book covers basic grounds of convex analysis (on R^n), similar to the classic Rockafeller's style, with a focus on duality theory. It starts with the basic properties and definitions for convex sets, functions (taking possibly values on the extended real line), and moves on to establishing a unifying geometric framework (the max-crossing min-common (MC/MC) framework) for various optimization duality results (such as duality for linear/convex optimization problems (including slater's conditions, complementary slackness), properties of subgradients, as well minimax problems). The book is rich with illustrative, graphical examples and counterexamples, proofs are often written with substantial details, though at parts it could be simplified. The use of the MC/MC framework (which is possibly a unique feature of this book) and epigraph correspondence is also a special feature of this book, giving a unified geometric interpretation of the various duality results that one might encounter in the convex optimization world.