An interview problem set for software engineers