I've been doing development work professionally since 2000. In that capacity, I've been self-employed and worked for a number of firms providing work-for-hire development services. I worked full time for one mid-sized company (1,000's of employees) and it was not for me. I am now self employed again working on a second startup. At this point, I have enough savings to continue my current lifestyle in perpetuity whether I ever make a penny from my startup or not.
I've never heard the term "leetcode grinding" before but I assume you mean completing programming puzzle type interview questions. These types of questions might be prevalent at certain kinds of companies but I can count on one hand the number of times they were asked to me. I haven't interviewed as a candidate since 2013, though the hiring process I put in place at that company is still being used. There are some easy weeder type questions, but the process is largely practical.
It took me too long to realize this, but my time is my most precious resource. Investing a lot of time to get hired by a certain company is not a great investment of time. Recruiters will happily brief you on a firm's hiring process and share as much with you as possible to help you prepare successful. No need to do it if you're not looking. The more important part is to keep up on the new tech. If you're not getting it where you work, it's time to move on. Move on to the right company, one that provides opportunities for growth and needs and appreciates the skills you bring to the table. Find a place that's not going to expect you to work extra hours all the time. I regret working lots of extra hours when I was in my 20's. It did not help my career in any way.
In your free time, if you want to work on a project - at least pick something that you enjoy! If it could make you some income, that's even better.