top | item 23132387

My Mid-Career Job-Hunt: A Data Point for Job-Seeking Devs

319 points| luu | 5 years ago |philosophicalhacker.com | reply

267 comments

order
[+] say_it_as_it_is|5 years ago|reply
It's alarming that there's an idea among a people -- possibly bay area -- that mid-career is six years of experience. You are your own worst enemy with that kind of belief. People reinvent themselves and their careers many times over a lifetime. It's hard to return to certain types of technical work but never impossible, especially for those who are sufficiently motivated. You will reach the limit of a pay scale, but everyone eventually does, in all professions.
[+] sails|5 years ago|reply
I like the framing of a career into thirds of 15 years.

20-35: Find and build your skills/industries/networks and start to align that into a career. Don't be afraid to make mistakes to enhance learning.

35-50: Double down on the skills you have in the industry you know, build your personal brand, achieve your career goals.

50-65++: Give back to those earlier in their career, pay it forward, pass the torch etc.

With that framing in mind, mid career would be at least 15 years. I think what is interesting is most people underestimate how long their career is.

ps - I think the above notion is loosely based on a book I probably didn't read completely []

[] https://www.slideshare.net/BrianFetherstonhaugh/the-long-vie...

[+] stevehawk|5 years ago|reply
I feel like the bigger problem is that SV, or at least SF, is proving itself to declare programmers "over the hill" by 35. After all, if you're older than that then you're probably not willing to sacrifice 16-20 hour days to whatever CEO thinks he or she is sitting on the next unicorn.
[+] Thorentis|5 years ago|reply
Is it true you still need an "open source coding resume" by mid-career stage? I can understand using that to give you an advantage for entry-level roles, but by "mid-career" shouldn't your experience and achievements in past roles speak for itself? Or do companies still want to see engineers spending their spare time doing unpaid coding? By mid-career, many people have families to support, that they also would like to spend time with in their down time. Surely this is considered during the hiring process? I don't think I would want to work somewhere that expects a married with kids mid-level engineer to spend their weekends and nights contributing to open source, just to land their next job.
[+] ivalm|5 years ago|reply
I am curious what counts for “mid career”, he started coding ~6 years ago. Presumably he is in his 20s.

Here him talking about leaving philosophy:

https://www.philosophicalhacker.com/2014/04/22/why-im-glad-m...

Edit: LinkedIn ~agrees with this estimate

[+] ido|5 years ago|reply
I was also curious, as they didn't mention their age.

As the age of retirement is currently ~67 (depends on the country but unlikely to go down in the future) and we assume you start your career after college in your early 20s - let's say 22 - you get ~45 years of work.

Let's say the above is closer to a maximum than an average & "generously" go with a round 40 years of work; Then mid-career would be in your 40s.

[+] nikanj|5 years ago|reply
Ageism in tech is well-established and widely reported. If you're too old for the game by the time you reach 40, your mid-career does indeed fall somewhere in your late 20s/early 30s.
[+] lihaciudaniel|5 years ago|reply
>For the past 5 years, I hoped I was going to be a philosophy professor

Assuming he goes to university or somewhere. Because most people find it boring he should have chosen history, latin, or simply other humanities subjects. How does one even jump from tech to humanities anyways???

[+] georgeburdell|5 years ago|reply
I look at that resume and I wonder if it didn't hurt more than it helped; it's form over function, and a bit corny. The fact that he got multiple offers in two months shows how strong the software job market is.

I'm several years younger, but a staff-level hardware engineer at a second tier company (top tier being FAANG). I've had an incredibly difficult time jumping companies --- 2 years and counting. Despite being twice promoted since graduating with my PhD, most recently this past review cycle, I have yet to get past the first interview stage* with a top tier company, even with close friends at those companies referring me. It's quite frustrating and I wish I knew what the successful candidates had that I didn't.

* Note that for hardware engineering, the initial interview is a meet-and-greet with a technical question or two, so more laid back

