Expander graphs are cool.
Consider the following computer sciency problem: construct an acyclic network of "sorting gates" (which take x and y as input and output min(x,y) and max(x,y)) so that it sorts n inputs.
A merge-sort like algorithm had been known that worked in O(n(logn)^2) gates. It was an open problem for a while if it could be done with O(nlogn) gates (which would be the best possible). This was settled in the affirmative via a construction using expander graphs.