Ask HN: Been writing code for 40 years and can't get hired

110 points by therealdavesky ↗ HN
Merry Christmas to all!

I would like to ask the advice of those who have possibly been in my situation:

I am over 50, and have been developing software since the late 70’s. Over the years I switched from being a full timer at Hughes Aircraft in LA to a part time consultant in Hawaii. Things went pretty well for decades, but after a family loss I lost interest in work for several years.

Since then, and after my skills no doubt became somewhat outdated, it is absolutely impossible to find work. The continuous news articles about the “great quit” where many folks are leaving work, as well as the claims that hirers are having great difficulty finding employees seem to be fictional from my POV.

Over the past few years I have been only interviewed once or twice a year by anyone who seemed interested, most notably Google and Facebook, but neither decided I was a worthy hire. At this point it seems impossible to get even a junior developer job! The only interest I ever see is from recruiters overseas, who seem to be matching my resume up with job listings by keyword only.

Does anyone have any advice for a developer who has been writing (and delivering) code for over four decades on how to find a job? How do I make someone believe they are hiring a developer who can deliver? I know it sounds ridiculous, but that’s the situation I am in!

189 comments

[ 6.4 ms ] story [ 177 ms ] thread
Maybe getting contracting gigs might be easier than finding perm roles?
contracting jobs are great, and I love them. its all about getting referrals, that has been the best route to new jobs, at least for me
In reading through this thread, I am not getting a clear picture.

What has changed and resulted in contracting jobs no longer being an option?

Personally I prefer to bypass recruiters and pitch to those with a compelling need for what I can deliver. Requires more up-front research but once you demonstrate your track record in delivering results the hiring process becomes smoother.

I am open to contract positions or permanent positions, no problem either way. It sounded like I was just a corporate developer from my original post, so I may have confused some of you, sorry about that. I thought putting out a whole life's story was too much me, me, me! stuff...
Get involved in some open source work so you can point it out? Yes, those keyword-driven recruiter things are a nonsense, but maybe that would trigger a useful one?

Also, contracting, as suggested before.

Big tech is very much ageist. It goes beyond discrimination during the interview process. Companies like this will take steps to weed older folks out of their company for good, it's awful. What programming languages and skills do you have on your resume?
I didn’t expect so many replies, thanks for the help! Over the years my skills have been spread across a variety of platforms: >>Most types of UIs: text based, old school assembly code, weak in react but strong in iOS >>2D / 3D interfaces and data visualization: 3D simulators and demos for aerospace >>Multimedia / Transmedia : After Effects plugins, music videos, analog studio expertise >>VRML visuals: did lots of live EDM shows on Maui in the nineties, the app is called SpacePark, but only runs in VRML

My “real world” resume i.e. "what have you done for me lately?" can be seen on the app store (iOS)

     huedoku  (its a color game)
     huedoku pix  (sharable games)
     oogiecam  (synaesthetic app, converts colors to sounds)

again thanks for the input
Most of those skills are still applicable today. I'm gonna go against what others are saying, I don't think you need to upgrade anything. I wouldn't apply to web companies unless they need an iOS dev. Objective-C is high pay but you should stay in the music industry if that's what you like. It's not like you only know ASM or COBOL.
Oh, iOS experience? Your skills are in demand in the e-commerce space. The past two companies I worked for were always looking for iOS/Swift developers. Keep applying!
Whenever companies lay off a significant amount of people they have to be very careful they don't fire more older people or they run into problems with Dept of Labor. Most FAANG big tech hasn't had to layoff much if ever yet but it's true for older companies like Sun, Cisco, Yahoo etc.
I would absolutely recommend contracting. Contracting world is full of bs and of profoundly unqualified people still getting paid well. Someone with a track record like yours will clearly stand out there.
sorry, i wasnt clear enough. the last half of my career was exclusively doing freelance work, Hughes laid me off in 1998.
Build a side project using modern tech. You’ll learn a bunch and then you can put those skills on your CV. I’m happy to look over your CV and guide you on stuff I would look out for. There are also programmes for people that have been out of the industry for a while.
+1 on this. Code some project on a pro bono basis using the latest tech, then use that as your ticket.
One problem with this is that when you learn a new technology on your own, you’re likely to use patterns and idioms of the language/tech you know best, and not the appropriate ones that an experienced developer would use. When the prospective employer looks at the code, it will often seem completely naive.

As an example, when I was trying to make the transition from C and Python to C++, I wrote a moderately sized interactive, real time, visual programming language. I didn’t ever show it to anyone, but I went back and looked at it a year later: I totally facepalmed because it was filled with glaring indications that I totally wasn’t a C++ programmer. For example, I often accessed an object’s members with “this->bar” (like in Python, where you use “self.bar”).

I certainly learned a lot, so it wasn’t a waste of time (and it was a fun project for me anyway). If I had a really good friend or mentor who would have been willing to invest the time to do an extensive code review first, then it might have been a useful demo. But at the time, I had no idea just how little I knew!

+1 learn, build and show.
here are two side projects, please let me know what you think:

huedoku.com (and the app on itunes)

oogiecam (on itunes)

thanks!

