I recently read an article where an engineer reflects on the jobs he didn't get, the stress of a job search, and the catharsis of admitting setbacks. That's a great attitude for sure, but one part of the article stuck out: rejection is considered failure.

In 2003, I was just a young C++ developer with a couple of years of experience working for a software consultancy in a small town. We did some great work that I'm still proud of nearly 20 years later, but personal circumstances dictated it was time to move to the city and get a new job. I was hungry for challenges. I believed I was talented and capable.

In 2003, the market for software professionals hadn't fully recovered from the dot-com crash. Jobs were scarce and there were a lot of people after them. I applied for any job that seemed like a fit, including a bunch I didn't want.

And it didn't matter. I got rejected over and over again. I couldn't even get an interview. Most of the time I didn't even get a response. It was demoralizing.

I finally landed an interview for a C++ contract development position with a company that I accidentally applied to twice. I nailed the interview and got the job. It turned out to be a great experience where I tackled hard problems, learned a lot, and was promoted quickly. I was soon managing the team I was originally hired to write code for.

A few years later with more experience and an improved market, I was ready to take another step. I landed an awesome job at Notion Solutions, a DevOps consultancy (although we didn't call it DevOps back then) that focused on helping companies and teams make better software. I got to travel quite a bit and I worked alongside some of the brightest people I've ever known.

At Notion, I ended up with a few assignments at companies that had rejected my application during my 2003 job hunt. I felt vindicated, because here I was the expensive "expert" they'd hired to improve their software processes and practices.

But as time passed and I became older and hopefully wiser, I learned how hiring really works. I learned that sometimes having the right skills isn't the same as being the right fit. I learned most companies review resumes as they receive them, selecting a few interviewees until a good fit is found. It wasn't Thunderdome, where applicants fought to the death until only a single winner emerges and everyone else loses.

I learned that many roles were filled from within or thanks to an employee referral. Some companies even award bonuses for a successful referral, because it makes great sense to hire someone you know over a faceless candidate whose entire professional existence is described on a couple of pages in a PDF. I learned hiring is time consuming, frustrating, exhausting. I learned that hiring was done by busy people trying to get a good-enough candidate hired with minimal effort at minimal risk.

And that meant that sometimes companies hired other candidates for reasons that had nothing to do with me. I didn't know who I was competing with and what made them stand out from the crowd. I didn't know what specific traits the hiring managers valued. I didn't understand the risks those hiring managers were mitigating when comparing my PDF to some other candidate's PDF. I didn't know whether I was simply too late to get serious consideration.

Remember the company that hired me after I accidentally applied twice? They relented and granted an interview because they thought I was being resilient. But really, I just forgot I'd already spammed them with my application.

They ignored me the first time because I didn't live in town. I would have to move to take the job, and they knew it would be expensive and risky for me. It wasn't because I didn't have the right skills or experience or education. They were actually trying to be considerate of my needs, not just their own.

Thanks to my consulting travels I've also learned that a few companies, some with names you'd recognize, simply aren't very good at identifying talent. I've seen HR teams eliminate candidates because their resume didn't mention some skill that accidentally made it onto the copy-and-paste job posting. I've seen company politics, pettiness, bias, and ageism affect hiring. I've seen poor culture, poor talent, poor processes, and poor management affect hiring.

And places where these things affect hiring usually aren't very good at making software. Your presence and mine, no matter how capable we may be, is going to be enough to change that. Being rejected by companies with bad software teams is good fortune, not personal failure. Rejection is God's protection I've heard it said, and I like the idea.

Sometimes there aren't any constructive reasons why you didn't get some job or another. Looking back, I realize the real failure in my 2003 job search was that I allowed rejection to affect my self-worth.

Learn from my failure. Don't do that.