I applied to 23 positions. I was rejected by three with no interview, and twelve failed to respond.
Of the eight with which I interviewed, I was rejected by three. I received three offers. After accepting one, I discontinued the interview process with the remaining two companies.
Seven companies required coding challenges. Four of them were live (via video call), and two of those were in person. The three non-live challenges took anywhere from two to five hours a piece (a lot of that time was just setting up tooling).
I was rejected by three of the companies for which I did coding challenges. In no case was code quality offered as a reason for rejection. Two of the offers were from companies which did not require coding challenges. The offer I accepted was from a company with which I did a coding challenge.
Of the eleven companies which responded to my applications, one came from a personal referral, three came from LinkedIn recruiters, one came from a tweet, four came from StackOverflow listings, and two came from Glassdoor listings.
Two offers came from companies that reached out via LinkedIn. One came from a personal referral.
Applying and interviewing are exhausting. Pace yourself. Reward yourself for putting in the effort by taking time to relax, eating a cookie, watching a movie... anything that helps you forget the hunt for a while.
Applying with a few years' experience is much easier than doing so as an entry-level applicant. After 2.25yr experience, I received the same number of offers with one-quarter as many applications.
Referrals and recruiters are fantastic ways to find job openings that are likely to turn into job offers. I've heard from companies on StackOverflow, but LinkedIn is by far the most fruitful source of recruiting in my experience. Andrew Brown's post about LinkedIn was instrumental in my profile design (feedback welcome!).
It's worth learning "interview trivia" and common coding challenges, but don't spend disproportionate time on it. A better use of your time is practicing selling the skills you already have. (Remember, I'm applying on the east coast - Silicon Valley may place a higher emphasis on canned interview questions).
Keep up with the people involved in your interview processes. Recruiters are almost always willing to accept a LinkedIn connection request. And many technical interviewers are worth connecting with just because they're interesting people, and it's great to keep in touch.
Don't accept any offer too quickly. If you're getting interviews, you will eventually get offers. If there's a tight deadline to respond to an offer, and you're not feeling awesome about it, wait (if you financially can). There's a good chance a better offer will come along.
I'm transitioning from junior Full Stack Developer to mid-level Software Engineer, a more backend-focused role. I'll be transitioning from waterfall to agile and from a testless environment to a heavily unit-tested environment. Both of those skillsets are important for my long-term career development.
If there's anything you'd like to know about my job hunt strategy or experiences, I'd love to help in any way possible!