One of the key ingredients to software development is problem solving. Knowing all the technology buzzwords is great, but if you don't have problem solving skills it is a waste. Solving these problems is also what makes software development fun. At a...