LeetCode has a collection of some of the best algorithm challenges online today. The topics they cover require knowledge of data structures such as binary trees, heaps, linked lists, and so on, which is why their challenges are a bit more advanced than some other websites. But the challenges are great if used to prepare for a software engineering interview.
They also have a Mock Interview section that is specifically for job interview preparation. They also host their own coding contests, and they have a great discussion board where people talk about interview questions, jobs, compensation, and other topics related to engineering.