> Hackerrank-style interviews suck and they aren't representative (not even remotely) of real working conditions. But they are good at something: evaluating the tenacity and the drive of a candidate. You need to work hard to ace these interviews, and companies are looking for candidates who are persistent and able to work hard—even on things they don't choose to work on.
What options will you have as an experienced candidate which are competitive with FAANG?
I'm an experienced engineer, and my leading FAANG offers were over 50% higher than my top non-FAANG offer.
In fact, my non-FAANG offers as an experienced engineer weren't much better than the offers junior candidates get. So unfortunately, it seems if you're an experienced candidate who wants to be appreciated and rewarded for your experience, FAANGs are basically your only option. Non-FAANGs will pay you maybe 30% more than a junior, and for that they'd expect you to lead a team and work twice as hard.
I moved on triumphantly from my previous programming job where I built a company's product from Greenfield to million a month with awesome performance and features.
Other start-ups in my area are offering me 5-10k more than I was making at my last job to do the same thing again. My counter offer from a large company was 50k higher for a laid back environment. Guess which opportunity I took.
Hilarious to me. One lead engineer is worth three junior engineer at least. I see startups doing the same thing over and over again. Hiring Junior developers fresh out of boot camp who are completely worthless, and refusing to spend money on high quality candidates who are interested.
Far more, I'd say. Fresh graduates and juniors are often held to almost no production bars at all. In many startups, you could be a junior for a year, accomplish very little, yet be in no danger of failing any performance metrics.
Before I left the startup world behind, I observed that seniors were often held responsible to 95% of the production that was happening at their startup.
You'd expect them to be paid x10-20 times as much as juniors, but instead it's typically no more than x1.3-1.4.
So as a senior engineer with a track record of shipped projects, I get to work harder than all juniors, be held to x20 their performance metrics, and for that I get 30% better pay?
No wonder every single senior engineer I know has a "FAANG or bust" attitude nowadays.
Google is known for "low-balling" if you compare to Facebook. My Google offer was higher than both my Amazon and Microsoft offer by a significant margin, and these offers in turn were higher than almost any other offer I had in the Bay.
The only companies that got anywhere near Google on pay were some very exceptional unicorns.
My typical friend who got a Google offer, already had a bunch of other offers by the time their Google process finally completed. Then the Google offer came in and it was typically higher than most or all of these outstanding offers. Often substantially so.
However, if you have an outlier offer that is based on some theoretical equity valuation ("an extra $1m in stock options based on our last fundraising round"), Google will not match it.
Frankly, they don't need to when their initial offer is already higher than most other options, and far safer.
Also from what I've seen, Google won't just match other offers, but they do have some specific companies whose offers they will match, like FB. FB is also one of the few companies that may offer you higher comp than Google.
By that logic, surely every interview practice is justified? And the less related to the job, the better?
I could ask a programmer to build a wooden boat, become a proficient opera singer, or complete four marathons in a year.
Maybe! Quite often success at work is determined by getting crap done that doesn't require the skills you trained for initially.
I'm given to understand companies used to do this.
This idea has been tried. It’s called college.
You could, but you would get better results by posing more relevant challenges.
If you ask them to become singers, you'd get a whole lot of people with great voices, who may or may not be good engineers.
At least coding solutions to DSA problems has a fairly high (though not perfect) correlation with being a good programmer.
In a sense, they are. As long as the interview practice is well understood by the applicants, it only leads to filtering the applicants that cannot pursue the requirements for that practice. Granted, the FAANG interview process and filtering only works because the SWE jobs are desirable enough.
I understand that the required practices and filtering also lead to a certain type of applicant. This is the main fault of the system (the lack of diversity potential).
Talking about age discrimination in particular, it's difficult since often older hires may not have the shiny new skill on their resumes or may have something indicating that this person may not be keeping up with tech (the bias). One of the weirdest things about joining a startup is realizing that 98% of engineers are in their 30s or 20s, while not having any engineers in their 50s, 60s or 70s.
Honestly, I think 80% of what keeps candidates from succeeding is an unwillingness to conform their character and personality to the needs of the institution that is recruiting them.
That said, I don't want to be a corporate drone either. There are more important things in my life. Like family, health, my hobbies, etc.
Yes, I know that if I lived the organizational values of my company I'd get ahead. But honest, I'd rather go play catch with my kids than obsess about customers[1]
That being said I don’t think there’s a really great way to assess that in a 5 hour onsite interview. So hackerrank ends up being the best they’ve got.
Someone's job performance over time depends on lots of different factors, many out of the control of the company. Understanding someone's potential and risk can be the result of conversations about what they have already done and possibly looking at what they've done. No irrelevant puzzles needed.
A company could probably save lots of time and money by cutting some of the fluff in the process. From the pov of a candidate with a good job already testing the waters, these companies come off as trying to hard to add objectivity in situations where it doesn’t exist.
We’ve found that an average undergraduate or masters in CS or STEM field who just knows how to code basic Python will require ~250 hours of total work to become interview ready for FAANG. That’s a lot of time which is why I wouldn’t consider it gaming a system.
I have a friend that is in his late twenties and is now a partner for a boutique investment shop. About four years ago he made a commitment to pass the CFA 1 in nine months. Studied a little each day after work, and then studied more on the weekends. 180 hours total. Passed the CFA 1 without any fan fare. Hardly told a soul. Did the same for the CFA 2 the following year. Didn't tell any colleagues. No fan fare. Boss was pleasantly surprised when he listed the new qualification on the firm website.
He does the exact same thing the following year for the CFA 3. His wife tells someone at the firm, and when he walks into work they throw a surprise celebration for this very impressive accomplishment (many people spend a decade reaching CFA 3).
A couple months later the managing director moves to have the firm make him a partner. Easy decision. You had a junior analyst quietly dedicate themselves to substantially improving their skills.
Now, while his salary is certainly quite impressive as a partner and for someone that young, the true freedom he has achieved is being given responsibility of a new order of magnitude to establish things he wants to establish in that world (internal values maybe, many new types of clients, new employees he can then bring up through the firm, etc.).
Point is: good on you. You're a lesson for most of us.
You ask for 6 weeks unpaid leave. Could be one block, or 1 day a week for 30 weeks. This will cost you $10k gross by my calculations.
Even if you get the $100k job, you are $10k up after 1 year, with no friends and family time sacrificed at all.
As a bonus you were effectively paid for 6 weeks to learn CS skills rather than bash out features and not learn any new computer science skills.
Just FYI - this interview process isn't a one and done thing. You have to refresh yourself at least every year with ~80 hours of prep. Otherwise, you're going to be really bad at it when you search again.
Don't you mean "effective"? I assume that given the ratio of applicants to positions, the primary purpose of the interview process is to eliminate as many unacceptable candidates as possible, not to identify as many acceptable candidates as possible.