That's all I needed to hear. Back in the day, the college you went to opened (or shut) doors to get interviews. And most people, who did not attend an Ivy League school or similar, rejected the concept as being anti-meritocratic.
However, today, it's the same thing -- just replace college with the company(ies) you list on your resume. A shitty programmer with a bad attitude from Meta, Google, etc. is far more likely to get opportunities than the best programmer in the entire insurance industry, or the person who wrote the greatest dry-cleaner management software. It's quite unfortunate.
This is true, but I think you have the reason misconstrued: it isn't that working at a FAANG on your resume provides a signal of greatness, it's that it guarantees a reliable floor competency. The recruiter is concerned with making her quota just as much as finding rock stars, if not more, and ex FAANG candidates probably stand a higher chance of making it through the interview funnel on average.
I disagree. FAANG experience only demonstrates that, at one point, somebody believed you could do the job. There are dead-weight employees at FAANGs (and everywhere of course) who don't really have much competency (or perhaps one very specific competency that's only valuable in that specific role at that specific company, and virtually nothing else). There are also people who were once terrific, but have burned out, turned focus towards their family, were amazing at some obsolete tool/language, etc, started (or stopped) using drugs regularly, etc
I do agree that recruiters are not looking for rockstars but just anyone to fill a spot.
People that have a family but don’t focus on it will never be exceptional employees.
They will tell themselves sweet little lies all day about how their need for external validation and appearance of being busy / important is actually in service of their family.
They lack the ability to reflect, put something more important above them when there is no validation, and won’t take honest ownership either.
> There are dead-weight employees at FAANGs (and everywhere of course) who don't really have much competency (or perhaps one very specific competency that's only valuable in that specific role at that specific company, and virtually nothing else).
Sure, but if they were able to fool everyone enough to remain employed for a while (and didn’t depart on bad terms), then they’re likely to be able to do the same again, which means everyone (who is relevant to the hiring decision) wins.
Not really. I, as the hiring manager, have a lot of interest in someone who is productive and can help out (among other qualities obviously).
And in fact I have become very critical about people coming from FAANG when hiring into a smaller company. The problem is that they are often overestimate their abilities, aren't easily able to adjust from a big corp into a more dynamic, fast environment being hands-on and - which is the worst - don't see the problem with themselves but with their employer.
That being said, there are certainly brilliant people at FAANG. But most of those don't apply at smaller companies anyways. Leaving me with candidates that aren't a good fit, despite having a great resumee.
The recruiters just spray and pray wildly. Since 2020, I’ve had:
- A recruiter from Google reach out to me about an Engineering Manager position - I’ve never managed anyone in my life.
- A recruiter from Facebook reach out to me about a senior software engineering position even though the last job I had at the time that had an official title of “software engineer” was two years prior and I had no details about what I did and the company I worked for was unknown
- two recruiters reaching out to me from Amazon about “exciting software development opportunities” - while it clearly showed on my LinkedIn profile that I was working at AWS.
- There's a first time for everything, including management
- The facebook thing is a little weird, but if you had some software experience, and two years isn't THAT long ago, it may be worth a try. As much as everyone says you need perfectly crafted resumes, sometimes there's detailed information missing. People know your only human and capable of being a bit vague on a resume, or entertaining opportunities you didn't initially envision.
- As far as I understand, this isn't weird at all. It seems the culture at Amazon is to hop around teams, if desired... I think you only have to put in 18 months to be an "unrestricted free agent". I've been told that a big part of success at amazon is predicting the right time to leave doomed teams.
> A recruiter from Google reach out to me about an Engineering Manager position - I’ve never managed anyone in my life
There has to be a first time managing a team, no?
Some people view changing roles from IC to leader as career progression.
Maybe the recruiter saw something positive on your resume and thought: hey, this person might make a great leader and maybe they’d be interested in a next step in their career.
However, judging by your reaction, you probably aren’t / weren’t ready so win/win.
I would hope that Google has more sense than to hire someone as an EM with absolutely no management experience and no experience working at any large company. They would have never hired me. It’s more speaking to recruiters than the hiring practices.
Besides my LinkedIn profile where I was reached out at is purposefully sparse.
> it's that it guarantees a reliable floor competency.
Meh. Most of the ex-FAANG people I worked with at non-FAANG places continue to apply super duper mega scale practices to human scale products and completely fail at what matters.
I once asked recruiters how many candidates they review before they hire a senior engineer. Some answered 200! So the fact you worked in FAANG is not a reason to reject, at least not on recruiter’s level.
as someone who started their software career working at 3M of all places (shitty software practices) and slowly worked my way up to a tier-2 software company (just below faang) with a total comp of $200k+, don’t sell yourself short. Oh and i went to a state school, and also applied for these jobs directly online, no referrals. Where you start doesn’t matter if you are motivated and have some luck along the way.
Yes the rich and smart have a head start, they are dealt better “cards” at birth. That’s true for EVERYTHING in life. That has nothing to do with software.
100%! I’m blessed to be in the position that I am. But everything is relative. Some of my colleagues have it so much easier than me, because they went to school at Berkeley, etc. Started off their careers directly at a tier 2 company as interns! Got those sweet RSU’s at 22 years old.
The goal of my reply was to encourage others and make them believe they can do it too. I endured some hardships on my journey (no connections to the tech industry, went to an average state school, etc). Others will be enduring much more, and i acknowledge that.
You're right, some of us couldn't afford college and so went into tech because back then it didn't require a degree. Worked their way up from a call center to web and software development. Learn some stuff along the way and release a game for the xbox 360 all while maintaining that career they worked so hard to build, only now they are a Director within the industry teaching others and directing others on how to build planet-scale data lakes and distributed systems. :D It's not about money (though we think it is when we start), it's about fulfillment and doing what you love.
Yeah its best not to compare hardships and when the people more privileged than you got their RSU's.
What you have is someone else's envy so keep the first statement and drop the rest.
I also did not find that my time at BUSINESS hurt my interviews. If anything, I suspect developers at non software businesses would have more room to explore and grow, or stagnate, than at a more tightly controlled tech company.
Perform miracles at BUSINESS and you may not even be recognized for it. You might also not get recognized for doing absolutely nothing.
Would the person who wrote the best dry-cleaner management software do well at a company like Google? That is, I think a lot of the required skills there are ‘getting things done in a company the size of Google’ and having worked at Meta for a few years is perhaps a better signal for that than having made some great software. Likewise someone from Google may have a harder time in some startup where the structure is different and they don’t have all the fancy google tools or services. To be clear, I don’t want to imply that someone who makes great dry cleaner management software is a bad programmer or that they couldn’t be successful at Google or that Google look at the right signals and have good processes or that the startups who should have a different hiring strategy don’t copy google too much.
> Would the person who wrote the best dry-cleaner management software do well at a company like Google?
Offer them a job and find out.
> the required skills there are ‘getting things done in a company the size of Google’
this sounds like a fake excuse to exclude someone who has demonstrated a high degree of ability and skill, but doesn't fit your mental image of what a Google employee should be -- otherwise known as gatekeeping
I went from demonstrating a “high degree of ability and skill” that brought in an extra 1 million in revenue at a 60 person company over a year. It was lauded by CxOs.
Doing the same type of work at AWS gets a congratulatory email and is just a drop in the bucket.
I’ve also gone through interview training. We are specifically told not to consider where you got your experience or education from as long as you meet the standards. While they don’t bring me in for coding interviews, I’ve been on interview panels as part of the system design section. I know this to be true.
That is something Amazon does got right, they look for the experience during interviews, for the skillset. And yes, they tend not to care that much about where that experience comes from.
> but doesn't fit your mental image of what a Google employee should be -- otherwise known as gatekeeping
Otherwise known as “culture fit”?
I say that sarcastically. Anywhere I see “culture interviews”, “our culture”, or “culture fit” I think it’s one of those bull shit jobs type things, and used as a get out clause in the hr tool box.
For the big companies, culture fit often feels a bit cult like. It’s no longer a job to pay the bills even if you enjoy the work, instead you have to believe the company is changing the world, eat, sleep and live the company values etc etc.
>> don’t have all the fancy google tools or services
Hard to believe that all of the fancy google tools haven't been replicated in open source yet. Software people love writing tools to make writing software easier - what's up?
I haven't worked at Google. But I think that the level of infrastructure at a larger Tech company really shouldn't be disregarded. I've worked in a small <10 person shop, a large non-tech finance co, and a tech co. One really big difference is that the internal tooling, infrastructure, etc. are really well polished at a larger tech focused company compared to non-tech and small places. Even if there are a lot of open source tools, which may even be used at tech companies, when you do not have a team(s) who work full time integrating all of these tools, the developer infrastructure, CICD, etc. it is a big pain. And at smaller non-tech companies, debugging all of this stuff that Just Works^tm is a really big part of the job.
Not to mention when there's a problem, especially a SEV, you have oncalls and entire teams of people rushing to fix it, giving trackable status updates, responding directly to you, etc.
Compare that to posting on Stack Overflow and praying for a high quality response.
Yeah, so one thing that is pretty naturally frustrating is that hiring processes are incredibly unfair in the sense that perceived quality of candidates by the process is often wildly unrelated to how they would perform at the job and, in particular, the processes often rate poorly many candidates who would make excellent hires. This unfairness does not feel good but I think it would be worse to require companies to be fair (likely their definition of fairness would be bad and processes would converge more meaning all companies were competing for exactly the same candidates) and it is reasonable for companies for these processes to be unfair as their goal is to hire N candidates who meet their bar, rather than to find all candidates who meet their bar and randomly select N of them. I do think it is bad for companies but I think it’s bad that the processes are ineffective (ie missing excellent candidates; overpaying for mid candidates due to competing with everyone else for the same people) rather than because they are unfair.
One thing to note about the article is the person seems to have had some reasonable variation in interview process between companies. Perhaps if the hypothetical dry cleaner management software maker applied to a company that did work-sample tests, they would get a chance to shine by being good at programming and taking feedback and working on actual problems independently for example, even if they didn’t do a good job at passing the candidate screen or doing ‘algorithms’ at a more traditional company.
I can’t speak for how it is in 2023. But in 2020, I had nothing but a long history as an “enterprise developer” at unknown companies writing C# CRUD apps and I had every tech company reaching out to me.
It really didn’t matter where you work if you could pass the DS&A monkey dance interview, you could get a job at most of the tech companies.
I did a slight pivot to fall into BigTech. So I didn’t have to.
One could argue that being at FAANG provides far more income than 95% of other tech jobs, so OP might have a significantly larger financial cushion before they need to worry about the next paycheque.
This alone excludes most people from quitting first with nothing lined up.
> A shitty programmer with a bad attitude from Meta, Google, etc. is far more likely to get opportunities than the best programmer in the entire insurance industry...
First, even if this is true, are you seriously arguing that people with relevant work experience from biggest tech companies getting opportunities is anti-meritocratic? (And no one is just handing out jobs, they still have to do well at thr interview)
Besides this even true? I personally know lots of people who in big tech that haven't previously worked at big tech. These companies hire tons of fresh grads out of college too, and not everyone is from ivy leagues, in fact from my experience, most are not.
I single-handedly wrote a custom inventory management system for a Japanese mobility-industry service provider that's in operation for 15+ years. ...crickets.
the skills you learn in Big Tech are somewhat distinct from what you are taught in CS 102: modern distributed systems engineering and cooperating within a giant org.
The Ivy League filter feels and kind of is unfair, but for new grads it's really really difficult to find good signals and big tech gets two or three orders of magnitude more applicants than open positions.
Thanks to the author for taking the time to write this up. I think it is a fairly realistic description of what the process is like for an engineer who has spent several years working in Silicon Valley at a well-known company.
The key takeaways, coming from someone with a similar background:
* Rely heavily on your personal network to both identify worthwhile opportunities and for referrals which, in the Before Times, pretty much guaranteed an interview
* It's worth thinking through what type of job would make you happy _before_ you get an exploding offer
* They had a _full_ pipeline, interviewing every day for three weeks straight. It's a grind, but you definitely get "in the zone". Additionally, setting this goal ensures that you are being properly proactive/aggressive in pursuing opportunities.
* You will probably see a design interview at any FAANG or hot startup. The classic one I've seen like 5 times is "how would you design a social media feed?" I still do not know the "correct" answer to this question.
I don't have hard evidence for this but it seems that the demand is still very strong for experienced engineering managers. I am curious to hear if the author interviewed for SWE positions or engineering manager positions have they have filled both roles in the past.
> * They had a _full_ pipeline, interviewing every day for three weeks straight. It's a grind, but you definitely get "in the zone". Additionally, setting this goal ensures that you are being properly proactive/aggressive in pursuing opportunities.
As a married man nearing his 40s I can't imagine doing this. I need to keep my full time job to support my family, so just quit and focus 100% on prepping is not an option. Assuming a 5 1-hour round interview, I would need to take PTO or somehow juggle my calendar to take interviews. I'm horrified at the thought of taking one week off and doing interviews for 5 days straight. I guess I'll cross that bridge when I get there.
> As a married man nearing his 40s I can't imagine doing this. I need to keep my full time job to support my family, so just quit and focus 100% on prepping is not an option.
That’s by design. Most places don’t want people like you. They want pliable, naive employees who will kill themselves for the company and not count their hours.
I've done a 5 1-hour round interview once, and have refused to do them since- including actively turning down a second interview when the process wasn't clear prior to the initial screener call. I've the good fortune of pretty much being able to pick and choose between jobs, but I also essentially have written off working at a FAANG and at companies run by former or wannabe FAANG engineers.
Fortunately, there are still lots of good startups, small and medium sized companies that pay well and actually respect your time.
Personally, 30–60 min HR screen/people stuff and 1h tech interview, with maybe an other hour or two of paid take home assignment.
Along with past experience on CV this should be enough to assess whether a candidate is suitable for the 3 or 6 months probation employment.
If after all this you still can’t decide whether the candidate is a match and worth keeping permanently post probation, your hiring and working processes are seriously broken. I don’t understand then need for multiple, hours long, dozen interviewers processes.
To respond to both you and the sibling comment, a short take home assignment which is used to guide a final interview is fine for junior positions.
For senior positions, I would rather spend an hour or two talking through hypothetical scenarios, including design decisions and teamwork. I want to hear deeper knowledge from a candidate, not "do they know valid syntax and are they able to solve trivial problems".
As in all things, it depends on the company that is doing the hiring and the role they are being hired for. In some cases, "senior" roles are basically individual contributors with a few years of experience. In others, a senior should be able to translate business requirements into a big picture technical solution, break down the portions of the stack they are familiar with, and explain what assumptions are made and what unknown factors need to be sussed out in order to plan a proper implementation.
The latter portion is difficult to do with a take home assignment without careful planning for the follow-up interviews. 5 hour round-robin interviews typically (in my experience) end up being "live leet code" sessions that don't represent day-to-day work at all.
I think the problem these days is that it’s so hard to fire someone. I’m not sure if it’s legal, cultural or otherwise, but I constantly see coworkers who are at best useless and often detrimental being kept on and on and on.
So the game becomes to avoid hiring someone like that at all costs, because once they are hired they are impossible to get rid of.
I wish employment was more like contracting - you give someone a trial for a few weeks and then end it it’s not a mutual fit. No long interview necessary - the job is the interview.
Maybe a little more tricky in Europe, but in US and Canada, all you have to do is pretty much “this isn’t working, you failed your (unachievable as needed) PIP, you’re out in two weeks”. In some states you apparently don’t even have to pay accrued but unused vacation..!
Unless the person is truly a net negative producing programmer - firing, hiring (1-2 month process), onboarding, and then hoping they don't job hop tends to be even more expensive for an organization than having them plod away slowly.
If they are a NNPP, gathering the necessary documentation and putting them on a PIP or shuffling them to another team is likely an easier path.
First, many more applicants than positions. If you've got 100 for a single position, then selecting the best 10 out of that set will look like a high hiring bar when it is 'just' a "we don't have time to interview everyone." And many positions get many more than 100 applicants per position.
Next, the aspect of job hoping that has become fairly common in the past decade. If the average tenure of the person hired in the last 10 years is decreasing because the person can get paid more by switching companies then the other side of the push will be to raise the bar so that the new hire will require less onboarding and be able to be productive faster. If the company is using Kafka in house, and it takes two months to really get to the point of understanding it and the person leaves after a year, that's two months lost. So, instead hire someone who understands it and only requires a week to pick up the peculiarities here so that when they leave in a year you haven't lost a portion of the time getting them familiar with the tech stack.
Lastly, it is a pain to fire someone. You need documentation about their issues and that it is performance related and that its not done during a 30 day window where they've fired 49 other people and that HR is ensuring that they've got the CYA on a wrongful dismissal documented. And then, even when you do fire someone, you've got to go back and reopen the position and hire again and that takes two months from the time you submit the job description to HR to starting a new person along with at least a week of manager and interviewer time in the process.
The safest thing for a company to do is move them over to a team that does low priority, low impact things and never promote them in an engineering capacity. Note that sometimes when you move a person from a dev job to a QA or operations job you'll get the person coming back with constructive dismissal which takes time to handle.
As an engineering manager on multiple projects, my calendar is jam packed. My developers who are on one, or at most two projects have their calendars fairly empty (which is a good thing). I had folks who took many interviews within a short time span and I had no clue at all. I barely have time to take a lunch break.
Yes - I can manage my calendar better, but then people would get suspicious, or I'd be worried some emergency comes up.
When I used to interview, I'd just start having more "doctor appointments" or what not and block off a few hours. Also, these were back in the days of going on-site for interviews. My engineers who quit did it all remotely, even the final round (covid times...) so it's more manageable.
You need to actively prune your calendar. Regardless of whether or not you want to interview for a job. If you entire working day is filled with meetings, you will not have the time to actually do good work as manager that only you can do. It's probably worth your while to block off 2-3 hours of your work day for individual contributor work (say thinking/working about strategy or product or engineering roadmap.) Just go out to the local coffeeshop. Invite other mangers occasionally to join you. You just use that time to become strategic about your work. When the the time comes to interview, nobody will notice that you've not been around for a few hours. CEOs routinely do this when they have to take sensitive meetings. They are not usually in their offices most of the day.
"doctor appointments" are also great for refusing full day of interviews. I have used that technique before. Or "I need to visit a friend/relative in hospital". They back-off immediately.
Note that the person in this article (a) wasn’t working at the time and (b) deliberately wanted a lot of interviews to explore their options. I think it pretty obviously isn’t the only way to do things.
One needn’t interview at so many companies. If one is in no rush to quit then just spread interviews out over a much longer time.
Quitting your job to focus full time on prepping for the tech interview had a good ROI during the fever dream market of 2021 and 2022. I'm not so sure that's true anymore. At the very least it has an inherent risk (dwindling savings and not getting a good offer). Right now I'm more risk averse so I'd follow the tortoise approach by interviewing little by little overtime.
A pity since the TC game is played by pitting companies against each other in a bidding war. I guess I'll have to figure out my strategy when the time comes.
“Thanks for accepting our offer. When would you like to start?”
“Well my notice expires at my current job in two weeks but I’d like to take a short break in between to decompress / spend time with my family.”
“Obviously we’d like to have you as soon as possible but we don’t want to keep you from your family. How about six weeks from now?”
“Works for me.”
Obviously different companies/roles will be differently flexible and bigger companies will be more tolerant of delaying start by longer. And you can only do that if you get a job offer somewhere. But the parent comment wasn’t even suggesting taking holiday to interview for a week straight right?
Given the choice of being able to take little Timmy to Disney world and providing him food and shelter and being able to cash flow him through college, he will get over it.
Before you respond that I don’t know what it’s like juggling a family and I must be a fresh college grad, the 74 in my username has significance
As someone that comes from humble backgrounds from a third world country, i went on 0 vacations. All the money was put in for education, food , clothing and shelter.
> The classic one I've seen like 5 times is "how would you design a social media feed?" I still do not know the "correct" answer to this question.
There is no "correct" answer to it. It is an investigation into how you break the problem down and approach it. When presented with a challenge to it, how do you then look at it and consider how to solve it.
There sort of is though, right? At a meta level, making sure you touch on the points they want you to touch on ("is this workload read heavy or write heavy?", "fan out vs fan in", "eventual consistency") is a right answer that you phrase in the form of a series of questions designed to look as if you've never been asked the question before, yeah?
> They had a _full_ pipeline, interviewing every day for three weeks straight.
I honestly think I'd be physically incapable of doing this. I'm on the HSP side and even a single set of interviews is enough to drive me into an insomnia/anxiety cycle for weeks. I can't even imagine what this would be like for me. Albeit I admit it's the best way to get the job you want. Maybe I'm in the wrong industry...
This is incredibly common. I hate running interviews - we do the leetcode whiteboard pressure cooker crap - it's a policy I have no say in unfortunately. I've had candidates with strong backgrounds go to pieces right in front of me - it's awful to watch and I hate that I had anything to do with making someone experience that.
More people than you might imagine take Xanax to get through interviews.
I don’t know whether it’s more disturbing that our interview process is structured so that Xanax is necessary in the first place, or that so many people in the comments jump in to say what a great idea it is…
I had the same thoughts. Some people need various kinds of medication, and that's fine.
But if a normally functioning person needs to start Xanax for the purpose of getting through (let's admit it) a power-play hazing ritual that has little to do with the job, then maybe that person and the rest of us should go tell those companies to take a hike. The EEOC should, as well.
Someone posted on HN recently that they slowly drink wine from a mug during remote interviews to calm themselves. People also recommended a light beta-blockers (which are incidentally used to cheat in some concentration sports like bow+arrow shooting). It sounds like a good strategy.
Or if there is some freedom around questions pick something that can be worked through. The worst are questions where if you don't know the algorithm or data structure there is no way to work it out from first principles.
> More people than you might imagine take Xanax to get through interviews.
You know, that's actually a great idea I never thought about. I'll see if I can get a script next time I go through interview loops. Might make the process less hellish for me, I hope.
Shit I'm brain-dead by about 3 hours into an interview or set of interviews, even if it's not the leetcode type. It's draining in a way that no actual work, even hair-on-fire emergency work, is (except maybe sitting in very-tense meetings—that's got a similar effect on me). Doing that more than once or twice in a single week might make me consider applying to clerk at a gas station instead.
Haha, I feel the same. Luckily it’s not everywhere like that and you could do much better than a gas station clerk, the biggest hurdle is to find the best place where you’d be the best fit at, the interview would likely run well and everything fall into place after that
It could take a lot of harrowing interviews before you find the peaceful place that doesn't basically haze interviewees. I think probably you've gotta be willing to just walk out of a bad interview situation. Maybe even having that mindset (that there's a way out) would help with the nerves?
Yeah, I've had the bad kind that's long enough in a day to totally wreck me, like... twice. Failed one of those two hard, too, LOL. Rest of my experiences have been way more chill in my ~23 years in the industry. I can't imagine targeting a segment where such processes are the norm—which is why, even if I have the talent to work there (and, who knows, maybe I don't) I'd never even try to apply to FAANG and friends, since there's a 0% chance I'd make it through one of their about-a-whole-day processes without bombing the entire back half, no matter how much I prepped.
Same here. I've been known to have panic attacks during interviews where I have to excuse myself and get out of the room ASAP.
> Maybe I'm in the wrong industry...
I wonder this as well for myself. I really like software development, but the interviewing is just getting to be too much. It would suck to have to change careers away from something you're pretty good at and really like just because of what basically amounts to hazing.
It's more than lame, its an awful bastardization of how our trade should be evolving. The only real accountability that can be made is to become financially independent and just start building your own things. Ship to market and not fret about revenue growth.
Maybe it's just me, but when I have done that, the first one or two are the hardest, then you get in a groove, and become more aware that its just a numbers game.
I think we're all affected to different degrees. I've done a few interview loops in the space of a couple weeks and it never got easier. It just got worse as my insomnia got worse. I feel it's a miracle I can pass interviews at all since I'm operating at like 10%.
I don't understand the numbers game approach. It's like a war of attrition - you're definitely going to suffer if you pick a fight with everyone you see.
I prefer the 'choose your battles' approach. Interviewing at 3-5 places (not 35), and being prepared to 'win' before I start, as well as possible.
I do find the marathon interviews are difficult, but the difficult parts for me are front-loaded - the initial anxiety, gradually building to being desperate for a break (or to escape) around halfway through. But then like a runner in the zone or coasting through the second half of a double shift on sleep deprivation, the latter part is relatively smooth.
That's actually exactly why I do such a grind when I'm interviewing. The first set of interviews affects me like you said, but if I keep at it, I get used to it. Which means the only way for me to do well is to keep at it until it's routine.
Or maybe the hiring process is broken beyond repair when engineers who are perfectly qualified need to inhibit parts of their brain just to 'perform' at an artificially inflated level.
This right here. If there are more and more of us who do just fine in an actual engineering job but need beta-blockers or other anxiolytics just to make it through an intense set of interviews maybe something's broken with the hiring process?
The “just done” thing can be kinda dangerous too - I did the same thing, and at the end of my hell week, I was getting close to accepting an offer I knew was subpar, just to be done interviewing.
author here - glad to see this post on HN, and glad you liked it!
re: your last question - I interviewed for both SWE and EM positions, depending on what was available at any given company. At companies that had both roles open, I talked to folks to understand what they expected out of EMs vs engineers, as it varied a lot - and then I picked whatever was more appealing to me. In aggregate I went for 70% SWE / 30% EM roles (roughly)
Some models I've seen (I'm sure there are some other ones):
Pure people manager - HR admin (compensation evaluation etc), professional development, project management, team resourcing, etc. Tend to see this less in very small companies.
TLM (Tech Lead / Manager) - Does all of the above, plus also acts as a tech lead for the project - technical design, mentoring, and possibly some coding. Tend to see this less in very big companies. TLM are typically first-line managers, I've not seen a TLM that manages managers (i.e. Director level).
Rarely, hybrid engineer/manager - Does all the above, plus expected to contribute significantly to coding. Honestly it's a red flag for me to see a team hiring for this archetype, in my opinion it's a pragmatic stopgap you might find yourself with as a small company, until you can hire an engineer or manager to split the role; it's not something you should explicitly hire for.
Sometimes, product lead as "mini-CEO" - manages the team/org and owns product direction. Typically will have a tech lead on the team to own that side of things. This can grow into a Director position, managing the team managers and still owning the product function.
thanks for hitting the nail on the head - this is what I saw. I was comfortable with TLM/pure people manager, but not the hybrid (been there, done that - it was rough).
On my last job search I found that overloading myself with interviews was very stressful. It's one of the reason I will no longer continue with any process that has take home assignments - at one point I had 4 different assignments with overlapping due dates. Far too much stress (and I was ghosted on all of them).
It's also not fun to be waiting to hear from the places you're really interested in while you've multiple exploding offers. One of the offers exploded before the date I was told it would. On the plus side I was able to use the offers as leverage to speed up the process at the job I finally did take.
If I have to do it again I will set some sensible limits on myself.
I always thought the idea of a take-home sounded appealing, especially when I first heard of them ~15 years ago.
The first time I found a bug in a company's take home project spec rather spoiled them for me. And sadly, that's not the only time that happened! A candidate who puts more effort into it than the person who created it gets rewarded by feeling confused or like they're missing something because it doesn't add up? Nope, not great.
And now, 15 years further along, the idea of investing 4+ hours of my own time without even a human to ask questions of or discuss things with just has no real appeal (I've seen some that expect 8+, even).
I don't blame you. Take home assignments are ridiculous, anyway. My personal time is valuable to me and it's unrealistic to expect me to do homework just for the privilege of an interview.
In my last job hunt, I flat out declined further interview if I was requested to do a take home assignment.
Would you prefer a take home or a live coding challenge?
I have the total opposite experience. I have rarely done well on a live code problem, I clam up. Tbh it’s humiliating, not representative of my actual skill set, and a waste of everyone’s time.
The amount of time I’d need to study to be good at live coding is less than doing a couple take homes for companies I’m actually interested in.
The idea of a take home originally appealed to me, but my actual track record with them is very poor. They are usually too open ended - sometimes they'll say to write some service, that it shouldn't take more than an evening, and then you're left questioning how much they're expecting. Do they want a quick proof of concept? Do they want unit tests? Acceptance tests?
Then there's the follow up - often a rejection with no comments on the code whatsoever. Or you get completely ghosted. Or, and this is the real kicker - they finally ask you to come in, where they have you do leetcode on a whiteboard anyway.
If the process was "Here's what we're expecting, turn it in by X date, we'll have you do a review with the team, and assuming all goes well, we'll talk about an offer at that point" I would be a lot more open to them. But that's never the process.
Ugh yeah, one place I worked at handed out these tasks and specifically didn't mention to write unit tests despite it being a hard requirement because "We don't want people who don't do this without being prompted".
You are more likely to be ghosted at this point in the interview process. I'm leaning towards skipping them. The online ones are not bad unless I have to entertain the interview while trying to work.
I strongly agree that rejection w/o any comment on the project you just spent 4-10 hours on, is very frustrating. Of course, it's just a subset of the whole interview process, not just programming, you never know what the actual reason you got rejected was.
The advantage of live coding challenges is that they require the employer to put skin in the game by allocating 1 hour of their own engineers' time. This encourages them to filter candidates beforehand and discarding bad-fits early rather than wasting every applicant's time even if they have no chance to begin with.
I personally prefer take home problems (I also have a bad track record on "speedrun this Leetcode problem" interviews). However I think it'd be great if applicants could choose one or the other, without any bias in either direction.
Personally, I'd prefer an actual small contract gig. Most companies have something tangential that they'd like to have but may not be worth dedicating their full-timers to, or isn't directly in line with their main focus. Some small tool, bit of automation that would help, or minor project.
It gives us an actual chance to work together professionally on a real thing. I get actual pay. The company gets something actually useful (not just a puzzle solution). The team can keep their focus on the bigger stuff. It's kind of a win-win.
It does need to be something rather small and non-critical, yet relevant enough, which might be a little more difficult than just picking a generic puzzle. And requires a little extra setup for the contracting and pay. So I can see why many don't bother.
It could be worse; imagine you go through multiple algorithmic rounds and a take-home task to get into TopTal, then when finally there you still need to bid for jobs against 1000s other developers with a TopTal matcher picking the cheapest ones (imagine $30/h for ML gigs), and even if you are picked by the matcher, you still need to pass client interviews.
Having so many interviews makes you feel more relaxed for every interview because you become numb to it. You don’t care if you flunk your FAANG interview because you already have a good chance with a mid-sized smaller company, which makes you even better for the FAANG interview.
I did over a dozen interview loops when I was looking last year and I felt great and at the top of my game.
If some companies do take-home assignments and others don’t, I think that’s maybe good in general as it means there’s still a good chance for people who don’t like the assignments and for people for whole the assignments are a great way to show their skills (and who eg perform poorly in a more traditional interview).
How is the technical interview process valuable _for companies_ at this point when it seems to be evaluating how well you can prepare for their specific leetcode interview, and how well you practice the incantation of the system design problem (make sure you follow the template and the pattern!) - do they really think they're selecting the best candidates, and not the most practiced interviewers?
Beyond the barest basics, 99% of the time the only thing that's genuinely relevant is whether or not the team wants to work with the candidate. Almost nothing else that is relevant is even knowable until after they're actually working. Exceptions only prove the rule.
It's a sham but I guess it makes someone feel like they've contributed value somehow.
It's a selection for socio-economic status. Hiring people who have enough excess time to do this grinding excludes people like parents of young toddlers. So.. you'll probably get a bunch of young single people w/ enough income to not need to have multiple gigs.
Since when was ‘parent of toddlers’ a kind of socioeconomic status? (Not that I disagree with you that it disadvantages such people).
Also note that the OP said they found the coding questions were mostly easy/easier than they expected so maybe the amount of work required (for older/more experienced candidates) on preparation is not so high? I dunno.
I think the best way to interview is to just have an experienced, respected worker or two ask some questions, which hopefully leads into a normal conversation about work. Talk about specific problems, nerd out about tech.
I get that it's still a candidates market (especially for strong candidates like OP who can get 11 offers from 13 full attempts), but the spreadsheet of questions you should be asking a company linked in TFA has some eyebrow raising notes and unreasonable expectations imho.
For example - there's a big pushback that any hiring manager worried about a candidate who don't have required skills they could learn in 6-12 months is "quibbling". Is this a generally held belief? In the startup space in particular, most folks I interview frequently have consistent < 2 year stints at most if not all of their prior companies. Expecting a 12 month ramp-up time on a particular piece of technology needed to do the job would be an immediate no-hire from me. If I personally joined a company and couldn't meaningfully contribute for the first year, I would consider that a complete failure and expect to be let go. Do other people feel differently? Perhaps this expectation is more applicable to larger companies than startups?
Hiring people all too often focus on required skills like 'X years of experience with generic tech Y' and look for those buzzwords on the resume.
But the real thing is, every company has its own processes and procedures, its own legacy and proprietary code, its own business and product goals in its industry, etc. That's where the real ramp-up comes in. 6-12 months is not a bad ramp-up target.
Would you really rather have someone who knows new tech XYZ very well and can hit the ground running with no ramp-up, but breaks process, refuses to touch the legacy code, knows nothing about the industry, and builds things counterproductive to your business goals?
Or would you rather have someone who doesn't know new tech XYZ at all and needs to ramp up, but will gladly pick it up while also learning and adopting your processes, legacy code, industry, and business goals, in order to contribute to the best of their ability?
For that, you not only need to learn the new tech, but a whole lot more. Learning the new tech is the least of it. And industry/domain experience isn't perfect but is worth a lot.
Yes, they should be able to meaningfully contribute fairly quickly, even with things that are new to them. It'll take a while to get really good though. But while they're ramping up on everything else anyway, why not let 'em ramp up on the tech? It's a relatively small thing in the big picture.
> Would you really rather have someone who knows new tech XYZ very well and can hit the ground running with no ramp-up, but breaks process, refuses to touch the legacy code, knows nothing about the industry, and builds things counterproductive to your business goals?
It’s not an either/or someone with experience should be able to do both, at my current job and my prior two jobs, I was specifically hired because the manager was looking to bring on someone who could lead initiatives and was a subject matter expert.
Well my last two jobs prior to my current one - the current company I work for has quite a few people who know my specialty well…
If you are doing Front-End dev pushing React Components, I think you should ramp-up from Week 1. Some other comment here mentioned this though: some fields it's not possible. If you are doing drivers, kernel, ebpf, or say you are programming Bitcoin main node; you probably need to read a lot before you are able to make any contribution.
This is why we can’t have nice things. Every company wants to make minimum investment in hires and hires want to jump to get paid as much as possible. Game theory playing out.
Anecdotally, a large number of experienced engineers I know at big tech companies have been secretly hoping to be included in an upcoming layoff round.
So many people have mentally checked out of their current jobs but are too lazy to grind leetcode and go through interview loops. Unless you are in a financial crunch or have other issues like visa sponsorship, getting paid for 6+ months to fully focus on the next step of your career sounds like a dream.
Microsoft/Google/Meta/Amazon/Salesforce and the like are spending many billions of dollars and unknowingly setting up the largest startup incubators in the world right now (and getting nothing out of it in return).
“Lazy” is the wrong word. People work for 8 hours a day and then are expected to cook, clean, exercise, and maintain some sort of social life. Adding in Leetcode on top of that is going to cause something to give. There’s only so many hours in the day.
As evident by my current habits - I'm far more willing to walk in the cold wind and workout at the gym for two hours than I am willing to do even one leetcode problem.
I've been going to the gym 4-6x/week for the last couple months. I cannot get myself to do almost any leetcode even though I should be doing it. I've just accepted I'll not work for a while longer and keep going to the gym anyway.
Regardless of the exact word choice, if you have a life goal that requires some extra effort and sacrifices, and you cannot get yourself to do it, you can't really blame your busy life or anything else. There are others who do all of the above and still make the time, and they are going to be more successful than you while you continue to complain about the industry/interview process/leetcode/whatever else.
That grind set mindset, “you can do anything you set your mind to, so you can only blame yourself for not having {life goal}” is a recipe for depression and burnout
Now if only 6mo (or even 3mo) severances were the norm outside of FAANG on this wave, it wouldn't have been quite as painful of a lurch for some of us.
Wondering why they are giving such big serverences. Surely its not out of goodness of their hearts. 7 month severance at google seems a bit over the top to me.
Yeah if you're good and have the resume/experience to back it up, you won't have any issues getting great offers even in this market. Great candidates are not easy to find in any market.
This must be extremely subjective. Many times over I see very well qualified candidates spending months in this market looking for a position - when it took them weeks before.
Anecdotally, this. I'd never spent more than 3 weeks looking for a job prior to my October/November job hunt post-layoff. This one took about 6-7 weeks, all told (and likely would have come out closer to 8 had one branch path played out). I was intentionally looking for remote-first companies that seemed halfway stable, and was prioritizing those open to sub-40h workweeks (30h, 4DWW, 9-80, etc.), which admittedly, all three shrunk the pool tremendously (each), but particularly on workweek length, I was negotiable. I still had an overall horrible experience with the dozen or two companies I chatted with, and notably got some absolutely wild rejections (however, quite thankfully, also landed somewhere great after sifting through all of these):
- absolute crickets, which made up about 33% of the "rejections" after a phone screen. This was unheard of pre-layoff rounds, but I understand that recruiters themselves suffered a lot of losses in this wave so I somewhat get it.
- "We only hire SREs, and any role leveled Senior+, in San Francisco, there's too much context to offload remotely for leader roles" (this is, itself, such a glaring red flag that I was considering walking from this process anyway)
- "You mentioned your preference to not do Coderpad-style interviews, and sadly, we only hire based on timed+video call Coderpad interviews, good luck!" (I basically never ran into this pre-2022 despite my stance on this issue almost never changing in my career, this was the cause of several rejections this time)
- A subtype of the above, bombing a surprise (or once, "forgot to ask ahead of time and got scheduled for one that I decided to go to anyway") Coderpad/l33tcode/etc. style interview. Rejections on all but one of these, where I advanced and backed out for other reasons.
- Being an SRE not married to Kubernetes I've learned is now often akin to no longer being an SRE. In fact I now question whether I truly consider myself "an SRE" in the current startup climate's sense of the word anymore. As an egregious example, one interview asked me to rate my skills and opinions on Kubernetes specifically. I answered honestly that I thought it was the right tool for many jobs, but not all jobs, and that I wouldn't claim to be a guru at it as I often use other tools that fit the tasks at hand better. Rejected.
Cargo culting the wrong tool is a pretty good sign of a company that will eventually not make it from a tech point of view so better to let such go. If you're Calimero and you want to pretend to be Godzilla that's fine by me but not need to tie yourself to that particular mast.
They would much rather miss out on potentially talented individuals than hire one sub-par person. They care much more about avoiding false positives than false negatives.
I also had someone candidly tell me that they deliberately select for candidates who have put extensive time into preparation because that correlates with effort and the willingness to work under crunch conditions in the job. Gross, but effective.
By this logic, maybe leetcode is a sign of somewhere that indulges in death marches and should be best avoided working for?... except when everyone does it, and/or applicant is out of work
Exactly. I was fired from a tech job a decade ago and I found plenty of food to eat in the dumpsters and it wasn't hard to get enough day labor cleaning up puke that I was able to buy a tarp to sleep under.
That first impression (and how you tackled it) of system design interviews makes me question their usefulness. Like, how good of a signal can companies really be getting if it's too different from real world systems?
Feels like an artificial wall too - many companies don't approach the scale where this stuff matters, so getting that experience is hard.
To be fair, these interviews provide a lot of valuable signal in terms of how you approach tradeoffs and explore a problem space. In that sense they're quite similar to the work I did at $dayjob, just in a compressed timeframe (which makes it challenging). As you said, the questions are similar to real world systems at these companies -- it's just that you won't have experience with these systems unless you've worked at these companies before. It's a catch-22.
> Like, how good of a signal can companies really be getting if it's too different from real world systems?
There are "layers" to the signal you can get from system design interviews:
1. Are they aware of "big concepts", indexing, sharding, queues, scheduling, etc.
2. Are they comfortable actually using and manipulating these abstractions in an academic sense? e.g. new college grads may have never used an index, but can walk me through how we might use one to solve a given problem.
3. Do they have experience operationalizing these concepts? e.g. in DB design questions I love it when candidates are able to walk through a zero downtime migration plan from before and after we add a feature.
4. Related to 3, How do they weight tradeoffs in the system? Do they drill down into product requirements to help inform these tradeoffs?
A system design interview often lets me say: "They're not experienced enough at our scale for me to want to hire them at level X, but I'd hire them at level X-1"
All this said, I do think more companies should try to draw design interview questions directly from their own company experience e.g. imagine we didn't have feature X, how would you add it to the product?
> imagine we didn't have feature X, how would you add it to the product?
I think pulling specific ideas from your actual system is full of traps. These are probably problems you've thought of - both actively and passively - for days, months, or even years.
The person you're interviewing has had no such benefit, and it might be very hard for the interviewer to be able to separate what they think is reasonable and what is actually reasonable.
> I think pulling specific ideas from your actual system is full of traps. These are probably problems you've thought of - both actively and passively - for days, months, or even years.
The first time you give the interview certainly, but you have time to formalize and tune the interview. Write down what you're going to ask, what signals you're looking for, the quality of a solution you expect. Socialize this with engineers who weren't directly involved in the design of the system, ask for their feedback.
You can usually iron out a question in 10-20 interviews and make it really stellar within a 100. I know that's a lot of potentially wasted hours, but the ROI in terms of candidate quality is worth way more.
That part about "write down the question" and the "what are you looking for" is a rather important part that most people ignore and just wing it.
By having that rubric down it becomes easier to make the objective choices (that can be backed up with HR). Additionally, that same question (with the same rubric) can be used by other interviewers for other candidates and overall, you would hope that the same candidates would get the same thumbs up / thumbs down evaluation no matter who asked the question or considered them.
I wonder, if somebody has not a happy story, but an ongoing story of failures in job search - would he write such a story? Or we hear only from those who succeeds? Or, assuming that everybody eventually succeeds, those who take years to find a position won't write about it, as they are too exhausted or embarrassed?
7 months deep, hundreds of applications, blah blah, so to answer your question, for the most part people in this particular situation don't write public stories about it.
1) It can feel like it will sabotage your chances even if it raises awareness of your situation. Firstly because you cannot help but "call out" some of the hiring practices/people, and secondly because, well, must be something wrong with you if no one is snapping you up, right? Which leads into...
2) A lot of really obnoxious folks like to pounce on this and "blame the victim", and then reference stuff like this post to show how "it must be your fault", etc, and "ain't nobody got time for that". It's hard enough to deal with impostor syndrome kicking the brains in without inviting the mob to kick as well.
3) It's depressing to think about it, much less to write all that down where it becomes an objective thing that cannot be ignored. Especially if you've tracked everything in detail (I have). Much more pleasant to sell off your belongings and pretend you're just embracing minimalism and forget about it.
4) Feels a lot like begging, and there are many complicated reasons why people mostly don't like to do that.
People write them - they just don't gain traction. You also don't tend to write them with your name attached because that literally throws your own name down the drain.
People are also not interested in hearing troubling stories because everyone has a troubling story. They want to hear how you succeeded because they want to emulate that success. They want to learn the "one small trick" that will lead them to finally getting the job of their dreams.
I've heard / read stories from people who tried really hard and failed to find jobs (both within tech, but unfortunately more common outside of tech). Unfortunately they don't get as much traction as people prefer to hear stories with a happy ending
If you ask for it... I've been hunting for a job for more than a year now. Well, perhaps not hunting as I haven't sent out nearly as much resumes during that time as the author of this story. Though when I do apply, I usually also get to an interview.
The interviewing causes a lot of stress to me. Even though I have never failed a coding interview, I utterly hate doing these. (Thankfully I've never had any hard leetcode problems thrown at me - I would have failed miserably.) I have also been a lot on the other side of the table, though I found even that to be a big source of stress to me. I personally believe these coding tasks are only good for filtering out the bad candidates - you can't use them to find great candidates. The last big company I worked at gradually steered towards harder and harder coding problems, until one day I just pulled out of the interviewing process as I felt that I personally would no more get hired.
I wish more companies would be more flexible in their interviewing process. Like, I have several open source projects which mostly revolve around various forms of static code analysis - why do I need to prove that I can write fizzbuzz?
Recently I had a pretty nice coding interview where the main task was not about me writing code, but instead reading the code that a junior developer had written and helping him sort out why the code doesn't work and how to improve it. This was the most real-work-like task I've experienced, I even found myself enjoying it.
Most of the rejections I've had have been along the lines of: "While we find your technical skills excellent, you don't really look that motivated / we think we might not have the right kind of challenge for you."
So, I'm in a bit of a dilemma. If I would strive to send out more resumes, most of these jobs are likely something that I'm not overly excited about, and so I will get rejected because I don't look committed enough. But if I try to look for a dream job, then that will likely never happen. I feel like I'm doomed either way.
During this whole job search I did get one offer, but I rejected it, as I heard rumors about the owners of the company being complete assholes. (Like monitoring workers through security cameras to make sure they're working at their desks.)
Thankfully I've had enough savings from my previous employments and I tend to live a fairly cheap life. Nevertheless, my savings are starting to run low now, which adds pressure to finally find a job. Well, I still have the option of selling my second house (so I'm still far from being financially ruined).
> I completed full interview loops at 13 companies and received 11 offers. I'm glad I got the rejections I did - it was clear there wasn't a mutual match.
11 out of 13 seems like a really extremely good hit rate. Even a 50% offer rate would be really good so I'm guessing this person is way better at interviewing than most of us.
As most of these interviews were in in October/November I wonder if it would go as well now? Or in 2 or 3 months?
13 companies where he completed the entire interview circuit. The further you get in an interview circuit, the more likely you are to continue, and thus to eventually get an offer. Only getting offers from 50% of those might indicate you're doing something surprising towards the end, like coming across as a jerk to the skip-level+ the last interview is usually with.
I filtered companies down to places where I felt I had a good chance of success, and applied to jobs within my comfort zone - this was a very biased sample. I don't think this generalizes unfortunately
I suspect you'd be able to land fewer interviews if you repeated this experience now.
However the most interesting stat is missing: compensation offers. I bet offers being handed today are across the board lower than even just 1 quarter ago.
I think this write up is a good resource for those who got called into at least an interview. I wonder how does one improve if the rejections come even before a single interview? At that stage companies typically will not give you any reason for the rejection either for legal reasons or simply convenience. This leaves you hesitating whether to apply to other companies for fear they will reject you for the same unknown reason.
Maybe someone who has been in the other side of equation can explain, what are the common reasons would get someone discarded before an interview and is there really no way to communicate those better to the rejectee?
This is almost impossible to answer because there are so many reasons that it could be. But I've been hiring manager and looked through thousands of resumes/CVs and hired about 50-60 engineers.
1. Far under-qualified. People apply for senior positions with literally 18 months of experience ALL THE TIME. Seriously... ALL THE TIME.
2. Too many technologies on your CV. A lot of resumes will just list every language or technology on the planet. Its a shotgun technique to just list everything and hope something sticks. The problem with this is that you can't be good at everything. When you say you are confident or even expert in 30 different languages, then it just tells me I can't trust anything on your resume.
3. Titles that don't make sense. Your titles at companies should be standard. Don't put "Javascript Ninja Pro II". Wtf is that? Just put "Software Engineer II - Javascript". Also, in the vein of job titles that don't make sense is someone who worked as a junior engineer for 6 months, and then their next job is as a Senior level engineer. This is scary common, seriously. You're either lying or delusional, either way I'm moving to the next CV.
4. Colorful resumes. Resumes should be text documents. A colored line below a header or little highlights are fine, but its not a graphics design job. Cutesy resumes just make me worried that someone is overcompensating or hasn't been in the industry enough. A lot of cute resumes have tons of whitespace and design to take up space and make a light resume fill fuller. These resumes are super common with bootcamp grads. Maybe bootcamps are selling resume templates as art projects. Don't know, don't care. Usually a well qualified engineer will want a text dense resume so they have more space to brag about all the amazing things they have accomplished. If youre using space for fancy designs then you probably don't have enough content on your resume. It's essentially wasted opportunity.
5. Resumes with Personal Photos. DO NOT EVERY SUBMIT A RESUME WITH YOUR PHOTO ON IT. I have a rule that I automatically reject any resume with someone's photo. It's too risky. I can either get accused of favoring a certain race/gender/ethnicity/etc or being prejudiced against them. So instead I automatically reject any resume with a personal photo. You can be the worlds best engineer and you won't get a call back from me because you added a personal photo on your resume. A lot of companies have this rule too. So if you are adding your photo to your resume you are doing far more harm than good to yourself.
6. Too long. Most resumes should be 2 pages. If you are just getting into the industry and only have < 3 jobs then you should use 1 page. If you are a veteran than use 3 pages. Never go above 3 pages. Anything above 3 pages will get cut. Three pages is enough to give even a staff-level engineer plenty of space to talk about their accomplishments. Anything more than that is an autobiography and I don't have time for it. Learn to cut fluff and give me your greatest hits on a resume. You are just trying to get an interview. You'll have HOURS in far-too-long interview process to give us your verbal autobiography. Save the greatest hits for the resume/CV.
7. Pattern of short job history. Some companies might not care. But if you have a consistent pattern of only working somewhere for 6 months (again, very common) then it tells me you are just job hoping. I know the saying that this is the best way to get a raise in tech. But if youve had 4 jobs in 2 years then I won't waste my time. It will take you 6 months to even start to provide value at the company, and i don't want to be replacing your position twice a year. Im fine with a single job that has a short stint. Just as long as its not a pattern of behavior. Its really common to get resumes with engineers that have 6-8 jobs and only 3 years of experience (Its very common). I'm not delusional enough to believe that our company will be the one you stick around with. So I move on from this. As long as you have an average pattern of at least a year with jobs, then you're fine. If you worked contract, this is different and you should list that in the job description.
8. No good bullet points. With each job you should list things you accomplished. "Built the website using Javascript and React" is not an accomplishment. If you don't have specific accomplishments to list and everything about each job is superficial, then I will assume your contributions at the company were superficial.
9. No Progress on Resume. Your resume should tell a story. If I look at someone who has worked somewhere for 3 years and didn't get a title change or promotion during that time, then I get worried that they aren't providing good quality work. Good engineers get promotions. I'd expect to see that story as I read down your resume. If you look stagnant then the resume will get tossed.
10. No Clear Direction. I want to see that someone is looking for a specific type of job or they are pointing their career in a certain direction. This is visible by the content on the resume being focused in one area or direction and the pattern of jobs taken. I see a lot of resumes where people take a job as an ETL Engineer for 18 months. Then they are a full stack engineer for 12 months. Then they get into sysadmin work for 12 months and now apply for Backend Java. If you have legit reasons for meandering in your career then it should be in your cover letter or explained in 1-2 brief sentences at the top.
Stuff that doesn't matter.
- Your home address, not sure why people put this on there. I'm not going to knock on your door to schedule an interview. I'll get your address if/when you're hired.
- Photos. Its a engineering or tech job, not a modeling gig. See #5, these automatically get cut by most companies for risk of subconscious bias.
- Mission Statement. Sure put a sentence or two if you want. But "Get a job in software engineering" is not a mission. If that's all you have to say then leave it off. Mission statement is not going to have any impact positive or negative on you getting a job. So why bother having it there.
- Jokes. You're not going to get hired because of a joke and its really hard to tell whether stuff is a joke or you're just crazy when its on a resume. You're not lightening the mood, you are confusing the hiring manager. When a hiring manager gets confused while looking at the resume, the resume goes in the trash. So jokes are only going to hurt you.
- Typos. I don't immediately dismiss resumes for a single typo. But more than 3+ and I probably will. Its easy enough to use spell check. If there are typos it is because you rushed the resume-building, have no attention to detail, or just don't care. One or two typos are fine. But a pattern is concerning.
> If I look at someone who has worked somewhere for 3 years and didn't get a title change or promotion during that time, then I get worried that they aren't providing good quality work.
In a country where people care a lot about titles this might be more important. In most Scandinavian companies I have worked in most developers were just “Developer” or “software developer” or similar, no “junior developer” -> “developer” -> “senior developer” and so on. Some large companies might have some internal level system. It might change though, I have started seeing more junior, senior, principal compared to ten years ago.
Thanks for the answer. I honestly don't know about the photo thing. LinkedIn itself has a photo of the person and I would assume companies at least check a candidate's linkedin profile in which case they will see the photo of the candidate. Some companies also look at your social media presence which also has your photo.
Home address establishes transparency and that the applicant is a real person (usually). I agree it doesn't matter for hiring purposes beyond that, but I've found home address to be a good indicator of a non-generated resume.
Don't feel bad if you're doing everything listed in the article and still failing. One look at this person's resume and it answered everything. This is not your average Software Dev. and they have 10 yrs experience. Keep grinding my friends, you'll get there.
Granted I've only attempted the Amazon interview of the FAANGs, but good job to the OP for cracking the FAANG interviews with only 60ish leetcode questions. I'm at 150 and have yet to crack any.
To be clear, I explicitly chose to not interview at FAANGs since I was previously at a FAANG and wanted to try my hand at a different type of company. I'd probably practice a bit more for FAANGs
Is the comp comparable to FAANG or is it a big step down? (At least in terms of liquid compensation)
This is partially why I haven't been interviewing. All the big p(l)ayers have slowed down their hiring so much - why bother taking a role that pays less than half.
Not OP. But I would say that from my experience (I've avoided FAANG for culture reasons, not interviewing reasons) and I can get comparable offers to my FAANG friends at least in terms of Salary & Benefits. The big difference is bonuses, specifically stock bonuses.
So a lot of the crazy salaries you see people brag about are often taking stock programs into account. And because tech stock has been generally hockey stick growth, then the TC (total compensation) is too.
But aside from the stock, you can get good salaries and benefits at lots of non-FAANG companies. I actually have better insurance than my brother-in-law does at his FAANG job, which is already considered very good. In fact its the best insurance i've ever had in my life.
It varied, but I would say most places I looked at were comparable (or higher). there were a few places with lower comp that I was OK with (startups, or nonprofits).
What kind of places? Startups just don't pay the same amount. I'm not getting offers for $400k+ liquid from startups and most old corps, ever. Maybe you find one that pays half and that's about it.
Wow. I thought 60 was a lot. I don't think I did any. Honestly, if you spend that much effort practicing something, and it's not paying off, you might have the wrong strategy. E.g. maybe you are failing something besides coding, or maybe you are missing some other fundamental background that you need to go back and study.
60 is quite low for leetcode. There are a few dozen patterns to learn. Most people will probably do on the order of 200-300 before they are truly comfortable. I've heard some people do it in as little as a month or two with 8 hour days. But most people can't do that because you will go insane and suffer extreme burnout.
> if you spend that much effort
yeah that doesn't start until like 400+ LC problems. If you're still struggling with mediums at that level then sure. But at <200? That's entirely normal.
Sure you may get lucky and get in Google with 10 LC problems under your belt. But those are not good odds. Places are asking LC hard nowadays. And you really don't want to see what people in India are putting up with.
What a luxury! I only had 3 weeks of vacation and burned through almost all of it because every company expects you to do multiple rounds of interviews during business hours.
Eventually I just quit because it was literally impossible to search for a job while working full time.
Even if you have the free time, I'm surprised that they managed to batch the different stages and have all interviews in the same time period. If I'm interviewing, at any given time I'll be sending out resumes, and talking to recruiters, and doing technical interviews, and waiting for feedback asynchronously for different companies.
You absolutely can prepare for system interviews it’s just some of the best content for doing so is behind paywalls. I opted to buy a course on leetcode covering this topic and my performance before was like night and day. Going through about 20 worked examples each of which has a 45 minute explanation means learning about 60 patterns you can slot into various problems. Once you’ve seen the patterns it’s a lot easier to apply them in different contexts to piece together the system you want.
Thats a good endorsement. I've seen those and wondered if they were a waste of time. I think I might consider one now if it was that beneficial. I have no problem paying for educational content. But I was afraid that stuff was just institutional fluff and internal-marketing.
Yeah, you can also pay to do system design interviewing practice. I did a few paid system design interviews last year (interviewing.io) and found it helpful before a few FAANG interviews.
I try not to burn my referrals all at once. Nothing wrong with that, but I tend to do applications with places where I am referred one at a time. Otherwise I'll feel like I'm turning down a friend should the place make an offer.
I know it's a very touchy subject, but it would be immensely helpful if OP posted numbers about the offers he got.
Personally, my compensation is underwater due to the recent stock crash, and leadership has insinuated to expect zilch for 2023. I'm not in the job market due to visa, but I feel the insane comp bubble has burst, and I missed the train. I'm anxious to see how the job market evolves over the next year, but I'm afraid we won't see compensation packages nearly close to how they were the last couple of years.
I agree it's touchy unfortunately. I'm not comfortable sharing in public due to $REASONS, but I have been sharing with friends/family/folks who've been looking.
I will say I got offers comparable to my pre-stock crash comp, but I hit a comp cliff either way in 2022 (even without the crash).
Ninety minutes to do a thing. Evaluations are hard, but that barely relates to my experience as an engineer in any way. Couldn't they ask in detail about previous work instead?
In the job market right now. I have a question about talking to recruiters.
I am talking to a couple of them, who are working with companies whose name or location they won't even disclose until the company looks at my CV and decides to move ahead.
But the recruiters want me to specify a salary expectation. But my salary expectations depend on whether I am living in the downtown of large city or in a smaller city, or able to work remotely.
What number do I specify, or how do I approach the situation otherwise?
Tell them you are working with the other recruiters so if they don't want to double-submit (which invalidates the candidate in most cases unless the resume is so good the company does not mind paying double commission) they will have to tell you which companies they are submitting to. If they still refuse to tell - they don't work with anybody and just submit you to any open job ad they can find, you can do the same yourself with a lower chance of screwing up (e.g. the aforementioned double submission or the company explicitly rejecting any representation).
The trick is to give a range where the low end is one you're happy with and top end is of the jobs who you're going for. At the end of the day it's a filter and not the be all end all that you'll accept when negotiating time comes.
I've generally had bad experiences with third party recruiters so I try to avoid them when I can. in your position I'd probably be upfront and mention the ranges you are OK with in the different situations.
> Focus on your physical self: make sure you've gotten enough sleep, have food ready to go for lunch, and have breaks between the interviews if possible. If the interviewer asks if you need a minute at the start, and you do - please take it.
This is great advice! I interviewed in 2022 and found that I performed significantly better when well rested. I also found that eating healthy helped during the post-lunch interviews.
Those are some impressive numbers. While it seems clear that you can get interviews applying through websites and recruiters, I'm amazed by how effective networking is. Any suggestions on how I should manage that? I add people on LinkedIn, but that's about it. Don't really socialize or make friends with people at work.
The answer is to socialize and make friends at work.
People who try to “Network” artificially won’t see great success.
People who are genuinely take an interest in what others are doing, and are intentional about meeting once or twice a year for coffee to catch up, are the ones who can call in a favor in the way described in the blog post.
And attend events, make an effort to work with people at partner companies/clients/customers/etc. That's how I've always landed new positions. I've never actually applied for a position since grad school years ago.
Thanks for sharing. Congrats to the author. 11 offers is amazing
I doubt one can get so many in today's market but the good thing is you dont really need so many, 1 good one is enough. Ideally you have 2 so that you can nagotiate more easily.
thanks! I agree that you don't need this many offers - I took the time to interview at more places since I wanted to explore what was out there. Wouldn't recommend interviewing this heavily.
I asked ChatGPT one of my company's interview questions (which involves designing a bloom filter). It got it very subtly wrong; when asked to fix things, it made it worse. I would definitely not use it to interview for jobs yet, but I do think it would be good for training interviewers to detect BS and suggest "hints" that lead things in the right direction. Practice interview without wasting any human's time!
Meanwhile, humans have not really struggled with this problem. We tell you what a bloom filter is, you just have to write the code to spec. (This is different than some interviews where you need to know the answer to the trivia question; know what a bloom filter is and how to implement one, or you fail. ChatGPT was not capable of either.)
Overall my take on the current state of AI-produced computer programs is that the programmer is forced to take on the role of code reviewer and detail checker, which I think is a more difficult problem than just typing in code in a green-field environment. The thing that's difficult about reviewing code is that things can diverge away from your mental model so quickly, that you don't know which details you should be checking up on. When you're writing it from scratch, you don't lead yourself astray in the same way.
In a few years this could be completely different, of course.
It's been working well for me all things considered. The harder the leetcode problem, the more I have to ask it to fit the answer it gives me, but I have always gotten it to arrive at the correct (and most efficient) answer. I'm impressed. You'll have a better time with it if you can tell it what's wrong with the code, even if it's just "given this test case, I expected X but this code gives me Y".
You don't need OpenGPT (or whatever else) to "cheat" at interviews. Simply copy pasting the prompt in Google is going to get you much better results, most often the exact leetcode page that the question was lifted from (with very useful discussion and solutions).
Of course most competent companies will ask a minor follow-up which will stump candidates who are relying on such tools.
I've applied to interview a few places I never plan to work at, just so I could do their leetcode interviews. It's like a brain teaser book but you also get a live human evaluating.
I sometimes interview just to stay somewhat sharp. I interview with Amazon every time they ask, which is every 6-12 months, and they actually gave me Leetcode Hard last go around in October. Usually they give me Leetcode Medium. It's always for a SWE II role so that doesn't explain the increase in difficulty. Makes sense they are being more selective ahead of layoffs though. I'm sure someone high up knew the layoffs were coming about a year in advance.
If you're good enough at prompting ChatGPT to get a working leetcode hard solution in the time allowed, you're good enough at writing complete and correct code for the job.
I'd rather be tortured by al qaeda than go through all that. I wish someone would write an article on how to hack this process. There's always a back door. Then again if there were I wouldn't be sharing it here.
If you would be very successful in that role... but the company says no... that is a poor fit and is a reflection of their ability to hire qualified candidates to meet their real needs.
I'm confused why this is funny ha ha to you...Care to expound?
I was genuinely glad I didn't get those offers as it would be awkward turning them down. As an example, in one of the cases they were looking for someone who could do a lot more frontend/product work (something I don't have much experience in) so even if I did join, I wouldn't do well. That would suck both for me and the company.
(yes, it is a bit of cope - but hey, it's only through interviewing/learning more that you find bad fits)
That's all I needed to hear. Back in the day, the college you went to opened (or shut) doors to get interviews. And most people, who did not attend an Ivy League school or similar, rejected the concept as being anti-meritocratic.
However, today, it's the same thing -- just replace college with the company(ies) you list on your resume. A shitty programmer with a bad attitude from Meta, Google, etc. is far more likely to get opportunities than the best programmer in the entire insurance industry, or the person who wrote the greatest dry-cleaner management software. It's quite unfortunate.