The first two Download on App Store buttons aren’t links to the App Store. (The third Same Same Or is, but is missing a game screen shot on the web. All Safari on iOS.)

Huedoko is fun for the first few plays anyway. I love the clever name. Being 4 years old and never updated may not “read” the greatest evidence that you’re actively developing.

The core gameplay is alright. It’s not going to be a game that I’ll find addictive, but the core gameplay was interesting and different in a generally good way.

What was missing was some of the challenge/fun elements of modern puzzle games. A timer, a target number of moves, maybe locking in the squares that were already correct. (Why would it move them anyway once I knew they were correct?)

It was also missing some polish. On an XS Max, it didn’t fill the screen. Every so often, I would end up with a solid red screen that I had to click on to proceed.

In your shoes, I’d consider using that app as the basis to rewrite it in React Native. That will give you a game where you know the core dynamics and gameplay, a modern platform that’s highly relevant and well-understood by recruiters.

For oogieCam, I got nothing at all useful until I realized I had to turn off the hardware mute button on my phone (which generally lives engaged but if you can find in software the fact that it’s set, you could give the user a hint). This one’s much more on me than you/the app, but a recruiter or hiring manager is going to be making a 5 minute judgment, so maximize your chances.

Best of luck!

Just quick perspective check: Facebook and Google are high bars to set for yourself. With some hyperbole we could say that’s like saying you’ve been paying the guitar for 40 years but neither the Beatles nor Stones would hire you. You could have a great and lucrative career playing guitar for, like, the Pretenders or something.
Each of those hire thousands of employees and they are saying that 40 years experience is less important than 6 months of leetcode. The analogy doesn’t fit
I think the analogy is quite correct. I am a fairly accomplished technologist but have failed every google/facebook interview I've had. I just can't do leetcode, and study for the interview. After a few failed interviews, I just don't accept interviews from such companies any more. I still make a decent living. Could I become rich at a FANG? Of course .. but there are other things more important to me to study (I study all the time .. just follow my curiosity .. not for tests). So my one piece of advice for the OP is aim a bit lower... there are tons of companies that are not fangs and still pay reasonably well for hard working, smart techies.
The churn rate of current software development practice is quite rapid. When you took several years off, you "fell out of the job market". In effect, you need to reboot your skill & tool set to make current.

In addition, you must reboot your interviewing skills. I've been a professional software interviewer (600+ interviews) and have seen most very experienced software developers do quite poorly during interviews. The interview skills required for FAANG-like companies and startups alike are very different from the skills required to work as a typical software engineer.

The interview is the gateway to getting the job. As such, good or great interview skills (i.e. algorithms, data structures, time & space complexity) are a pre-requisite to getting a job.

I hope that the above advice is useful and helpful.

WTF! It's your job to find people who can do the work. It is NOT the applicant's job to fit your preferred interview design. Talk about arrogance!
It's a description of reality. We can agree the situation is unfair, and that the big companies show an arrogant approach, but if you want to get hired you have to conform to what is asked and expected.
I get what you're saying but this attitude is what essentially says "Developers are ok with this crap so keep doing it please". Or, in other words, you say it's unfair but then participate anyways and whatever you say no longer has value.

It really doesn't take much effort. Non compliance to this kind of interview BS would make at of these unfair practices go away.

Maybe it is his job to execute the interview design.
Absolutely! You get fired if you don't. The hiring firm wants a quantitative & unbiased comparison of all candidates.
I take it you have never heard about the Criteria Cognitive Aptitude Test (or similar) that every candidate has to take nowadays even before being invited for a technical interview.
I’ve spent past 2 years interviewing at all sorts of companies (from FAANG to small startups to fintech) while working at my current place, and just recently accepted an offer.

Only counting those where i got all the way to the final rounds, my sample size is roughly 15-20. Not even once have I encountered anything even remotely similar to the Criteria Cognitive Aptitude test, and neither have I heard of it from friends of mine who were interviewing as well. I had a couple “take home programming challenge” things as a filter before the initial interview, but they were either leetcode-like or project-based, not some diet coke version of IQ testing.

With that in mind, it seems blatantly wrong to say that “this is everywhere these days”. Out of curiosity, what type of companies did you encounter that tested you with a cognitive aptitude test? No need for company names if you arent comfortable sharing, just curious about what type of companies those were (e.g., small startups or big tech or non-tech big companies or etc.).

If an applicant needs the job more than the company needs that applicant, then yes it is the applicant who will have to blink first.
There are thousands of people looking for jobs at any particular moment who "can do the work."

If you are searching for your next position out of need, then you are not special. The employees who can afford to have egos are those who are being recruited.

I agree, we interviewed some potentially skilled people that just didn't interview well. Even when I interview, I must have someone give me several warm up interviews.
If you "have seen most very experienced software developers do quite poorly during interviews" then you are the problem. Change the way you interview.
thanks. that is a good observation. tomorrow i will be talking with a meta recruiter who has already emailed me that i am "100% what they are looking for" ...but ... maybe would you like passing these coding tests first???
> I've been a professional software interviewer (600+ interviews) and have seen most very experienced software developers do quite poorly during interviews.

So... you've 1) realized you're dealing with experienced people and 2) yet discarded them based on irrelevant "interview skills"?