[+] marcinzm|5 years ago|reply
It sounds like something about how you come off in interviews throws off red flags to the person interviewing you. Maybe you're too arrogant, not arrogant enough, not driven enough, etc. Most top tier companies will give you a list of personality qualities they are looking for that they expect you to show in the initial interview. I'd recommend doing a mock interview with someone you trust who has hired people to see what they can discern.
[+] unclebucknasty|5 years ago|reply
You should ask your interviewers after-the-denial, explaining that you would like to understand what they would like to have seen so you can continue to prep/grow. At worst, it'll be slightly awkward (doing this via email can help mitigate that) and/or they may ignore your request. At best, they may be impressed by your grace and interest in growth (never know how things will play out--you may be their second choice and hear from them again some day).

But, really you just want honest answers and most would understand that (as most can relate to your situation). As an interviewer, I'd be more than happy to explain if anyone asked me. But, now that I think of it, I don't believe anyone ever has.

[+] troughway|5 years ago|reply
> It's quite frustrating and I wish I knew what the successful candidates had that I didn't.

Have you asked your close friends or your coworkers about this?

[+] fatnoah|5 years ago|reply
As a hiring manager, I liked that his cover letter spoke to the job and his qualifications for it. A "form" cover letter is worse than none, IMHO. For the resume itself, I didn't like that 1/3 of it was the corny sentence, especially since it was on the cover letter, too.

That said, he did a pretty good job highlighting his experience, which is far more important than a fancy resume. In my most recent job search, I had 4 interviews, and for three of them, the interviewers were holding printouts of my LinkedIn profile, not my meticulously edited and formatted PDF resume. Good thing I gave my LinkedIn profile the same treatment!

Regarding your own opportunities, there's nothing like experience, though hardware seems to generally require more years than software.

[+] nikanj|5 years ago|reply
The market is very strong, but at the same time every single company insists on the hazing and crazy algorithm grilling. We should start accepting that not every company is FAANG, not every company is solving FAANG hard problems, and not every programmer belongs to the 0.001% best
[+] northern-lights|5 years ago|reply
When I was looking for opportunities in Europe (specifically tech hubs - Berlin, Munich, Dublin, Amsterdam but not London) few months back, I had cold-applied on the respective Company portals to about 100-120 different Software Dev roles.

My resume was definitely good enough to be pass the HR screening at Google/Amazon/Microsoft (as they did get selected locally), and yet the ones that I heard back from and agreed to give me a phone screen numbered in single digits (about 8 - Uber, Stripe and a few more). I was also in the high-skilled category and wouldn't have a problem getting the respective visas. And I did not clear for even 1 onsite. It's just that the competition is just greater these days.

[+] nnoitra|5 years ago|reply
Could it be that you are overqualified?

How was your PhD experience, do you think it has helped your career considering the opportunity cost?

[+] GoToRO|5 years ago|reply
I had a recruiter specifically ask me to use a similar style CV with very long descriptions. I guess when companies brag about having non-technical managers (and other gate-keepers) this is the key to getting the job. I did get an offer, only to later be canceled due to too many contractors in the company (above legal limit).
[+] ridaj|5 years ago|reply
> It's quite frustrating and I wish I knew what the successful candidates had that I didn't.

If you can ask your friends in top tier companies to give you a practice interview and give you feedback, I highly recommend it.

[+] nnoitra|5 years ago|reply
>I'm several years younger

The author looks 20 years old.

[+] WrtCdEvrydy|5 years ago|reply
> I wish I knew what the successful candidates had that I didn't

It's not what they had, it's what they didn't... unless you're going heavy into research, I would recommend NOT getting the PhD until you hit 45+.

[+] nnq|5 years ago|reply
> hardware engineer

Software's different because you can hire-fast & fire-fast. Unless you have broken processes and incompetent people surrounding the new hire, you can easily determine if they're good enough. Hack, it's even worth it to hire 2 devs for everyone you need and fire the worst performing one in a few months (flip a coin if they're pretty equal and can't afford them both).

