> Thomas Ptacek has this great line about how “we interview people whose only prior work experience is "Line of Business .NET Developer", and they end up showing us how to write exploits for elliptic curve partial nonce bias attacks that involve Fourier transforms and BKZ lattice reduction steps that take 6 hours to run.”
This is why we stopped hiring based on resume and just use it as a conversational piece to figure out if the candidate can be coached or not. We don't give much of a shit what you currently know as a prospective employee. We care about how fast you could learn new things that we haven't even thought of yet.
I wish more interviewers were like you! I happen to think there are a lot of developers and other tech employees out there who, for reasons you as the interviewer don't know, are plugging away at a company/role way below their capability or current skill level. Or, who are literal geniuses but don't happen to have MIT, Stanford or UC Berkeley on their resume. Capable of research and invention, but no PhD. People who just were never discovered, mentored and given the opportunity to get on a rocket ship. Raw talent sitting there writing CRUD apps for some dopey company just limping along, who sometimes don't even know how good they are.
Yet, when [the usual suspect] companies are hiring, they back a truck up to Stanford and just shovel new grads onto it. Or their automated filters (that desperately try to get the candidate flow from 6,000 to 6) eliminate anyone that doesn't have a narrowly defined "right background".
Better to just look for things like: grit, coachability/potential, focus, ability to reason about things across many orders of magnitude, ability keep a lot of aspects of a complex system visualized, and generally whether they can understand problems and come up with solutions. None of these involve playing "algorithm gotcha" or solving leetcode puzzles.
EDIT: Easier said than done, though. I don't have a practical solution to how to do this with a multi-thousand candidate flow for each job posting.
> Or, who are literal geniuses but don't happen to have MIT, Stanford or UC Berkeley on their resume. Capable of research and invention, but no PhD. People who just were never discovered, mentored and given the opportunity to get on a rocket ship. Raw talent sitting there writing CRUD apps for some dopey company just limping along, who sometimes don't even know how good they are.
I've scouted smaller/less known schools with great CS programs, so it definitely can be done.
I know enough French to be dangerous so they sent me to the Polytechniques (Montreal, Paris, Swiss...) and got a great signal to noise ratio there. But it's a plane ride instead of an Uber...
> Better to just look for things like: grit, coachability/potential, focus, ability to reason about things across many orders of magnitude, ability keep a lot of aspects of a complex system visualized, and generally whether they can understand problems and come up with solutions. None of these involve playing "algorithm gotcha" or solving leetcode puzzles.
A degree from a solid school is a good predictor of that.
Algo questions are used because it's a common vocabulary, everyone who matters just knows this stuff and it's possible to solve a problem in 45 minutes (vs giving a 2hour+ take home assignment). And it's really good at spotting people who, no matter how long you give them, won't be able to write a single line of code.
> Better to just look for things like: grit, coachability/potential, focus, ability to reason about things across many orders of magnitude, ability keep a lot of aspects of a complex system visualized, and generally whether they can understand problems and come up with solutions.
If you want to hire 100 people then using "Got into Stanford and didn't flunk out" is a fairly cheap filter to approximate these things.
In the modern era where us news is ranking schools based on graduation rates it may be more fair to say that they were a successful looking junior in high school.
It used to be that having graduated from a selective school was a proxy for SAT, which was a proxy for IQ, and large companies legal departments tend to refuse to sign off on IQ tests as they are possibly biased against protected classes, so recruiting from selective schools was a way to launder recruiting people with high IQ scores.
> We care about how fast you could learn new things that we haven't even thought of yet.
Are you accurately able to determine that in a conversation that lasts less than an hour? If so, I am really curious how.
I tutored people for years in college and I don't recall my first impressions being all that accurate. Accuracy would be even worse if I also had to guess the speed at which they would learn.
What makes Moneyball a fascinating example is neither Brad Pitt's star-power nor Michael Lewis's writing. Baseball is an optimal canvas for finding market inefficiencies because everything is tallied and tracked. We can ascertain after the fact who ultimately did add value to their organizations.
In this case, the author argues what Billy Beane argued, "if we think like the Yankees in here, we will lose to them out there." If non-FAANG companies compete for the same prospective employees as FAANG employees, they will lose to vastly superior compensation packages. Fair enough.
So the question, which traits are analogous to on-base-percentage? Take the FAANG-hire-resume, then subtract features (e.g. lose the top-10 university credential, remove a couple years of experience, ditch the years with a trendy package, etc). Which decreases the hiring cost the most with the smallest loss of long-term value to the hiring company? What data set would track/measure this and what could be deployed as a proxy?
> If non-FAANG companies compete for the same prospective employees as FAANG employees, they will lose to vastly superior compensation packages. Fair enough.
Already this part is unclear. Baseball is different in another important respect: You have no choice about what you're doing. The Yankees, the As, anybody - is hiring you as, say, a pitcher. That's what you're good at, that's what you're doing.
But I chose to work where I do now, for far less money (the people hiring weren't sure but they suspected the previous salary I listed, which was true, was more than the head of their entire 100+ person department, several steps above me on the hierarchy) because of what I do.
What I do here makes a difference I care about, whereas say, working at an investment bank (as one of my ex-Google friends does) would not do anything except make rich people even richer.
If you're a big deal maybe you can carve a niche so that whoever it is that hires you, they're really hiring you to do whatever it is you do anyway. I can't imagine Bjarne Stroustrup feels what he does (at ms.com ie Morgan Stanley) is mostly about making rich people richer, Morgan Stanley presumably mostly lets him get on with C++ stuff. Likewise hiring Linus Torvalds wouldn't redirect him from working on Linux. If that was going to happen it would have happened a decade or more ago.
But for most of us in programming, where we work dictates what we do, and that influences whether I want a role I'm offered or not.
Moneyball wasn't about finding OBP - it's about finding what helps teams win (not making outs, ~2001) and simultaneously undervalues. The key thing here is this is dynamic - baseball no longer undervalues OBP.
Otherwise agree with what you say - some set math of Successful_Employee_Characteristics - What_FAANG_values, recalculated every couple of years, is how I would summarize the strategy.
> So the question, which traits are analogous to on-base-percentage? Take the FAANG-hire-resume, then subtract features (e.g. lose the top-10 university credential, remove a couple years of experience, ditch the years with a trendy package, etc). Which decreases the hiring cost the most with the smallest loss of long-term value to the hiring company? What data set would track/measure this and what could be deployed as a proxy?
The other question is: Why not simply match FAANG comp package by raising more money?
I'm being 100% serious here. Software is pretty much the only field which can scale almost infinitely and the only cost really is compensation (Compared to salaries, MacBooks are almost free!). Think about it, 3x comp to get a 10x engineer? Worth it.
>If an employer has decided to fire you, then you've not only failed at your job, you've failed as a human being
I mean I would take that as a pretty good ironic comment - I would definitely need a lot more context for me to decide that the person who said it meant it for real.
That is to say there are some viewpoints that can be held by real people, for example that the earth is flat, but if someone says in a passing comment "I've decided to cancel that vacation to Indonesia because I don't want to fall off the edge of the world where the sea monsters dwell" it is more reasonable to suppose it facetious until we get enough data to figure no, they're just nuts!
I've spent enough time in counseling over the past year to tell you that there are people out there who tie their identity so strongly to their jobs that this statement would definitely be true. There's at least one of them - that's me!
Part of why I'm in counseling is that I recognized this, and I want to change it.
you might feel that about yourself, but would you have expressed it to another person about them? Lots of people can feel that they have failed as a human being when they get fired, but it takes a real nut to say that about someone they don't know as a piece of objective fact!
Yeah, I agree - that's a harsh verging on psychotic thing to tell someone who's just taken a blow like that.
I hate to say it, though, but I think the sort of person that would say something like that is the sort of person I have been for the better part of the last decade. I defined myself so strongly by my job, and what I did, that I probably would have seen it as a huge personal and moral failing to be fired.
I pity the person who said that. (Not nearly as much as I pity the person who heard that. What a shite thing to say to a friend, or even an acquaintance!) That's no excuse for that level of unkindness, but I think I see the worst parts of my personal history in what would drive someone to say something like that. I hope they see that, and I hope they are inspired to change when they recognize it.
Ok well I'm glad to hear you're better, but as I started out with I think that is the less likely situation than just being ironic and the irony not being apparent (because it was said online).
But maybe I just think that is the more likely because I can totally see myself saying that ironically.
on edit: I probably don't sound caring enough but I have a hard time doing that, so believe me I am glad you do not have this problem anymore since it sounds pretty bad.
TL;DW: "We're professionals, treat me like a professional. If it's not working out, say so, and I'll make it right or we'll shake hands and part ways on good terms". I used to provide clients with a "how to fire me" document because it made them feel comfortable hiring me in the first place. (Tell me, I return materials, pay me outstanding balances, here's the keys you change, here's how we wrap up the contract terms, etc etc)
I've been "fired" a bunch of times, and at times have had those same clients that "fired" me refer me to new clients. It's the same as with most technical work, I find: if you're not failing at least sometimes, you're not pushing the limits of what is possible.
> ...need a lot more context for me to decide that the person who said it meant it for real.
Yes, of course. But the thing that ends up hurting a lot of people in a really deep way is the psychological hangs-ups caused when they conflate THEIR OWN self-worth to their employment status (not just employed or not, but also level and salary).
Any adult who has a solid self-image can tolerate hearing "you've failed as a human being" from derps all day long, what ends up causing damage is if they take it seriously, or much worse, tell it to themselves.
Is it from people talking about themselves? If so, I'd default to believing it's honest. When people get a setback like that a huge amount of them believe they failed as human beings. Not doing so requires a large amount of introspection and wisdom.
If it's people talking about other people, without the emotional baggage, then I agree, it must be either irony or some evil one trying to control people.
To quote Homer Simpson: “It’s funny because it’s true.”
Whether the original commenter quoted by the author of this article (that quote should be proceeded by >> above, to make that clear) meant it in jest or not doesn’t change the fact that employers actually judge candidates with this exact criteria every day.
The same kind of people who brag about never taking a sick day or always working unpaid overtime.
If you do either of those things, absolutely fine, you have your reasons, but theres a certain kind of person who wears it like a badge of honour and will jump at the chance to tell you about it.
Not that I think they're bad people for it, just very odd, and not really someone I'd like to be.
I remember when Travelocity went through layoffs in 2009. A thousand people out the door, about a third of all employees. No me, and I had just received a critically negative annual review for the prior year.
pretty much "nobody gets fired for buying IBM" for hiring
if you copy Google/Facebook hiring strategies and make a bad hire, people can defend themselves. most people aren't willing to put themselves on the line by trying to revamp the entire company hiring process or trying something new
It will only change when some new startup leverages this to get top tier talent and then becomes successful. Incidentally, this was how the current hiring practices became mainstream. Google/Facebook used algo questions while Microsoft was still doing brain teasers
1. Go to a programming boot camp. Language is immaterial and it should be no longer than one month maximum.
2. Teach yourself ReactJS using YouTube videos over the next two weeks. Double down on your really worthless programming experience from step 1 to get a feel for declarative OOP to fill the gaps in JSX.
3. Learn to setup an automation environment using Docker, Kubernetes, and some popular noSQL DB.
4. Do any side hustles as necessary to pad out a resume.
5. Money.
I never mentioned CSS or git. You have to know CSS and won’t be able to fake this. Dabble in CSS here and there in the browser dev tools during those other steps. For git open a GitHub account and go through some basic git commands once a week.
Everything else is practically irrelevant to attaining employment. You don’t need to be good at programming. At most places accessibility is extracurricular and they won’t let you touch security considerations.
Have you ever tried to teach programming to beginners? 6 weeks is an absolutely bonkers timeline for zero-to-employable-as-six-figure-React-Dev (people were pissed at lambda school for dropping from 9 months to 6, and with good reason). I feel like step 0 of this would have to be “Be really familiar with computers to the point where you’re almost a programmer already”, because a lot of people take at least a couple weeks to fully grok things like:
- Where to write code
- How does a webpage actually work
- How webpages and other stuff get served
- How does the terminal work
- What does a compiler do
- What is a syntax error
- How scope works
- How functions and abstraction work (this one is often a huge mindfuck)
Then there’s the CSS and git stuff you mentioned. Beginners often find CSS super frustrating. The tutorials from different years recommend different things, and I occasionally find people trying to build pages using weird combos like position and grid or floats and flexbox. And then there’s git, which has a huge learning curve and is very difficult to pick up without someone to tell you “you’re trying to do this? Here’s what the command is called”.
In the end, even if you can figure all this stuff out that quickly (again, starting from zero) you’re going to be starting as a junior dev (You won’t be passing any tough technical interviews) and unless you’re in the bay area there’s no way you’ll be making close to six figures. And finally:
> you don’t need to be good at programming
If I smell this attitude on someone, I’m not hiring them. If someone is new, applying as a junior, and is willing to learn, that’s fine. But when I hire someone junior, I know I’m going to have to do a lot of work to train them up and fix their stuff as they get acclimated to working in software. And if they don’t follow directions, learn from their mistakes, or show a desire to improve because they’ve internalized the mindset that “you don’t need to be good at programming”, I’m going to be quite disappointed in them.
The most annoying thing when learning to program is that experienced programmers take your bullet points for granted -- and don't explain them well / don't explain them at all. But grokking those bullet points has a significant material impact on your ability to pick up the actual language itself later on.
The same is true when you're experienced -- programmers often say that programming is easy, which is because _syntax_ is often easy. It's the mechanics of how everything fits together that is difficult, and is often overlooked as a concept.
Yes, the timeline I propose is incredibly ambitious with complete garbage for output, but the proposed end state is still extremely plausible. And yes, the steps I mention do require some unmentioned prerequisites like the ability to read (writing in natural language is unfortunately optional) and the ability to turn on a computer monitor.
> If I smell this attitude on someone, I’m not hiring them.
I don't think you have worked with the web in a professional capacity. Greater than 90% of the people doing this work now have no idea where the nuts and bolts actually go. They know they cannot do their jobs without some sort of framework to do most of it for them. They also know they need half a million NPM packages to left pad 3 lines of text and writing the equivalent functionality themselves is emotional torture (its like child abuse, except these are adults).
While this attitude comes across as code smell it is the industry norm. The unfortunate conclusion there is that it makes life substantially harder for people who are experienced and prefer to not operate in ways you might refer to as code smell.
I have worked with the web in a professional capacity for nearly a decade.
Your comment comes across like someone who has read a lot of HN comments, mixed it with an anecdote or two heard from friends at a bar, and is trying to pass it off as industry experience. And yeah, if you believe HN comments, then everyone is making six figures (but somehow also contribute no value), things like docker are easy to learn and require no skill (because folks here learned them easily after having years of software development experience) and npm users pull in packages for string operations (something that was true years ago, is still occasionally true in open source, but is not true in most shops I’ve worked in).
Believe it or not, my current client does code reviews, mandates 85% unit test coverage, and tests in all the major browsers. And if anything doesn’t pass muster, even small visual defects, it gets kicked back and is not merged. When I talk to the people I meet at JS meetups, their workplaces are not all the same, but they’re usually similar.
I have been writing JS fulltime for major corporate employers for 13 years, but have been writing web technologies in some capacity for about 24 years. The friend at the bar anecdotes you are talking about are my own personal observations doing this work.
It really doesn't take much in this technology space to be a 10x (or much more) developer. It really boils down to don't do stupid things and don't wait for dependencies to do your job for you.
Seems like it's you who is coming up with anecdotes or indicating personal experience as industry standard.
I have seen first hand at multiple places that web dev is extremely fashion driven and half-assed code are passed off as industry best practice.
Moreover even without knowing the internals at workplaces, I can see typical websites are slow, buggy, crappy so even if best code, it does not mean much to me as a user.
This sounds like a recipe for 'devops' people. They don't know a single thing about anything. It's like their brains are full of copy and paste bullshit.
They're almost as useless as "CyberSecurity" graduates.
You also didn't mention where to work. In my country a React job will get you 50k a year at most as a junior, and almost nobody recruits you if you don't have a master's degree.
the hatred of any sort of app or platform stems from actual programming experience or preferences though, and the steps outlined are for how to get employed with good money without either of those things at the start.
I went from 2XXk to xxK when I moved from managing a recruiting office to software development then to 1xxK within a year of software development.
I didnt follow this exact path but while "have a skill set people will pay for and know how to negotiate" is a drastic over simplification it is possible and realistic.
Recruiting is sales and sales is hell unless you love it. I did not love it. A lot of Engineers would be able to make a lot of money in recruiting, or other sales roles, because it is not that hard. Its just draining and a never ending treadmill of metrics. Say what you will about SWE but the expectations to always be beating you previous metrics in sales is unsustainable and why so many companies develop shady sales practices. I wasnt willing to do that stuff and knew I could switch careers.
> one of the 25 schools that claims to be a top 10 cs/engineering school
Hey, I went to one of those! Definitely going to steal that.
I also agree that a varying percentage of graduates from any reputable school are top notch. Many go to State U or State Tech because it's what they can afford, their friends went there, it's within driving distance of their home, or they like Big10 football.
Yes, I think it probably pays to looks at the top school in each region for this reason! I knew a lot of very smart people at University of Florida because it was essentially free with the bright futures scholarship.
> Experience is too random, with payments, mobile, data analytics, and UX."
I have heard this more than once myself (often phrased as “help me understand the common thread”. Short-sighted idiocy. I may not be the right candidate, but someone with more narrow experience is likely to over fit.
In my current work it turns out I may be one of the few in the world with experience in most of the key areas we need. As the famous quote goes: you can only tell by connecting the dots backwards.
Anyone with FAANG / corporate tech perspective - is "Contractors are generally not the strongest technically" an actual thing? Or is just something recruiters say to avoid saying the real reason for no?
In the games industry at least, some of the brightest folks go through a contracting phase - either to work on stuff they like more, to bootstrap their own project or just out of cynicism about the industry.
It does tend to be a shorthand. Obviously, there is no reason that someone on a fixed-length contract would be intrinsically different than others. In the corporate line-of-business world, contractor often means staff augmentation and most staff augmentation firms are selling by volume, not quality.
I think you might have misread/misunderstood what the years listed mean; All four of these are the same blog post, which was posted in 2016, but it was posted to Hacker News in 2016, 2016, 2019, and now 2021.
This article has a lot of references to people who must be at least marginally famous in the programming world, is there an annotated version somewhere that says who they are - for example this one:
>He eventually got a job at Cloudflare, was half of the team that wrote their DNS, and is now one of the world's experts on DDoS mitigation for companies that don't have infinite resources. That guy wasn't even a networking person before he joined Cloudflare. He's a brilliant generalist who's created everything from a widely used JavaScript library to one of the coolest toy systems projects I've ever seen.
I've seen a lot of articles like this one about big companies being dysfunctional on hiring and management recently. To the people that went through multiple companies like that, if you were 25 right now, where would you go, and why? Or more generally, what would you look for in a company, how do you evaluate them?
Would you buy a book of collected blog posts? Would you be willing to pay, say, 99 cents for a nicely printed and bound copy of a given blog post in pamphlet form if it also came with a handful of "shareable" (read: disposable) ones?
But is this just another example of “the market can stay irrational longer than you can stay solvent”, meaning, is there a severe mis-allocation of capital into building large, expensive, inefficient software engineering organizations? If so, why is the market not “correcting” for this?
The point of Moneyball is that the market did not correct for it for so long, it takes a catalyst and might happen significantly later than when the first people recognize the issue.
Recruiters aren't incentivized to hire the best people. They are incentivized to not be blamed when they hire poor people. Following "best practicies" (i.e. trends) for hiring lets them do this.
Well what are you going to do walk into an interview and point out that the same people writing the bugs are the same people coding the buggy tests that are supposed to solve the buggy code?
I guess the point here is that these companies are acting irrationally, and that’s bad.
The way I look at it, these companies are telling you how to play the game. All you have to do is play it and you’ll make quite an impressive amount of money. Maybe C# is just as good a language as Ruby, but if Ruby pays twice as much I’m learning Ruby. (As it happens I’ve worked in both, and Ruby paid WAY more than double.)
There’s a difference between some noumenal, pure engineering and having a career in this industry. I can’t think of an industry that isn’t like that, frankly. Whoever is #1 on Spotify right now is not the most technically accomplished musician in the world.
This is why we stopped hiring based on resume and just use it as a conversational piece to figure out if the candidate can be coached or not. We don't give much of a shit what you currently know as a prospective employee. We care about how fast you could learn new things that we haven't even thought of yet.