How does this serve the company trying to hire someone?

FWIW, the couple of times I've interviewed someone -- I've always given the guy a 2nd chance if I've seen he's obviously nervous or just not on a good day, but has the material. Even an autistic nerd like myself can spot that and have the common decency to look past trivial human weaknesses.

Besides, I'd rather pick a genuine human being as a colleague rather than some overbearing, over-social, potentially arrogant prick whose competitive urges are liable to disrupt technical decision making down the line. Those types belong in the suite & tie department, not in tech.

Interviews at FAANG don’t really work like that. The typical interviewer has very little say in metrics used to evaluate the candidate. Their job is to evaluate the candidate based only on those metrics, with little room for anything else.

Part of the reason is standardisation. There is lots of training given to avoid bias. I think you’ve misunderstood what the parent meant by interview skills. The criteria don’t select for social skills (beyond the basic), but rather for algorithmic skill. However, most day-to-day development will not require as much of it, which is the parent’s point.

I think most people are aware that the system is not perfect, but the process of determining the metrics (as far as I understand it; I’m a fairly new interviewer) is pretty data based. It’s been optimised to hire people without relying heavily on the interviewers all being very experienced (because that doesn’t scale enough for FAANG).

Also the 'metrics' being used to make the final decision are secret, most likely not known even by the interviewer. This prevents gaming the system but the lack of transparency makes it easy to imagine that MANGA companies choose new hires the same way that South Park depicted the FED making economic decisions: with a headless chicken running around and finally falling down on a big diagram.
> Also the 'metrics' being used to make the final decision are secret

The metrics are known. However, their weights may be unknown.

What is missing from the interview process is actionable feedback.

Some firms provide practice interviews (for pay) with detailed feedback.

> How does this serve the company trying to hire someone?

The interviews are designed to evaluate algorithm & data structure knowledge and proficiency. Most experienced software engineers have not kept up to speed with such knowledge since they were in school. It is not their fault, as most jobs/projects don't require maintaining such knowledge in order to be effective on a day-to-day basis.

N.B. The interview firm I worked provided the option for a second interview if the candidate believed that the first interview did not provide an accurate assessment of their skills.

In any STEM profession, one's academic knowledge "expires" in 5 years or so. Continual learning & practice (incl. interviewing skills) is a requirement to maintain employability in a field.

Like you said,

> most jobs/projects don't require maintaining such knowledge in order to be effective on a day-to-day basis.

This is common knowledge to any developer - you really don't need the academic angle most of the time.

So... how does rejecting on that basis serve the company trying to hire someone?

> So... how does rejecting on that basis serve the company trying to hire someone?

One way to describe the rationale is that the hiring firm is hiring for 2-sigma capabilities versus 0-sigma or 1-sigma capabilities.

The ability of a software engineer to "shift gears" to the 2-sigma skill set when outlier conditions (e.g. debugging rare events, performance issues et cetera) occur is a form of insurance against having to contract outside resources.

N.B. I am one of those outside resources that gets called in when none of the FTE staff can resolve a difficult (aka "burning platform") problem.

> The interview skills required for FAANG-like companies and startups alike are very different from the skills required to work as a typical software engineer.

What are those start up skills?

I was referring these common interview skills:

Understanding the problem

Stating one's assumptions

Verifying one's assumptions

Selecting a data structure appropriate for the problem

Selecting or describing an algorithm appropriate for the problem

Selecting test cases appropriate for the problem

Writing the code

Verifying the correctness of the code

Understanding & communicating the time & space complexity of your solution

N.B. IMO, the best programming language for technical interviews is Python. It provides many built-in data structures and methods that make one's solutions brief and eliminate the need to write a lot of boilerplate code.

I don't see anything special in this list

>It provides many built-in data structures and methods that make one's solutions brief and eliminate the need to write a lot of boilerplate code.

Could you name some? the most important / handy in your opinion?

Data structures:

vector/list

dictionary/hashmap/hash table

queue

priority queue

heap

Methods/Algorithms:

min/max

insert/delete

contains key

list comprehension

N.B. I've done most of my interviews in C and watching me code has been referred as "watching paint dry" because of all of the boilerplate code that I have to write.

It feels very standard, don't all language have it in their standard libs?

C# has all of this + LINQ (very handy list comprehension?)

Java probably too + it has streams

Idk about other

> It feels very standard, don't all language have it in their standard libs?

Many do. However, ease of use is an issue.

Some interviews don't allow you to look up the names of types & methods nor use IDEs that provide pop-up lists of types & method names.

You have to everything in a basic editor w/o IDE support.

dont forget graph theory. FB caught me off guard on a takehome project which involved contact tracing (very timely in 2021) Dyjkstra's algorithm (spelling?) and backward tracing through graph nodes
Yes, I forgot Depth-First Search/Traversal and Breadth-First Search/Traversal.

Those two algorithms are the workhorses of graph algorithms.

Advanced graph algorithms include Dijkstra's algorithm, Minimum Spanning Tree, Strongly Connected Components, among others.

In addition, dynamic programming (DP) also shows up as a more advanced algorithm/technique in high-level interviews.

