The problems aren't restricted to mathy things (project Euler) or really super specific algorithm or optimization problems. They are more open ended, where often times much of the problem is figuring out what kind of problem you're dealing with.
The weird story arcs for each year are fun, too.
More hit or miss, but also https://programmingpraxis.com
You want: https://www.topcoder.com/challenges?tab=details or https://arena.topcoder.com/
If you ask this question, you are at least not a complete junior anymore. You may be trusted to program fogbugz in 5 minutes now.
Medium level ITers have in general more need for clear communication skills than for more code. A simple way to acquire them is trying to explain something to someone else. It's also fun to actually help someone.
Do you use it even when not searching for a job?
Other sites just haven't cut it for me. Some are heavy on arbitrary math puzzles with little focus on actual coding skills. HackerRank you spend half of every algorithm reading the inputs from stdin. Some you run out of puzzles and just have to repeat.
https://www.hackerrank.com/domains/algorithms?filters[status...
I like how easy it is to browse through other people's solutions and find neat tricks or ask for explanations on parts of code you don't understand. From my experience people will gladly reply with helpful answers.
It's also a cool way to be exposed to some lesser known mathematical concepts or problems that often make it into the questions.
It has a very playful presentation and progress system, the challenges are nice and the solution steps usually can be visualized well. Also supports a lot of languages.
For Full-Stack Web Dev: freeCodeCamp teaches quite a bit. App Academy recently opened their entire curriculum online for free, which also might be worth checking out.
Interviews - LeetCode