I read the article. I don't have direct experience with anything like the author describes -- I haven't gone through an interview process like that in 40+ years programming. I haven't even interviewed for over 15 years because I switched to freelancing. I have read many accounts of similar job hunting grief, and heard about it from friends and acquaintances in the business, so I know it happens a lot. Some thoughts.

- A lot of people in tech have limited and narrow experience. They've worked with one or two tools or languages for a few years and struggle to adapt to something else. That leads to thousands of developers chasing the same handful of jobs that look just like what they used to do. Constantly work on new skills. Fads and trends come and go, pay attention to what companies actually use rather than industry fashion. The best place to learn new skills is in the job you have -- offer and volunteer to branch out.

- Ideally, companies look for and hire people who can add value and solve business problems. That requires domain expertise along with programming skill. Don't ignore the business around you when you have a job. Learn the jargon and how things actually work. Look for novel problems you can help solve. Get to know people outside of your team or tech group. That can also increase your real network (as opposed to fake LinkedIn network) so when you do need to find a job you know people who aren't fellow nerds from the last cubicle farm.

- The best way to get a job offer is to have a manager or respected person inside a company put your resume on the hiring manager's desk with a personal recommendation. "I worked with Jane a few years ago, she was one of the best people in her group." That kind of referral is worth 100 times more than getting through resume screening or showing how to balance a tree on a whiteboard. Think about that at the job you have. And don't just focus on other tech people in your immediate group -- people in other parts of the organization can turn out just as, or more, valuable as referrals in the future. A CFO or (from my own experience) warehouse manager who says good things about you counts for more than what another programmer says. Cultivate real relationships, don't rely on fake networking and contacts on social media, everyone has those.

- Too many employers really don't know how to attract and identify good candidates, much less how to interview. They write bad or generic job descriptions best interpreted as a wish list rather than anything to do with the actual job expectations. They pose dumb questions and programming tasks they think tell them something, but they don't have any data correlating the results of those exercises to job performance. Like the US citizenship test, most people holding jobs in the company would fail the tests they use to interview candidates. In all the years I did tech interviews I never got any guidance or training in that process, just legal guardrails to protect the employer from discrimination lawsuits. The whole interview process seems made up and badly copied from what tech managers think Google or Facebook do. It doesn't help that every single company thinks they need to hire from the top 5% of people.

- A lot of job postings get hundreds or thousands of unqualified applicants spamming their resumes out, foreigners hoping for a visa, people fresh out of school or bootcamp aiming for senior positions, etc. If you've been on the receiving end of that you know it takes time just to go through the applications and resumes, which leads companies to use software to look for keywords, unqualified HR people to do the same, recruiters who may or may not know what they're doing. Your letter and resume may get just a few seconds of attention. Professional contacts can help you bypass that step, with the goal of getting your resume in front of a hiring manager.

- I've wasted time with too many unprepared candidates called in to interview. They don't know what the company does, ask dumb (for an interview) questions, have non-negotiable demands they could have researched in advance, call attention to their perceived shortcomings or preferences ("I'm an introvert," "I refuse to attend meetings"). They focus 100% on technology trivia but have no domain expertise. I know interviewing for a job creates an anxious and stressful situation, but a little bit of coaching in social skills and speaking to a stranger or a group goes a long way. Locking up or melting down in interviews? Join Toastmasters, practice, grow a personality that extends beyond your IDE dark theme preference. Ask questions about the business and the people, not just about which build tools they use. Engage with the interviewers instead of treating the process like an interrogation. People form a first impression in a few seconds after meeting you, based almost entirely on superficial traits and things like eye contact and tone of voice. Accept that's how humans work and get better at presenting yourself.

- Some skills have long-term durability and apply across business domains, and some skills are fashion and fad or of limited utility. Almost every business uses relational databases and SQL, spreadsheets, cloud hosting, one or more languages from the C family. Work on the fundamentals, the skills that have long lifespans and broad applicability, because that makes you more adaptable and more valuable to potential employers. If all you know is Typescript and React, or gluing APIs together, you have limited yourself to a narrow slice of possible jobs.

- Almost no one implements comp sci algorithms and data structures day-to-day as a programmer. Some people do but most of us use a library function. You should understand basic data structures and algorithms, complexity and cost, and have some idea when you might choose this or that approach. The current craze for presenting comp sci-type problems to candidates who will actually work on legacy code that does something mundane started because a few Silicon Valley companies did it and everyone got on the bus to feel important and interesting. I hope this stops and employers return to interviewing that identifies people who will fit in and produce at their organization on their business problems, rather than deluding themselves that they will snag that top 5% to crank on their legacy software and backlog.

- Make it clear you like to work on legacy code. Maybe you don't, but you will find a lot more of that work than green fields projects perfectly aligned with your tech preferences. When the employer does start a green fields project you're in a much better position to get on that team if you're already working there and have a track record as a problem solver. I have interviewed people who tell me in the first five minutes they hate working on other people's legacy code and only want to work with their favorite language. They aren't going to get hired -- green fields projects have too much risk already and I'm not going to add to that risk by taking on a fussy person with no track record in my business.

- Look outside of the tech company domain. Lots of companies in other lines of business have jobs but get few applicants. I worked in enterprise logistics for a long time, every place I worked was short of people. I suppose that's because the work seems uninteresting, the tools are not the latest fad talked about on HN. You'll find more jobs open today in logistics or health care or retail than you will find in startups.

- Don't expect much training or mentoring. When I started in my career every new job included training and mentoring because the employer had to provide that. Now the employer expects to fill their job opening with the most perfect candidate who already knows everything and can show productivity from the first week (although they won't have an onboarding process to help that happen). As a freelancer I learned how to identify and solve problems right away, and how to focus on business needs rather than tech trivia, so I bypass tedious applications and interviews. I think companies should hire junior people who show drive and intelligence and willingness to learn and adapt and then invest in those people to train and mentor them. I won't hold my breath for that to change, though.

- Too many managers and interviewers delude themselves imagining they're on the cutting edge of tech, when they are doing the most pedestrian things. "We're experimenting with AWS S3" as if no one has done that for decades. "We're looking at writing an API" when they actually FTP XML files back and forth. I don't know if that's ignorance or a need to feel relevant and exciting in a not-so-interesting job. Most companies don't need the top 5% or the algorithm genius.

- In all but the most elite organizations productivity across people is not 1x to 10x, but 0x and 1x. Way too many people add almost no value, solve almost no business problems, and just warm a chair most of the time. Shoot for 1x to start. Don't say this in an interview because most likely the people across the table think of themselves as close to 10x, so you have to make them feel 10x by solving the algorithm puzzle they got from Reddit.

I've survived at least three of these booms and busts. This one will pass too, but as always the lowest ranks, the least skilled and personality-impaired people, will get left behind. Don't take it personally, that's how the so-called job market works. We probably can't change the system or the stupidity of modern interviewing and hiring at scale, but we can make ourselves more attractive candidates and more valued employees.