Excellent list, thank you!
> As such, good or great interview skills (i.e. algorithms, data structures, time & space complexity) are a pre-requisite to getting a job.

This is so wrong. Headhunters are acting like typical bureaucrats and instead of adapting their approach to make it better at finding the actual talent (the whole point of their job), they push for developers to fit their stereotype tests better.

Just like back in the school when we had to learn what professors want to see in essays, instead of learning to actually write better...

absolutely on the skills evaluations! delivering code cant be summed up on a spreadsheet
The technical interview is designed to be a small-scale exercise in delivering code.

Some firms provide take-home problems/projects - typically with a time limit. Their objective is to provide a more realistic scenario for writing code while evaluating the candidates technical skills.

> This is so wrong. Headhunters are acting like typical bureaucrats and instead of adapting their approach to make it better at finding the actual talent (the whole point of their job), they push for developers to fit their stereotype tests better.

The interview requirements & assessments are driven by the hiring companies and not the headhunters.

Scaling technical interviews of this kind has created $1 billion companies recently.

Technology employers want an unbiased assessment of a candidates skills - like any other firm.

> The interview requirements & assessments are driven by the hiring companies and not the headhunters

And it's exactly what drives the bureaucracy, the transfer of responsibility. All you need to do is blindly follow the request in the most defensive possible way and no one will ever be able to accuse you of screwing it up. So you have headhunters who just follow the clients' briefs, client's HR follows their playbooks to cover their asses, and as long as they all get paid in the end of the month, who cares if you miss to hire some really talented people. It's developer's mistake, they should have prepared better for the test.

And I'm not trying to accuse anyone here of being guilty in particular, just to point that the whole process of hiring is deeply flowed by the very design. On the brighter note, it motivates a lot of really smart people to stay out of big corp world and go indie, which is actually great...

you are right, but maybe if they asked me "whats your best area"? and then asked me to do something imaginative in that area then perhaps that would reveal more of a developer's talent than mere algorithm testing...??
IMO, the reasons for algorithm testing are the following, but not limited to:

Unbiased assessment of candidates for "apples to apples" comparisons

See if the candidate has skills deeper than typical day-today skills that can called on if needed

Demonstrate an understanding of performance trade-offs that have profound economic impact on the delivered solution(s)

Demonstrate the ability to create solutions beyond "textbook" solutions when required

Screen out quickly candidates who lie about their technical capabilities on their resume

I hope the above list is useful and/or helpful.

> I've been a professional software interviewer (600+ interviews) and have seen most very experienced software developers do quite poorly during interviews.

It seems that -- to use some old AI jargon -- the difference is between "forward chaining" vs "backward chaining". Forward chaining is all about the set of tools and techniques to work towards a variety of problems. Backward chaining is all about starting from a specific problem and and curating the best tools and techniques.

Very experienced programmers will have spent most of their time Backward Chaining. New programmers will have spent most of their time focused on Forward Chaining.

Here is where I see the disconnect: it may take days to learn a new tool or technique. However, it can take years to learn how to curate the best tool or technique. Long term thinking is undervalued.

For additional information regarding current technical interviews please refer to this class offered by the Stanford University Computer Science department:

CS 9: Problem-Solving for the CS Technical Interview

https://web.stanford.edu/class/cs9/

You should contact a technical recruiter. There are I'm sure thousands of software development openings in your area from companies you have never heard of but with salaries that are 60-80% of FAANG.
i forgot to indicate where I am. if I was in silicon valley it may be a bit easier to get references, currently i am in the rainforest on the big island and they sub out all their tech to the mainland here.
Ok! Are you planning to stay there and try to work remotely? Or are you willing to relocate to an environment with more on-site work available?
hawaii is only a nice place to live if you have lotsa $$$ i am willing to relocate tomorrow. just send me an airline ticket.
Yes I have done this in my 40s: Go to a coding boot camp. Sure, you will be possibly the oldest one there, but do it. Do the work, stay humble. Choose a focus (front end, full stack, backend) and sharpen on the latest tech.

I went in-person, but remote learning could work. I highly recommend choosing somewhere where there is code peer-reviews and instructor reviews. Self-learning is harder than it looks when you have a family.

When I recently was hired, I noted they specifically wanted cloud programmers, not local desktop programmers. Therefore, make sure you choose a bootcamp that works with Heroku or AWS or Vultr, etc, to get that exposure.

Also, consider going to local meetups that focus on coding (meetup.com or other channels). Listen to what they're talking about and what the latest trends are. Some even offer mentorships.