Easier to get fired, easier to get hired. Churn and less from your employer giving a f about your career development. Every industry has its patterns.

Actually, imo the worst thing you can do as a software tech-lead is to structure your processes and projects so that hire-fast-fire-fast is no longer viable, do things so that your software is more like hardware - this is a sure way to inevitably kill the company/department you work for while "doing good work"...

[+] lynchdt|5 years ago|reply
Some perhaps unsolicited advice from a hiring manager in a company very similar to the great ones in which this writer was unsuccessful.

- Rare programmers won’t identify themselves as such.

- Most great companies hire for humility as a trait.

[+] eel|5 years ago|reply
While I agree with your advice in the general case, I also find the author's data point interesting and compelling. Receiving 2 offers from 7 interviews with only 16 applications is a good rate in software engineering as far as I am aware.

It's also worth pointing out that the cover letter mentioning "rare programmer" ultimately led to an interview and an offer according to the author.

[+] marcinzm|5 years ago|reply
So true, excessive ego is really problematic on an engineering team. There's a thin but very real line between confidant and egoistical. And most hiring managers err on the side of caution when seeing potential red flags.
[+] mettamage|5 years ago|reply
I want to ask a silly question. I know there are no such things as silly questions according to some people. In any case:

What happens if great companies do not hire for humility as a trait?

Is it truly as simple as: too many unkind people get into the company?

Or could one be more cynical and say: it's easier to not have humble people negotiate tough salaries?

Or is it something completely different?

I honestly don't know and have no reference.

[+] soneca|5 years ago|reply
I think I am not understanding your advice (or the post). I didn’t see where the author claims to be a ”rare programmer” or does not show humility.
[+] GoToRO|5 years ago|reply
I really hope is humbleness and not humility. But yes, managers want people they can control.
[+] t_1589165433|5 years ago|reply
How on earth do people have these experiences? I have to submit multiple hundreds of applications to get one interview.

Throwaway because it could turn into multiple thousands if that fact is linked to my identity.

[+] troughway|5 years ago|reply
Should "mid-career" software developers still be focused on low-balling themselves with having to do "career growth" things like this fellow, or should they plan their exit strategy to get out of that career trajectory entirely?

Assuming mid-career is actually mid-career and not the ageist SV type of mid-career.

[+] vmception|5 years ago|reply
I gave up on my midcareer job hunt once COVID19 hit because it was obvious that it would be a crowded pack, and salaries would go down, and desparate visa holders would be waaaay better at leetcode than me.

I think I also did 16 companies or so but being exposed to them took longer than before.

In the past I've also gone through 16 companies in one month through one recruiter before, fielded one or two offers and landed a job.

I think this took 6 months. 3 months of trying for the wrong higher position, and then the final 3 months getting serious about leetcode.

Regarding the article, I would say there isn't much to say about coding challenges, except be ready for them at all interviews now. The article mentions that it is a good test if the company can afford false negatives, which doesn't explain ANY of the startups. The signaling at all the companies is arbitrary but especially startups.

I'm just taking a cooldown period so that all the recruiters stop passing my old/current resume around (there are also SO MANY new non-tech opportunities during COVID19 war), with regard to tech I'm going to redo all my resumes to show less experience instead of trying to hit top of market in startup salaries and big tech comp packages. I get callbacks pretty instantly, which was reassuring but something about me wasn't hitting like it used to, even after I was solving the leetcode easy problems in 5 minutes.

[+] eacow|5 years ago|reply
I don't know why you think startups can afford false negatives. They absolutely CANNOT. One bad hire will kill a startup. Even spending the one hour to interview someone is a significant hit to productivity. It's the big FAANGs fo the world that can absorb poor engineers.

