First, let me compliment you on wanting to improve your mastery of algorithms so that you can become a better software engineer. As I've seen all too often--on Quora and elsewhere--some people think that software engineering is just programming without needing to learn problem-solving techniques.
If you want to become a guru in algorithms, then you need to learn about the area to the point that you can teach it. After all, guru means teacher or master, and nothing helps you master a subject like teaching it. I recommend starting small. Pick an algorithm, or a few related algorithms (perhaps some sorting algorithms), and try to teach them to someone. In so doing, you will get a deeper understanding of these algorithms. Of course, you should be explaining not just the algorithms, but why they work and how fast they run (i.e., asymptotic analysis). You might stumble around, but that's OK; many people who became good teachers were not smooth as silk at the start. Keep trying until you can explain the algorithms well; at that point you'll understand them.
Then try again with different algorithms. Do so a few times until you get to the point where you're truly confident in your understanding of the algorithms. At that point, you will know whether you understand the algorithms. Once you know whether you truly understand the material, you'll be on your way to becoming a guru.
But that's not all of it. You should also be able to come up with algorithms on your own. Since you asked me specifically to answer your question, I will assume that you're familiar with Introduction to Algorithms. For the third edition, we made publicly available answers to select exercises and problems; you can find them here. Try solving these exercises and problems without peeking at our solutions. Then compare your solutions with ours.
I wish you success in becoming an algorithms guru!