You can do it. (And after you've done it, help others.)

> Over the past few years I have been only interviewed once or twice a year by anyone who seemed interested, most notably Google and Facebook, but neither decided I was a worthy hire. At this point it seems impossible to get even a junior developer job!

I don't see how you can have a mere two job interviews (that likely have many applicants each) and then arrive at this conclusion.

How many jobs have you applied to? What are you doing to stay up-to-date or get back up to speed?

obviously i havent applied enough. it is usually about 10 per month.
It really is a numbers game. You should apply to ten PER DAY.

Apply to some places you wouldn’t necessarily even want to work at, because they might surprise you by being better than expected, or meeting someone you think would be a great manager or colleague.

Also, message a lot of recruiters, both independent and those at specific companies. Recruiters move around a lot and may refer you to places you’d never think of, and jobs that aren’t well publicized.

Good luck! Please post an update here in a few months.

Some tough love here, from the parallel universe you. It was people like you in the late 1970s who inspired me to be a programmer (literally, talking to Hughes aircraft programmers on the bus to high school about the JOVIAL language), but one thing I knew by the time I was about 12, say, 1973 or so, was that aerospace engineering in the Hughes aircraft world was boom and bust. I did not learn programming until I was 21(completely self-taught), in the early 1980s, but what I understood from the beginning was that I had to keep my skills up.

Ever since then, even after getting a job as a program manager at Microsoft in the mid-1990s, I have continued until this day to assume that I would be fired and would have to find another job. Which means that I have studied every day for almost 40 years because I knew someday I would get old and less easy to hire. For the last two decades, I ran an extremely lucrative business, yet continue to keep my skills up.

But I haven’t heard from you is that you have tried to adjust to the market. The simple fact is, if you want to get paid what programmers get paid these days, you need to know what programmers know these days. After all, you made a good living in the 1970s because you had a special set of skills for that era. The easiest thing for you to learn at this point would be database backed web development, perhaps in python or (my favorite), Go. You could learn what you need to learn part time in about a year.

I have this same mindset and the same plan: Keep working, and keep learning. Do you have any insight from your many decades of experience that you would like to share? I would appreciate it.
Thanks for asking. It was a combination of studying the market carefully, taking measured risks, and trying to make myself more competent than 80% of my peers (I am not particularly smart and I learn very slowly, so I never expected to be much better than that).

I have always studied for one career path, and a backup. The thought about the backup was that if I couldn’t get what I wanted most, I would still have something I enjoyed. So I keep up on C but specialize in Go, which was a bit risky 10 years ago.

Another tip is that I have chosen areas that I like, but that are also somewhat challenging. For example, when I started out the first thing I did was learn assembly language because I knew it scared other programmers. Because I didn’t have a degree, I wanted to choose something that would make me irresistible to hire without a degree.

Finally, I thought for myself. When Microsoft called to hire me 25 years ago their own people were fleeing like rats from a sinking ship, because it appeared from the press at the time that Microsoft was losing the Internet wars. My own coworkers were selling their stock like crazy when I joined, and they said the good all days were gone. When I left four years later, my stock options had appreciated 1300%. It wasn’t that I was blindly supporting Microsoft, it was that I chose to believe my own eyes as opposed to what people who had nothing to do with the company were reporting about it.

When I left Microsoft it was during the dot com crash. I bought a small company that provided a service to eBay users and it made in the two digit millions over the next 20 years. My former friends and Microsoft were polite but uncomprehending when I did it, because there just wasn’t any concept of charging for websites at the time. I risk a small part of my retirement fund to buy the company, but not enough that it would’ve hurt the family drastically if I failed. Measured risk.

Getting up to speed with Go coming from another language isn’t a hard ride. I really liked Bill Kennedy’s approach, if you’ve got access to Oreilly (has a 10 day trial) his lectures are available there and you can power through those.
swift seems like a good choice for me, and i am about to release an AR app in swift that produces algorithmic music ... what do you think about swift?
Apple is greatly increasing its use of swift so that seems like a strong bet to me.
Swift is great. I am actually making a pivot to Swift & iOS/MacOS now. I would say it is more niche than you might imagine and you will be expected to know a lot about the ecosystem.
That being said, I think it is rewarding well payed work.
> But I haven’t heard from you is that you have tried to adjust to the market.

Modern market seems to ask from programmers something other than programming. Peter Norvig in the interview to Lex Fridman mentioned that today software is made of building blocks from Internet, not designed from requirements as it used to. For some reasons companies prefer to endlessly lose in dependencies wars rather than have good arguments for why something is developed and something is taken from outside.

The OP problem is rather pervasive, there are some pretty good specialists who can't find a position in months and years because market requirements seems to be rather odd. People who obviously can program and have experience solving problems for business find themselves expected to know technologies du jour when those could be some questionable rehashes of ideas of previous years.

> if you want to get paid what programmers get paid these days

The problem is today's programmers are paid for knowing - preferably early - the hot technologies instead of analyzing and solving the problems with good tools. If a person has enough experience, he may understandably question the kind of a hamster race, so these modern technologies look poor for him.

But that’s how the market works. I have been making bets on what technology would be useful for the last 35 years. There was no one to help me forecast it. I just do things like read hacker news and similar publications. By sticking to the basics while also focusing on areas that I liked I did pretty well. We get paid more than average because there are risks.

Also, I chose some hot technologies that I could tolerate because I understood that’s just where it is. I also learned algorithms on my own and understood when to apply them. If the market asked for hot technologies, you shouldn’t have to adapt. Otherwise you should accept a lower paying job.

> But that’s how the market works.

Yes, and that's the problem for programmers - those who'd prefer to solve problems better in the long run, which costs more in the short run.

In other words, there are programmers, who don't see a point in learning something which isn't really novel and isn't really progressive, but which is required to get a job. Some go for lower salaries, those are sometimes much lower - that's why people with high salaries e.g. from FAANG can be seen as delusional about their actual skills when compared with someone 1/5 of their salaries and stronger design abilities.

The problem - and the associated question - is what to do in the long-irrational market. One answer is known :) but it's not a particularly good one. Hope there are better ones -