Also, for senior positions, I would expect candidates to not only clear most leetcode interviews, but to also have some insight from their experience. I expect them to be opinionated about areas of their experience, and have demonstrable success to back up their opinions. Only then can they come and lead and mentor a team of more junior contributors. A general guide line is, as a senior engineer, I would have hoped to have heard some insightful ideas or learned something from you in the course of your interview.

If you are clearning leetcode problems fairly easily, I wouldn't attribute it to a crowded market and "visa holders" being even better at leetcode (I don't even know what that means, do you think they go to better schools or something?)

[+] jldugger|5 years ago|reply
> For some of these companies, I applied with a non-traditional, branded resume. ... Since I only used these types of resumes with 6 applications, I’d say glowing compliments on 3 out of 6 is pretty solid performance.

If we view the purpose of a resume as getting an interview, then that's how we should evaluate changing them. By my reading Matt scored an interview 4 out of 6 times, a 66 percent success rate. Assuming the rest are the control, that leaves 10 applications and 3 interviews -- 30 percent!

That's pretty great really, but we have to wonder, did Matt randomly choose which companies got the experimental treatment, or were certain companies 'too risky' to try something new with? Or did he try to match up his application style to the companies somehow?

[+] austincheney|5 years ago|reply
The mid-career sentiment that I commonly see on HN is that many developers have almost entirely stopped developing despite remaining in a developer role. That’s really damn depressing. These people, myself included, want out but must sacrifice greater than half their income to move into something of greater interest or less depressing and that is a very tough choice to make.

The most common reason why these mid career people have stopped developing at work appears to be that they are well experienced while their peers are not. I suspect that instead of a nurturing environment where talent is developed the mid career people just sit there, because it only take one junior to be offended at not being prized with attention/praise to ruin any sort of mentoring experience.

[+] CalRobert|5 years ago|reply
"The most common reason why these mid career people have stopped developing at work appears to be that they are well experienced while their peers are not"

Everyone's different, but I used to spend a lot of my free time in the evenings and weekends hacking on side projects, learning the odd new tool or language, etc.

Now I spend them wiping vomit off my back, cleaning crap off of underwear, reading bedtime stories, singing songs, and making crafts. The side project time has gone down a lot.

However, it means I might be less competitive than others as time goes on.

[+] ganstyles|5 years ago|reply
Note this is for a PM role. This isn't mentioned for a long time into the article. I found that slightly annoying personally, as most people on HN seem to be engineers. But I don't think the experience generalizes, as someone who has received eng and pm offers from FAANG companies.
[+] cletus|5 years ago|reply
So I'd say anyone looking for engineering work should aim to have at least one (and just one is fine) of the following:

1. A good (and well-known) school. MIT, Stanford, CMU, UW, Waterloo, you get the picture.

2. A good (and well-known) employer. FAANGs in particular. Ideally as an FTE but internships are good signals here too.

3. To be known for something you've done. Well-used open source project, well-known blog, that sort of thing.

(1) and (2) fall into the category of "social proof" [1] and whether you like it or not, social proof can take you pretty far in life. Like in my case, it didn't take that long from working at Google to getting cold-called almost constantly (and I guarantee you there's nothing special about my situation).

My own job seeking experience (pre-Google) tends to be pretty similar to the numbers in this post (applications to interviews to offers). For those of you sending out hundreds of applications let me offer you some advice because I see a lot of people making easy-to-fix mistakes.

Hiring is a popular topic on HN and you see the same comments. There are always people who call a hiring pipeline a failure because a good candidate got rejected. This is the wrong way to approach this. The process is asymmetric.

A candidate is trying to get through each stage of the pipeline and get hired by somebody. Ideally they want multiple offers to boost the offer they end up accepting. "Success" is accepting an offer.

Below a certain size, a company wants to fill a role. It'll have N applications and the pipeline is designed to have filters along the way to winnow down that number to fill the role. "Success" is filling that role with someone sufficiently good. They don't have to be the best. Technical skills matter but usually only to a point. You have to bear in mind that you are a cog that needs to fit into an existing machine. Each step of the process gets increasingly time-consuming so the more you can weed out at the earlier stages while still filling the role, the better.

