I dont spend a lot of time on these kind of problems. But the times I do, it's an exillerating experience.
The most exciting stuff has been implementing things where I have been unsure if what I was trying to would be possible at all in a browser. The feeling you then get when it actually works, and you know that you've pushed a limit that you have never seen anyone do in the browser before, can' be beaten.
If you push yourself to the limit, think outside the box etc. You are going to need knowledge of algorithms.