> I chose some hot technologies that I could tolerate because I understood that’s just where it is

Sometimes market wants more than you could tolerate - emphasis on the last word.

Practice Leetcode for a couple a months. Then apply again to Facebook, Google and similar companies. There is a lot of luck involved when passing those interviews. So to increase your chances, increase your interview skills and increase the number of interviews. Good luck in your search.
i did that for the first FB interview, spent 6 weeks writing leet puzzles down by hand, thinking them over 3X before coding, and then solving the problems.

But then the interviewer hit me with a topic i didnt cover. wups!

I can relate. I don't enjoy the "pop quiz" type of interview questions, asking weird coding questions that never come up in the job. If it was just to find out how extensive my knowledge is and use it to converse on topics, that's fine, but they (Ama$on) use it as a all-or-nothing filter. One miss and you're out. We all have gaps.
You’ll need to get up to speed with modern interviewing practices. Unless you know someone - people don’t care what you’ve done. They care about how you perform in the interview.

True with most of the top paying companies. I’d suggest doing a 100 problems on LC (try the subject study guides first) before interviewing again.

Doesn’t sound fun but that’s how it is now. The bar is high for all candidates - at least for top paying companies. Haven’t seen one yet that lets you skip the bs unless you know someone high up.

I second that.

LC is https://leetcode.com/

There are other similar websites for practicing interview questions. The important thing is to use at least one of them.

I spent 6 weeks doing Leetcode problems, mostly medium-level ones. However when the take-home project was assigned, my submittal crashed on their end, even though it ran on my end on two different simulators and my phone! That pretty much canned my application there and then, even though the engineer agreed with me that the crash was VERY weird... it involved iOS crashing while adding a valid string to a Set, which was non-null! Given the opportunity, I could have quickly changed the Set usage to an Array, but that wasn't put on the table. In other words, a real-world fix didn't make sense to them!
> people don’t care what you’ve done. They care about how you perform in the interview.

I think OP is expecting a level of competence from interviewers that simply doesn’t exist anymore. He’s from a time when the initial conversation would be engineers only and absolutely focused on past projects.

> I think OP is expecting a level of competence from interviewers that simply doesn’t exist anymore.

No. OP has not realized that the job market has plenty of charlatans who can talk well, but can't do the job.

That’s why you need competent interviews. Charlatans don’t make it past engineers.
> Charlatans don’t make it past engineers.

There is plenty of evidence that this just isn't true.

Just ask someone to apply claimed knowledge to a novel situation. You can’t bullshit your way through that with someone who does work sitting in the room.
With respect, most of the charlatans I’ve seen over the years have been the people conducting the interviews.

Fortunately, that hasn’t always been the case, otherwise I wouldn’t be in the job I am today. But that does seem to be the exception rather than the rule.

Well, yeah, tough luck. There are people out there who keep complaining about talent shortage, and not finding people to do anything at all. But you go through their hiring process and it's all about 10 rounds of questions on OJ sites like LC. Plus they have a bar raiser round which is just basically more of the same.

This actually makes the problem much worse because the only people who are acing these tests are people who are investing their time in acing these tests and not people who are actually good at their jobs. If you found a job there is little incentive to do any thing at work, and you are just better off continuing to practice interviewing further, so that you can quit to grab another 50% raise in 6 months.

Ironically these kind of people are considered to be in high demand. Most of them haven't done one single turn key project their whole lives, and wouldn't know or even stay to do one if needed. The real ones who have proven track records of delivering projects aren't even considered hiring because they don't know a dozen ways of inverting a tree.

The world is an unfair place, most companies with these hiring processes, have moats which are pretty much an infinite gravy train, so its ok to do all this. This is the game, We just have to deal with this as we go.

Issues like these make me want to move into management and code on my own as a hobby. I am lucky to have a hobby that pays so well but I often see future of programmers bleak.

Just recently two of my friends switched their jobs. They may have spend maximum of 30 mins to prepare for their interviews in total. One is a manager and other is recruiter. Their interviews were quick and didn't take more than 3-4 hours each. Not only that they claim they enjoyed the interview process.

Our interviews are so grueling, we need to spend hours preparing for our interviews. We are treated like liars and need to proof that we are not lying. I don't know why we take this abuse and how we can fight it. It has been really frustrating for me lately.

Damn Straight. It amazes me how little interviewers seem to care about how_much_code_you_have_delivered... honestly, what else is there?
How would an interviewer verify how much code you have delivered? And what quality that code was?

I'm not trying to sound like a smartass. This is a real problem. I've been bitten before by candidates with big stories to tell about their past deliverables, but were a fountain of bugs once they were hired. Sometimes it's easy to tell, sometimes candidates background is a bit different than yours so you can't easily judge if them writing three customized discombobulators for flux capacitance use cases is something challenging or not. What is more, barely anyone writes alone. We almost all work in teams, and it's easy to claim N% of contribution to the code the team has written. In many cases you will be able to somewhat confidently speak about other people's code since you've been reading and reviewing it.