Large companies are similar except you don't tend to be interviewing for a particular role. There is a constant hiring pipeline. Recruiting may well be a separate org. You can use this to your advantage.

So, let's make up some numbers for our waterfall:

- Recruiting receives 100 applications

- The 20 best get sent to a hiring manager

- They may well eliminate half for various reasons passing on 10 to one of their engineers

- That engineer may well filter out half too meaning 5 will get called

- 3 of those will get interviews

- 1 will get an offer, another will be the backup

Like I said, completely made up but still instructive. And I'd say it wouldn't be too far off the mark for a mid-sized company.

The first thing is you need to get through a company's recruiting/HR filter. Well they look at the requisition ("req") they have and try and see if the application seems to fit the criteria and I really do mean seems to. This is what I call the buzzword filter. Anecdote: I once had a conversation with a recruiter who said--and I'm not making this up--"I can see you have 6 years of Java experience but do you have any J2SE experience?"

Some of it isn't buzzword related. Like if the req calls for leading a team, they'll look to see if you've led a team in the past. Depending on the company, the seniority of the position and so forth, factors like your school and previous jobs may come into play. Length of employment is a factor here.

So how do we approach this to pass this filter? Well we need to cater our resume to the job posting and see how it fills the criteria. We need to have sufficient buzzwords but not too many and not any we can't back up. This may hurt us later. Then again, it's completely valid to try and pass through early stages and deal with that problem later.

One point to consider is that the half the applications the hiring manager may never see. To be fair, a lot of job applications are garbage. My numbers are actually pretty generous. I've had people tell me that 90% of applications can be immediately rejected.

The hiring manager will have their own criteria and biases. They're trying to judge if you're someone who will fit on the team. Here lots of short jobs can hurt. There are cultural factors too eg in the UK I found having contracting on your CV would really hurt you for full-time roles (this was years ago; I can't speak for the current conditions).

Basically the hiring manager is looking for red flags.

The engineer will typically be looking for technical suitability. It's from this point onwards that various (ideally cheap) negative filters are used to try and reduce the numbers further.

And this is what a whiteboard coding test should be: a relatively easy problem just to see if you're not an idiot. FizzBuzz is easy for a reason. Engineers fall into the trap of thinking the problem needs to be hard. This actually reduces the effectiveness of the signal as you've turned a useful negative filter into a crap shoot of whether or not you know the "trick". For example, I had whiteboard coding problem once to reverse bits. Turns out (I found out later) this can be done in O(log n). I had never had need for such a trick so didn't know it. So what did that test accomplish exactly? Bit-fiddling is applicable to certain classes of programming, just not any I had and (more importantly) not the one I was interviewing for.

An early stage startup may simply be the hiring manager responding to emailed applications and they'll hire the first suitably qualified candidate they find because they really don't want to be doing this. A larger company may filter everyone through and then pick the "best" to extend an offer to.

So when you apply for a position, I would encourage you to think about what process that company has for hiring and treating it as a waterfall that you need to get through. Find out what you can about their hiring process. If you can't find out, make up something that seems reasonable given the type of company they are and their size.

The most important step for your application is to make it through the first 1-2 filters as those tend to be pretty dumb. Your CV needs to stand out from a hundred others in some way. A known school or employer is a good one. Absent that, allowing them to see some evidence that you can communicate in written form and/or actually code is a big plus.

[1]: https://en.wikipedia.org/wiki/Social_proof

[+] bradlys|5 years ago|reply
Education isn’t enough on its own for social proof. I know because I thought it would be. I couldn’t get a job to save my life after college even with UW on my resume.

Also, education is wildly localized. Turns out SV doesn’t care about anyone except those from UCB and Stanford (big emphasis on Stanford). Same with UW. Outside of Seattle, no one even knows about it. (I should know - I went there)

Maybe prestigious colleges are more well regarded outside of the Bay Area - at least here, everyone and their mother went to an Ivy League or similar.

[+] nscalf|5 years ago|reply
I want to add another option:

4) Have a wide range of items on your resume.

