The current state of the hiring process in tech companies has really affected me. I'm, by nature, a very shy person who doesn't deal with rejection very well. Because of this, I tend to apply at jobs where my hiring is a slam-dunk because it's so routine and easily within my skill-set. It results in jobs that aren't particularly fulfilling but gives me plenty of time to work on technology I'm interested in my spare t…
Tech interviews are an exhausting, often humiliating experience. Some companies claim to do it better (e.g., see Asana's post a few days ago) and more humanely, but by and large the process is designed to break the candidate: to see the limits of their skills and aptitudes. Excellent in theory for the company, but very hard on the candidate.
Even if you do mostly-great in an interview, you'll probably not quite finish the programming assignment, and feel like a dunce for it (and you'll know the answer on your walk back to your car). If you don't get an offer, it will serve as confirmation of your ineptitude and you'll kick yourself for it.
It's super tough and I have very good friends --and easily world-class 1% engineers-- who have crumbled during the process.
My advice: you seem to know yourself pretty well. That's so valuable. Play to your own strengths and don't bother trying to toughen up for interviews.
Oh, advice #2: get into an awesome job via a friend, if you can, and maybe your friend can make sure they don't haze you too hard.
Good luck!