I was at AWS for 4 years and spent A LOT of time interviewing. We couldn’t find and interview qualified candidates fast enough. Lots of engineers doing the interviewing; few charlatans.

At AWS, however, it’s important to look at the well-roundedness of the candidate. It doesn’t matter how much code you’ve delivered if you’re an asshole in meetings.

Being a self-starter, earning the trust of your peers, and being highly-focused on customer experience are all soft skills, but are critical to ensuring success in the role. Hiring the wrong person is costly, and even then, many people at AWS wash-out in the first 2 years.

Soft skills and collaborative working habits are MORE important than writing code. Code can be taught. Being collaborative and thinking-like-an-owner is much harder to teach.

Maybe look for jobs at defense contractors?
One possibility is to chose a specialty that is in high demand, and where you are not competing directly with large numbers of younger people. So, for instance:

1. Don't focus on frontend work. There are large numbers of young people going through development bootcamps and there specializing in front end work.

2. Maybe focus on devops. Right now, in New York City, the top devops people are charging between $200 and $300 an hour. And, in my experience (and with some notable exceptions) devops people tend to be older. But this strategy would require you to push yourself very hard to come up to speed on modern devops, which is a vast subject. It really depends on your own self-discipline. If you don't know much about this topic, you'll need to study 12 hours a day for 6 months to come up to speed. But presumably you already know some of the languages that play a large role. Ideally, you already know Python, as Ansible still plays a large role in devops.

I would never work at a FAANG unless I had no other option. They will pay you handsomely, but they will take their pound of flesh. It's also extremely monocultural: your life, your world, your culture, is about their bottom line.

Personally, if I was presented with a leetcode interview (I was interviewing a few months ago), I bowed out pretty damned quickly.

You really need to catch up on the tech. In addition to what the other comments are saying, look into contributing: https://github.com/MunGell/awesome-for-beginners

Obviously, FAANG is for some people. You seriously need to have a very hard think if that is you.

What you are saying is true of only a handful of business units in these companies. The rest of the supporting engineering staff does like 5-30 hours of actual work per week and some of the most stress comes from feeling under utilized or unimportant.
Yeah idk what model the OP has of FAANGs in his/her mind, but it's totally misaligned with reality.

Some roles at Amazon fit that model. But most roles at bigcorps are where you go to coast, vs startups where you have to actually show results and put in a full 40 (at least) hours a week.

I must confess, I was recently hired by AWS. I didn’t see any LeetCode.

Maybe I’m lucky, but the hiring process is actually quite involved from what I’ve seen, and they have some very specific processes that they go through to try and make sure you’re a good fit for the team and will likely be able to do the job well.

Maybe some of the more dev-focused jobs do have a shared coding environment that they want you to use for the examples they will want you to go through, but they also tell you in advance what that environment is so that you can play around with it before the interview and so that it won’t be totally alien to you.

Think like an insecure beginner. Learn to write React JavaScript framework.

Don’t overthink this and don’t think like a technologist. If you can write small declarative code islands to put text into a browser you can get hired for six figures. You have to be willing to be trendy and preference tools over code while working with people in their lower 20s who may or may not value programming experience.

i hear you, but i need to think more iOS for the time being, what about swiftUI? is it still too early in swiftUIs life to write real apps?
I don't really know much about that job market but I would just point out that becoming a deeper expert in something very iOS developer specific might be a strategic mistake compared to learning just enough about the non-native apps people's needs to help them publish their apps on iOS.

With one group you may be a specialist now while with the other they may always have a proof you are not a true scottsmann if staying a scottsmann is their full-time job.

Despite various laws etc, don't mention your age on your resume, and only list a few previous roles (perhaps the last 5-8 years max with "more details available on request" or something vague). Don't put your graduation date etc. Don't list job history going back decades. Basically don't give people any ammo to think you are "old".

Bias - unconscious or otherwise - is real. It sucks but you may need to try to work around it and play the games. Don't lie, just don't mention it or bring it up.

Good luck.

I've been in this situation and I second this strategy. I removed ten+ years from my resume's experience section, removed graduation dates, and immediately saw an uptick in calls.

It isn't necessarily bias against age; it's bias against "overwhelming experience" that scares hiring off, for various reasons. But the result is the same.

It's probably nothing to do with your actual age. Your skillset matters most. You can either upgrade your skillset or look for jobs where your existing skillset puts you at an advantage.
> Since then, and after my skills no doubt became somewhat outdated, it is absolutely impossible to find work.

This seems like the obvious problem here. You need to make sure that you have skills that are relevant for the current job market. If you're an experienced developer then it shouldn't take you very long to get up to speed, but you can't expect to just not learn anything new and walk into a job.

I would recommend picking a technology, spending 4-6 weeks learning it (in this time you can also produce some sample project code that you can use to convince potential employers of your skill), then start applying for jobs.

