This is a post that I'll break into two parts: Candidate and Interviewer side.
In my career, I've been doing a lot of interviews (as an interviewer and as a candidate) for several companies and I think that I have some of the secrets to tell and help you get that dream job.
This sounds like a cliche but I don't know how many times I've heard: "I didn't know that this was a technical interview and didn't study". You don't study FOR an interview because the interviewer wants to know how much do you know about a specific technology, and that won't change in a day.
With this, I don't say that you don't have to study and learn more and more every day but you just don't study because you're going to do an interview, it's not a test, and the interviewer will know that you're just saying things that you read but don't actually handle right.
One thing that interviewers know is that you don't have to know EVERYTHING, the important thing is to learn how to say it.
If you say that you don't know something try to say it with a little enthusiasm or try to talk about what you think that is (don't try to say something false because that will notice), this will inspire interest in what you do.
Knowing frameworks and libraries is always a plus, but what really gives you that advantage in an interview is knowing the basic concepts of the technology you are working on. With this, you can know how to handle a lot of questions.
Remember, this is a career of logic, every single one of the frameworks, libraries, snippets, APIs, are just an implementation of the basic concepts of programming and languages they're built. So, if you know how something works, you can figure out a lot of questions.
This is maybe the most important thing that you have to learn but what you say and how you do it.
One of the things that most companies want is someone with a good attitude, who wants to help and grow with them, that can work on a team, proactive, who can listen, honest, and who wants to improve. Getting a job isn't something that's completely about who codes better than who, but who fits better for a given position.
I can see daily, people who are not super programmers, but someone thirsty for knowledge and willing to improve every day and try to become better and better getting the position because of their motivation and because it aligns better with the company vision. You can be a great programmer that wants to do everything by yourself, but if that's not what the company wants, then you're screwed.
Have to be noted, by this, I'm not saying that you should lie about yourself, but learn how to sell yourself to get what you want.
Even the best of the best got rejected at least one time and that's not entirely bad, the path to greatness is plagued with obstacles.
I guess we all know the history of Jack Ma, the CEO of Alibaba, about how he got rejected a lot of times from college and pretty standard jobs, or Michael Jordan, who got rejected because he wasn't that good at basketball. This is something that can happen to anyone at any job, the important thing is what you gonna do with that.
Learn what you did wrong on the interview and improve it for the next one, your dream job will be there waiting.
Thanks for reading my post, I hope this will help you see what the companies and interviewers want.
If anyone has something to add and help the community put it in the comments section, I would love to read it and discuss it.
I do this completely non-profit, but if you want to help me you can go here and buy me a coffee ;)