algorithms, data structures and interview drilling