I agree. As a follow up, the OP might benefit from posting the skills they emphasize on their resume and maybe we can confirm whether or not they are indeed outdated, and make suggestions on what new technologies they can learn.
same! oh the stories i could tell...
How many applications are you sending out and who are you applying to? Are you contacting recruiters? That's important information missing here.

I suggest looking at startups as I imagine the number of applicants is much less and interviews are less "leetcode"-oriented. Also as someone else suggested, you can look for consulting work, then if you want to transition to full-time you will have up-to-date experience.

Tell us more about what you want to do. There’s a lot of people on HN who hire developers.

Do you have anything you want focus on or do you pride yourself on being a generalist?

Architect, team lead, or pure development of a system from day to day?

And business domains that you’re especially familiar with or interested in? E-commerce, SaaS, aerospace, business systems, data engineering, etc.

Give us a little more and someone here might take an interest and be able to help directly. The start of the year generally sees an uptick in hiring due to some pent-up demand from the previously 30-45 days when a lot of business processes slow down.

I’ll second that. We’ve got potential openings for either React/Node or C/SELinux/FPGA work.
if anyone wants a lead engineer on a X-style project, something that is out in the fringes, a project with legacy code, unusual multimedia/3D projects, ATE (automated test equipment) projects i may be able to help you

also can help in most multimedia projects involving studio equipment, audio sampling, video processing, MIDI software, and old-school graphics.

forgot to mention, i am weak in react, i like it because it is similar to swiftUI but havent been able to come up with a good project involving react and the types of multimedia apps i am currently developing... if a good idea came up to me involving react and multimedia that's different.
Tech unfortunately moves at a blistering pace. Perhaps see where you'd like to pick things up and do a crash course of some sort (Udemy, etc).
I have two suggestions. I'm 75 with 54 years programming experience. I got a job because the employer (a university) couldn't find anyone to do the work at a pathetic salary. That's suggestion number one: find an employer who is desperate. The misconceptions and prejudices of the employment system would prevent my resume-application from ever reaching the person making the hiring decision.

The second suggestion is present yourself as a solution to an employer's diversity issue. You would have to lean very hard on this diversity angle to get past the recruiter and the HR office. Once you reach the actual decision maker switch to the benefits offered by a long and diverse career.

Good luck

thanks. i hear you on the desperate employer thing, that got me a job in 2001 working for DigiEffects when their code broke going from iOS9 to OSX
I'm 64 and been programming for 40 years. I am fortunate that I am able to not work due to a small military disability pension, plus I'll take social security soon.

My last experience was Facebook contacted me a few times, which I blew off because I knew they would never hire me. Finally I told them "You know I'm over 60, right?" and they got off the phone and never called back.

I'm thinking about doing some part time programming on one of the job sites. I'm not thrilled with throwing PHP together, so I haven't tried yet, and program for fun now. In the last couple of pandemic years I've learned Rust, Flutter and lately Blazor, which I just gave up on today. I installed Nodejs to learn React this afternoon. I'm looking for a pleasant way to earn money building front ends.

I conduct interviews for Facebook and we do not discriminate on age. I assume the recruiter just got the impression you really didn’t want to interview with us. I only do the coding interviews but every piece of interview feedback I write is focused on the same criteria and that definitely does not consider age. We don’t even refer to the gender of an applicant in the feedback, and comments on an applicants age would be a quick way for me to get dropped from the interviewer pool.
There is a feeling that you (being big tech) discriminate.

Not trying to say its true or false... Just saying that it's no different than race or gender.

Your coding interviews are THE filter that discriminates older people. They designed in leetcode-manner and that's clearly a sign that you want younger developers.
I said "You know I'm over 60, right?" in a friendly and informative way in case that could be an issue. The correct response would have been your comment, but instead was a quick exit and putting me on the no call list. You may not age discriminate, but that doesn't mean everyone one at Meta (Facebook at the time) does not.

I was aware of Mark Zuckerberg's comment which is why I brought up my age.

“I want to stress the importance of being young and technical,” he said. “Young people are just smarter. Why are most chess masters under 30? I don’t know. Young people just have simpler lives.” -- Mark Zuckerberg, Stanford University in 2007

https://www.quora.com/Is-that-true-that-Mark-Zuckerberg-dont...

Edit: I believe you when you say you don't age discriminate. That's because everyone is watching everyone else, including internal lawyers, to make sure you don't so as to avoid law suits. However, the person that called me was on a private phone call with me that wasn't being recorded, so they could get away with it.

(comment deleted)
This may be off topic, but I don't believe "most chess masters" are under 30, whatever MZ meant by that exactly. ("Chess master" is not a term used in chess.) Most top players seem to reach their highest rating between 35 and 45. Looking at ages of the current world top 100[0], about half seem to be over 30, half under. There are not so many players over 40 or 50 at the top these days though. A classical chess game often goes for 5,6,7 hours, and playing a tournament means doing that every day for a week or two. As most players reach 40 or 50, they start to fade after 5 or 6 hours play. It's stressful and tiring - a single mistake often can lose the game, and lose many hours work, sometimes lose weeks/months/years work.

[0] https://www.2700chess.com/?per-page=100

Great answer. And you can use that as a launching point for your next job. If you’re smart, and the job is sort of easy, you can use some of your hours on the current gig to study for the next one.