Anytime our code makes a decision or produces modified output based on inputs, that's an algorithm. When we feed large quantities of data to our algorithms, we start having to worry about their performance scaling characteristics. Does processing twice as much data take twice as much time? Or more? Or less? In today's episode, guest chef Piotr Murach returns to explain how algorithm performance can be analyzed and characterized using "Big-O" notation. Then he goes on to demonstrate how we can programmatically verify our algorithmic performance assumptions. Enjoy!