I have found that having experience as an engineer in Fortune 500 companies, startups, working at the only dev, level 3 support, building dev ops, joining a big team, owning back end services, reworking a database, etc. has given me credibility for most positions. Everyone knows you won’t immediately fit in perfectly to any role, but if you have demonstrated an aptitude to learn and adapt, you’re likely good enough for their role.

[+] cantankerously|5 years ago|reply
"Simply go to MIT and work at Google"

I say this in jest, but that isn't the most replicable path. For someone who didn't go to MIT and is mid-career, should one just throw in the towel and give up on the industry?

[+] charklet|5 years ago|reply
A fourth: have a specialization either in a technology, part of the stack, or in an industry. That allows you to stand out for roles that really need someone with experience in that area, right now.

That said, I think your 3 recommendations lean more to a "how to play the interview game on easy mode" than every developer should to do this. I feel like I may be exaggerating your intent a little, but it did read a little like "Go to MIT, work at Google, write a famous blog" :)

[+] urlgrey_|5 years ago|reply
I enjoyed the write-up. Iteresting that you say you invested too much time in writing. What are your readership stats if I may ask?
[+] _448|5 years ago|reply
You have a C program on your 404 page. That program should return either -1 or EXIT_FAILURE :)
[+] eequah9L|5 years ago|reply
The job of that program is to write "404". If that succeeded, returning 0 is reasonable. It should be checking the return code from that printf though!
[+] DrAwdeOccarim|5 years ago|reply
Does grad school and post doc count toward "years of experience" lol
[+] sp527|5 years ago|reply
The ‘wannabe philosopher to wannabe entrepreneur’ line in the Gradle resume was incredibly cringey. I suspect the author has a very poor understanding of how best to sell himself and this also at least somewhat explains his results (in addition to the factors he mentions).
[+] Nextgrid|5 years ago|reply
Maybe it's just me but I think that "branded" CVs come across as desperate and could be considered red flags that either the candidate is trying to make up for something else (lack of skills, etc) or is unaware of the performance of the job market (I guess if the market is really bad you might try a branded CV out of desperation, but software engineering is still very much a seller's market).

Branded CV is something I could see coming from someone fresh out of high school that is working off poor advice they've been given and to try and make up for the fact they basically have zero experience to show, but for someone with experience I'd expect that experience to speak for them instead of their word processor skills, and if that experience is not good enough then the branding wouldn't save it (unless you happen to be interviewing for designing print documents?).

[+] borplk|5 years ago|reply
I largely agree with you. However one thing to note is that different people are different. Some are easily impressed and not all have the level of sophistication you may expect in their decision making. If such a person is present in your way as hurdle it pays to give them what they want.

That's a big part of the difficulty of job hunting and hiring. Whatever advice you try to implement is a terrible idea for some subset of opportunities/people.

[+] mlthoughts2018|5 years ago|reply
This is terribly useless for anyone else. I’d go so far as to say it is not, in fact, a data point for anyone.

- 65 days is a very very short time to be on the market

- the coding interview experience of this applicant and requirements of the companies appears to be far more lax than most experiences in tech hiring

- it took place right around the pandemic / unemployment / layoff time period which is a nasty confounder to everything

- it focuses a lot on start-ups

- doesn’t give specifics on negotiation or salary numbers

It seems like a fine write-up and all, it’s just critical to emphasize this experience is not translatable to other people. If your experience happened to be similar to this, total coincidence. If you’re trying to predict a future hiring experience for yourself, this won’t offer you that.

If you just want to read about someone else’s experience knowing it won’t be related to yours for any reason aside from coincidence and don’t mind it is light on specific salary details, this is fine.