A lot of my correspondence involves talking to non-technical people such as project managers, so I have gotten to figure out how to communicate many things to non-tech people.
1) I usually don't. Unless I really bombed on a problem and am stuck on solving a problem for so long, I really can't tell true negatives from false negatives by the tone of someone's voice, or what they say to me.
2) I apply to mid-level jobs. I used to apply to senior positions (have held 5 jobs) but as I'm getting so many rejections, I've lowered the bar since.
Going by the phrase, "walk before you run" I consider myself still in the walking phase for many skillsets, yet even if I apply to jobs that are less challenging to get into, many people assume I have enough experience to run and say I cover lots of ground but not a lot of depth to have an exceptional strong point. And this is coming from someone with a lot of experience in small companies, where "running" is the norm. I thought years of experience is just a number? Many people learn at different rates, and have a diverse set of work histories.
3) I do some research in questions I should ask, and what I should know about the company beforehand. Typically would be able to find some work they're doing and bring it up.
4) My go-to questions to ask interviewers is "how long have you been working at this company and how have things changed since then?", "What is a typical team size for engineering/development?" and "What is the onboarding process like for new hires?"
5) Interview practices are almost impossible with a friend because I don't know any close friends in the industry, or with any experience interviewing people in general. More of a homebody so I don't talk to many of them. Because of that, I don't believe a mock interview with a random friend is a good substitute for a real interview, because they will not have actual experience in hiring developers.