tl;dr: The only measure of on the job performance is on the job performance. The only thing that matters to your company is also on the job performance. Why not focus on that?
It is utter voodoo.
I came up in the late 80s. Interviews were maybe 2 hours long. You might be handed a piece of paper with a problem to aggregate some information distributed in a few different arrays and print them out. You know, write some for loops and a few logic statements.
Then you talked about the job. This is the job. Do you want to do it? What do you have to bring to us? Do you have a lot of experience and want to lead, or not a lot and want to learn - we'll adjust position and salary.
And you put a team together. Some were great, some were okay, some needed to be let go. In total, all sw people had a job.
Contrast that with today's voodoo, where proxies are weighed more than on the job performance (the only thing that matters).
In the end, you put a team together. Some are great, some are okay, some need to be let go. In total, all sw people have a job.
It's all exactly the same, except the absurdity of interviewing by proxies. It's simple logic - he average of everything is average. Why have we abandoned logic?
So many things matter more than remembering red-black trees from your midterm (I'm 49. I TA'ed a graduate level algorithms class back in the day, but I don't happen to remember it. That's what books are for). Like being able to run a project. Being able to write documentation. Being able to enter a room with a combative and upset client and keep the business. Being able to mentor your colleagues. Taking ownership. Leading by example. Ability to learn. So many things that are not even discussed in the current interview environment.
I've watched companies spin their wheels for months, rejecting perfectly good people, looking for that mythical person with exactly the right, esoteric combination of skills, who, for some unknown reason, wants to stall their career and get hired into a position where they learn nothing because they are expected to know everything already. People that are eager to learn? No, sorry, not rock-star material. All these prior successes mean nothing, no one could possibly learn a technology or new algorithm, right? And, more than once I've had people get downright snide about it. I'm sorry that you misread my resume, contacted me, and I didn't have that absurdly specific combination of skills. My fault, right?
Y'all have lost your minds. :) Which is okay, we're an eccentric bunch, but jeez, let's inject some reason and introspection into it. The faces are different, but the talent is no different than the 70s and 80s. There's zero evidence that any of these interview techniques are reliable. There's tons of evidence that interview techniques are horribly biased in many ways. Just stop.
I recently had an on-site interview at a big SV tech company. I had 4 interviews and 3 of them flat out told me they haven't read my resume. I didn't do as well on the whiteboard hazing but I'm confident that I could have solved them if I had more than 30 minutes to come up with an efficient solution.
What disappointed me was, 3 of the interviewers had no idea about my background and weren't able to extract my strengths. Even though I am a new grad, I have interned for 2 years as an app dev and learned a great deal about design, code quality, testing and etc...
I have read Effective Java, Clean Code, and Head First Design Patterns. I'm reading Java 8 in Action now. I have not memorized them page-to-page and still need more experience to master them, but at least I know some of resources I can go to for more answers. I have participated in code reviews and enjoy them. I can implement LLRBT and many of the algorithms you can expect a new grad to know but I have not invested my time on hacker rank and uva.
I don't know what SV or big tech companies are looking for. I constantly hear interviewers say they want good engineers but fail to capture the essence of a potential good engineer well. What benefit is there in hazing anyone with problems many engineers don't deal with without the tools they use every day, and with an absurd time constraint. Kosaraju didn't come up with SCC in 30 minutes and he had a PHD. Sure I can spend hours studying for whiteboard questions but to what benefit. I am sure anyone of you can come up with a whiteboard problem you can't solve in 30 minutes, but what does that say about you.
If you want to get a job as an app developer, the easiest way is to build the kind of app you'd like to work on and show it to people. If an interviewer sees that you can deliver exactly what they need, you're an instant hire.
Don't complain that interviewers haven't read your resume; it is your job to tell the interviewer about the relevant parts of your resume and why they matter for the job you are applying to.
Don't complain that interviewers haven't read your resume
I disagree. If you're going to interview me for an hour, the least you can do for both of us is to take 10 or 15 minutes ahead of time to familiarize yourself with my background.
it is your job to tell the interviewer about the relevant parts of your resume
Again, I disagree. A resume is only a very cursory overview. You can use it as a starting point to probe me about it, to at least determine if I've actually done what it says or if I'm just a buzzword bullshit artist.
IMO it's very shortsighted for someone to ignore a resume before conducting an interview.
I agree that it is inpolite to not read a resume or a cover letter. But as a candidate, you can't change the fact that your interviewer is not well prepared. The job will go to the candidate that makes the best of the situation.
The bigger point I'm trying to get at is the following: do not expect the interviewer to discover how brilliant you are on their own. Being smart, hard working, is not enough -- you also need to tell people about it.
The first interviewer told me they haven't read my resume at the beginning of my interview. I tried to highlight my strengths. The other 2 tho told me during the conclusion of the interview, when I asked them what skills they'd want to me focus on if I was to start on their team or any advice for a budding engineer. They both started with something along the lines, I don't know your background; didn't get the chance to read your resume. It was too late to go over my resume as I was being escorted to my next event.
I will be more proactive on my next interviews. I did have my github on my resume; I will add more projects to it and get involved in OSS.
Stop thinking of your career like a textbook. You don't need to memorize all that bullshit. Just provide value to the world and the rest will come naturally.
Couldn't agree more. The "innovations" SV has brought to the interview process are more to satisfy the need to "disrupt" the traditional way of interviewing, with no thought to whether they're actually improvements. Take-home tests that are 8 hours long, talking to 14 people over 12 hours (actually happened to me), and tricky questions that will never happen in the day-to-day at that company: all useless and/or unfair.
Wikiquote says this is an unsourced variant of "[I do not] carry such information in my mind since it is readily available in books" (referring to the speed of sound)
There's some information that I need to memorize (how to use git, how to write code).
There are also and other things that are in the periphery of what I need to know, but can look up easily when necessary. These include things like my mother in law's mailing address, my coworkers' phone numbers, my wife's phone number, the population of the US, how to rewire a plug socket, and the recipe for Belgian waffles.
Each of those things would be good to know, but we can effectively offload it to external memory.
There are many developers who think looked-up knowledge is the same as knowledge understood as part of a wider conceptual framework.
They become annoyed during interviews when they are asked some concept and suggest "I'd just look it up on Google", which is fine for matters of programming syntax, but not fine where it reveals that a developer does not understand an important concept.
Yeah, all that stuff is stupid. Who the fuck cares what the capital city is for each of the 50 states? That's what atlases used to be good for, now it's an almost instant search in Wikipedia.
Has it become more costly to fire bad hires since then? In my mind, a lot of the idiotic behavior in hiring is driven by the fact that it seems to be way more expensive to hire the wrong person than to hire nobody. The risk of litigation from firing someone seems real to a lot of places I've worked.
Usually it's fear of confrontation and laziness. If you're not discriminating against people, it's fine.
I've had a few folks that I've had to let go folks, including folks in .gov with union contracts and motivated defenders. It is doable.
End of the day, don't be a wuss. Setting up some hunger games "audition" is passive aggressive bs. If you're nervous, hire a contractor and get them on the payroll later. Or just hire the person, and give them a months severance. Problem solved.
That's what my current company did with me. Works really well. Some people are not okay with becoming a contractor first but sometimes that's the way things go.
California has its own special brand of crazy laws, but in a lot of cases bad hires persist because poor managers (most) will do anything they can to avoid the confrontation.
It's an at-will state so you can leave without notice and be laid off without notice. It seems that would cover the majority of circumstances and protect both employee and employer, for better or worse.
Yes, it has. There are more legally protected classes than there were, and the laws were changed to make managers liable personally for wrongful termination.
If you're a first level manager at BigCo, the risk of getting sued outweighs the benefit to your career of getting rid of someone who needs to go.
I suspect that's why you see healthy companies doing a lot of relatively small layoffs - when your manager tells you a person on your team needs to go, you'll lay off the one you might have already fired in 1980. The result is the same, but it's a lot harder to sue over staff reductions than a firing for cause.
Startups are different, of course, because a company with only a handful of employees might go out of business if it has to carry one as dead weight.
I think people (managers) have become scared of firing and so try to avoid all risk. Having had to do it is never fun, but it becomes easier the more you do. The first time I had to fire someone I tried everything I could to avoid it and made the situation worse by dragging out the whole process.
The other reason is the company is not really looking to hire, just placate their current employees - "yes we know you are over worked, just hang in there while we hire someone to take off the load".
>"yes we know you are over worked, just hang in there while we hire someone to take off the load"
Which may be why people that are below par haven't been let go? A need to throw bodies at a problem rather than step back and give it some thought / work it out.
Yes it is certainly true that it hard to fire anyone when you are pretending to be looking to expand - nothing breaks the spell that all the hard work is just a consequence of not being able to hire like firing a member of the team.
Also: Give the "not-the-best" people a chance to develop.
The CEO of one of my past clients, a consulting company, always said: "You can teach everyone to be a great programmer". And he put his money where his mouth was: He hired people with no programming experience (even with no university education) and personally trained them for several months. Also, senior people in the company were encouraged to also help them and guid them.
He had to fire some of those people later, mostly because they were not a good fit for the company. But some of them became great programmers and software consultants.
"Hire only the best" is really only half of the battle. Give people an environment where learning is encouraged and failure is expected. And help them wherever you can. Most will learn and enjoy it.
Flat out dead wrong. If you hire "anyone" and try to teach them to be a programmer then you will probably fire them.
This is the sort of attitude that leads companies to outsource their development overseas: "Our programmers are people hitting keys. We'll get overseas people to hit keys and overseas people hit keys for less money.", cause, you know, anyone can do it.
Programming is VERY hard and it takes a huge amount of motivation and hard work to become any good at it. Sure you can learn how to do simple stuff without any serious interest, but to be beyond ordinary it takes enormous work and time and research and Joe Schlepp off the street is simply not going to do that.
If you want to hire people and teach them then you need to look for these things: enthusiasm for computers and programming, demonstrated willingness to learn, energy and effort. You should value energy and effort more highly than anything. Those are the raw ingredients for trainees, and people with those ingredients are far from "anyone".
"Everyone" here I think means the same as "anyone can be a great cook" in Ratatuille - it does not mean that anyone can learn to cook - but that a good programmer can arise from any background.
My experience would support this. You need a mindset keen towards rigor, and motivation. Given those, and guidance, anyone can learn to program - at least in limited contexts.
I agree. My friend was a barista with a philosophy degree. But he had the intelligence, the rigor, and the desire to learn. All I had to do was point him in a couple of directions and he picked up programming very quickly on his own with no prior experience. In fact, I would say he's far better at it than me even after just a year or so. Mindset is the key.
A lot of people joke about philosophy majors not being able to find jobs or make any money (the only people worse off are those who studied sociology :D), but that's not really true unless you're actually trying to become a philosophy professor. Then you're screwed. But aside from that, studying philosophy is a great way to hone your critical thinking skills, though of course it's not the only way. It's a lot more than just reading Plato and summarizing things, especially once you get beyond the intro-level courses. Obviously, I wouldn't recommend taking philosophy courses instead of CS, but they're an excellent compliment for programmers or pretty much any field.
Programming isn't just about writing the code itself; in many ways, that's the easiest part. It's about identifying and solving problems, many of which aren't actually your problems, meaning you have to have the ability to step outside your own frame of reference to understand the problem in the first place and continue doing so in order to work up a solution. Even for a junior developer, those skills can be a huge boon.
Great points, I was going to write almost the same thing. To build upon your last point, I'd argue that a solid (and rigorous!) philosophy education is in many ways better suited to building a sound logical problem solving mindset than much of the common core CS curriculum. Critical reasoning is much more valuable than just knowing Java or C++ syntax. Not to denigrate CS education, but rather to point out there is a lot more to learning to think in a way useful to programming complex systems than the current core of CS teaches. Especially in large (million line+) code-bases.
Learning, say, Wittgenstein's philosophy regarding grammar and language [1] gives an interesting insight into how humans express ourselves and delves directly into the heart of modern programming, IMHO. Rarely do we software developers write low level algorithms anymore, but writing consistent and complex API's is crucial and shares more in common with be conversant with large volumes of philosophical treatises.
Based on that, it makes sense many philosophy students would have successful careers – being able to reason and solve challenging problems is always key point in making good money. :)
Don't take things too literally. What he basically meant was "anyone with appropriate aptitude and intellectual maturity" -- like you yourself said later on, pretty much.
Which may or may not be entirely correct, but is far from "dead wrong."
BTW, please be careful about referring to foreigners, in any context, as "monkeys."
Parent may have edited the post (as I don't see "monkey" anywhere), but I frequently hear monkey used for any human (often fellow programmers) and have never read a racial or ethnic overtone into it and the usage has generally been to suggest that humans (of all sorts) aren't particularly different from monkeys.
I just got back from an business trip spanning 3 cities and 5 flights. The self-loading cargo in the airports, jetways, and boarding the plane could easily have been described as monkeys. I was literally called a monkey by a colleague for absent-mindedly and needlessly blocking a sidewalk in the parking lot while waiting for someone to pay for parking. I took no offense, of course.
I did edit the post, despite the fact that the reference was towards management thinking about programmers as "monkeys" it appears it was being misinterpreted by skim-readers as overseas people being called monkeys.
My point is that if you do not understand that programming is highly skilled work (and many companies think this) then you might think you can get anyone to do it for a similar outcome and therefore it is a commodity and therefore the only thing that matters is price.
Right, I understood the intended abstraction, after the 2nd or 3rd skim.
Just that even analytical people tend to think "associationally" when they see certain keywords -- and one has to keep in mind that not too long ago, people in many of the countries that software development is frequently outsourced to were, in fact, thought of as monkeys, pretty much (or something on the human-monkey spectrum).
So whenever I see associations like that creeping into my own writing, I try to dial it down.
You know what the irony is? Us programmers thinking that "everyone can be a great programmer" is our preponderant liberal and very idealistic views showing.
And we keep going around and shout that and other people believe it. And in turn we are being taken advantage of with long hours, unfair compensation for our contributions and the worse of it all? Ageism in our industry is rampant.
I look at physicians, surgeons, accountants, lawyers and others with envy, because in those professions, the older you get, the more esteemed and valuable you are. We peak at 30.
Software engineers who "peak at 30" are not taking care of their careers. I'm over 50, haven't worked a full year anywhere in years. I contract or consult, and can usually find a new job lead in hours (or just deal with one of the many sitting in my inbox), and get hired in one (max two) interviews. And it's not because I'm a rocket surgeon. I know lots of software people who are eminently employable in their 50s and 60s.
A critical problem that exaggerates the "ageism" is people who sit in the same corporation for 15-20 years, get laid off because companies change, and haven't refreshed their skills for many years. I saw my spouse go through this last year. She got laid off from the company where she'd worked in a variety of roles for 13 years. Her field toward the end was product management/ownership, and she liked it, but she didn't like Agile - she'd had bad experiences at her employer with careless engineers using "agile" as an excuse to have no process and no oversight. She had also spent many years developing deep domain experience in a narrow specialty (international e-commerce). She could find generic PM jobs easily enough, but they didn't exercise her domain experience and they didn't want to pay her what she'd been making just to be a generic PM. It took her six months to find a new job that uses her domain expertise (educating herself about Agile along the way).
For people less determined and hardworking than her, the problem can easily be much worse. If you've done nothing but Microfocus Cobol for the past 20 years and suddenly have to find a new job because you employer finally ditched that antique piece of crap, and you aren't interested in learning how to do something modern, you're in a world of hurt.
Some people stay in a job for 15-20 years. They are a programmer for maybe 10 of those, but over time they grow into a niche, the company grows, and that becomes a job title.
Maybe they get called a project manager, or a product owner, head of QA or engineering or lead architect. Either way they aren't a programmer any more and they mostly manage something instead of doing - manage people, contracts, processes, customers...
And that's why programming has a pay ceiling - careerist programmers become something else, and footloose programmers become consultants and contractors and leave the regular pay figures.
The value of a good programmer probably becomes diminishing returns after a certain point. The best programmer in the world can't raise the sales of your web app past a point - if they do what it takes to do that they become something else, like a product manager. That point depends on the technical difficulty of the task and the size of the opportunity, but most code needs a good coder, not a great one, and beyond that it's all product fit, sales and luck.
I'm footloose too, and I'm noticing as I get older that the people interviewing me have often been in their job a long time. They bet on the company and became less flexible in the general labor market in return for better opportunities internally.
Honestly, when I work for them, I'm usually surprised how many normal things they don't know. Maybe they've never seen proper unit testing, or don't know what ITIL is, or think linux is still an immature product and you should stay safe with a microsoft stack.
But they know why the code is the way it is. They know what was tried in the past, and how it failed. And their boss has seen what they do in a crisis, which is much better than trusting someone unpredictable.
My suggestion to someone young, if you have the temperament, is to stay for up to a decade and grow into a new, higher value role. Then learn that until you know it well enough to get a job elsewhere and move before you stagnate.
If you are not interested in learning something new you pretty much deserve to be in a world of hurt. In this business you can stay relevant into your 80's if you never, ever, stop learning and honing your skills. Peaking at 30 is pure BS.
I'm not 100% sure what you mean by "market worth." Do you mean salary? Because if so, no.
Do you mean something like "net value to company"? Then maybe. Another way to say that would be "you start to get paid what you're worth after 30 or 35."
I'm mid 30's and the salary cap is what I'm experiencing. Inversely, many of my friends in business, law, medical, etc. made less than I throughout their 20's and have now caught up, with potentials to earn far more.
For example, the lawyers I know are now making partner in firms, the business majors getting percentages based on sales and earnings.
I'm looking to become a consultant but the very idea of increasing pay with experience is foreign in the tech field, but standard in other professional trades. I believe offshoring, H1Bs, and lack of a professional association (AMA, bar, etc) is to blame.
I'm also about 50. I am doing far more senior and interesting work than I was doing when I was 30. I felt like I was just starting to figuring things out then, but now I'm doing way more interesting arch and design for work involving a large team.I had great experience earlier in my career working at large, well respected companies.
At 30 I was just getting started. If you feel you peeked, find some new jobs and technologies that you'd like to have on your resume and find new jobs. How about java and distributed systems at a place like google or facebook, c++ on a major database? Look for those things.
I was only referring to salaries regardless of technologies used. In my relatively expensive US city I do not see any companies willing to pay more than about $150k for a senior dev. This is similar to what I see in most cities, and there are not many companies giving stock options as is common at Google, Facebook, etc.
The question is: you've been doing higher level work, but has your compensation flatlined?
Flattened? Probably not, it's slightly higher salary, like 5%, but it's not enough time for my stock grants to vest and show a clear trajectory.
I left one of the big internet superstars, and tried a startup. After a year I decided it wasn't going anywhere, so I went to a medium sized company that is really growing. I make slightly more in salary than i did at my internet superstar company, and more $ value in stock grants. My new company is growing so the stock should go up, but its less certain too. My job title looks good, so I will be able to use that in my 'next' job, if there is one; maybe I'll stay here forever. My goal is $400-$500k per year in salary and stock, over a 5 year average. Say you get about 200k in salary, and you get an initial 4 year stock grant, and each year they give you another 4 year one, so it takes several years of that to overlap.
I am probably going on too much, but I really want people not to believe some ridiculous story about being washed up at 30. Learn something new, people! Before you take a job, look at your resume and see what your career trajectory is. Do you work places and go after a year (this can be bad)? Do you have a substantial time period at a strong company? Can you talk about why you left each company? What can you contribute?
I was more than 10 years at Microsoft, mostly IC and some lead work, and then back to being an IC at the internet giant, then lead at a startup, now mixed design and dev at the new company; i was hired on dev skills plus experience.
$150k in stock and salary is reasonable for an experienced dev, say 10 years. At the startup we paid mid career good devs 150k in salary, plus worthless options. A typical deal for devs with 10+ years who can do c++, java, distributed programming is 150-175k in salary, a couple 100k in stock, paid over 4 years, plus new grants each year. 2 years ago when twitter was doing better I got almost 200k in salary, plus double that in stock, payable over 4 years.
The unadorned "developer/engineer" role[1] -- that is to say, not CTO or even Lead Engineer -- itself seems to tap out after 8-10 years, in terms of both salary and respect.
That is, in the average case, anyway. There are of course companies which pay upper-tranche (in terms of salary and respect) for very highly talented programmers who aren't in leadership or crossover roles. But these are a comparatively rarified stratum; by and large -- for the great majority of companies out there -- the "Senior Developer / Engineer" role definitely seems to plateau within about that timeframe.
So if you don't find yourself drawn to that category of engineer (and to those kinds of companies -- many truly gifted programmers I've known still pull down decidedly average salaries) -- and you find yourself wanting more salary (or respect / responsibility) -- you better start thinking of something else.
[1] Leaving aside distinctions between "developer" and "engineer", as discussed elsewhere recently, for the sake of simplicity.
To be honest I think the statement should be "anyone can learn to program". To be a great programmer requires many things to align, and mental disorders count as well. A combination of mild autism and mild depression (melancholy?), social isolation and environment in general I think is necessary, but tip the balance in either direction and things start to get real shitty real quick.
In my case, when I was 30 I was looking at my first great learning job at Microsoft. I was working on an awesome distributed project, learning a lot, doing fantastic c++ work, making good connections. I was a dev for a few years, then a lead. Shipped some good stuff.
Then in my 40s I went back to being a dev and learned a bunch of cool stuff at one of the amazons, googles, facebooks of the world. Now I'm 50 and have another great job, get tired of replying to recruiters.
Look for jobs that teach you great stuff, expand on the important tech skills you don't have, pay well, and look good on your resume.
My first job hired me with zero programming experience because they thought this. I like to think I turned out ok, but I strongly disagree with the sentiment. A more accurate statement would be "You can train most people to be relatively competent at average programming tasks."
We overestimate how hard programming is. Very few jobs in industry on a proportional basis require the formal math or computer architecture that you get in a compsci program.
I'm not a 10x programmer by any means, but I was able to write and sell non-trivial software in middle school, with little more than a pirated copy of Delphi and a book.
Most of the difficulty that does exist has more to do with bad engineering practice and poor documentation than anything else.
People who want to feel insulted always find ways to feel insulted.
If you choose to read my comment that way then you are choosing to hear the message that you want to hear, which is a reflection of you and your personal issues.
My comment in no way suggested that overseas developers are incompetent - in fact whether or not a developer is competent has little to do with where they live - although economic opportunity is part of the equation. Great programmers create themselves by hard work and that has nothing to do with location.
Another case of hostility masked as objectivity on HN. You are entitled to your opinion, but it seems like you are justifying your position in life more so than providing anything of value to the conversation.
I do agree with you however in that there is a difference between greatness and adequacy
You really can't - but it doesn't matter. This has nothing to do with programming specifically.
You can train most people to do most tasks. With a modicum of natural inclination, competent. With a bit of interest, good. With a willingness to work hard, very good.
However, you can't ever train greatness. You can't make it by any method - only they can.
Your broader point is good though. The most predictably effective way to end up with top talent that works well in your structure is to help it develop.
If they are interested, you can - but probably not in an ... affordable amount of time.
What's desired is that our company have the best talent, but that someone else develop it for us. We'll pay the maintenance fee at a high level but we won't actually invest in it.
This is a simple problem - we know the cost of everything but the value of nothing. And then we begin to redefine "best" down to make it easier to measure.
I would argue it is the exact opposite. On day one name a programming language, important libraries and whatnot and hand out a stack of documents explaining the problem domain. The new guy hasn't necessarily seen or heard about anything of that before. If he can compete with your other good developers after a month, you have found a great programmer. I mean of course if he can do this repeatedly, not that he just was a pretty good fit for the requirements by sheer luck.
I think there is a rough consensus of what "great" means in "a great X" and that it means something like: generally accepted to be significantly better than the vast majority of their peers. Otherwise the adjective becomes meaningless.
You will not meet such people very often unless you are in a truly extraordinary situation, which means you may well never work with one.
My argument is that such people, whatever the field of endeavor, do not ever become great through training alone. You can only develop the conditions for people to reach their full potential, and hope that some (small number) of them truly become great.
> "I think there is a rough consensus of what "great" means in "a great X" and that it means something like: generally accepted to be significantly better than the vast majority of their peers."
You've not really solved the problem by stating that, all you've done is swap one subjective term (great) for another (better).
FWIW, I don't think everyone is naturally suited to programming, but I do know I've met a number of people, with a diverse range of backgrounds, who I am confident would be employable as programmers with the right guidance. The two biggest traits they all share is attention to detail and an openness to learn. I'd argue that's all you really need, everything else is just a matter of effort and experience.
Well, sure, we are deeply into an inherently subjective area.
But I believe you are being obtuse here. I've never met a large group of programmers who wouldn't have rough consensus on their "better" colleagues. Begrudgingly, perhaps, but it is there. Human beings naturally self-organize this way all of the time, the metrics are definitely imperfect but pretending they don't exist or are somehow meaningless is just perverse.
Nothing I said claims that diverse people cannot become perfectly competent programmers, this is certainly true.
The claim was more that "greatness" in part, at least, necessarily comes from within.
> "The claim was more that "greatness" in part, at least, necessarily comes from within."
That goes into the whole nature vs. nurture debate, and you can probably find arguments for both. Playing Devil's Advocate, I'd suggest there are traits that help you become a great programmer, but those can be learned traits. For example, "thinking like a machine". You're a much more effective programmer after you can build a mental model of how the programs you write are working at a lower level of abstraction than the one you're programming in. That's something it's undeniably possible to learn, the main barrier for most people is a lack of interest. You have to be prepared to learn a bunch of supporting material that may not pay off in the near future, but will help you in the long run. That's my experience of what it takes to become good/great/better at nearly anything.
This is seriously one of the best comments I've read on HN in a long time. I've always had this same inclination, just never had the time to try it myself. If your current environment doesn't allow you to hire inexperienced/no-education people, you can at least work with juniors more to help elevate them (and in turn the entire team). This concept goes way beyond tech as well and can be applied to many many industries
The economics are usually way out of whack though. In my experience, a good programmer is easily worth 5x a "not-so-good" programmer and rarely costs more than 2x as much.
We do have a college intern and hire program, but it's very rare for a new college hire to have the same ROI as my best experienced colleagues.
I would add one proviso, that training can only occur where a company already has someone capable of teaching. A raw recruit may do well if they are trained, but someone has to train them. Most startups seem looking to hire skills rather than people. They want to bring in skills nobody already on board has. Without any form of mentor, the raw recruit will always fail.
My big issue: Startup hiring kids to do work that should be in the hands of lawyers. I've seen interns redlining contracts and social media directors heading compliance teams. Some expertise cannot be developed in-house.
> training can only occur where a company already has someone capable of teaching
Is that true? Maybe for a subset of people, and (union) a subset of the skills. But one can surely improve their knowledge in an environment where there is nobody able to teach him. The environment must support a few failures, because they'll happen, but it is possible.
This works less well when you have only 4 people. I've worked on both kinds of teams and done extensive training and have often pushed to hire people who want to learn over people who know.
Most times, the premise of a start up is that 2-4 people with well developed non overlapping skills get together and build something with each being such an integral part that they are worth a good chunk of equity. Perhaps 5/6 is a CS person that you train as OPs / Dev on the side. But most companies don't have the time or man power until the team gets into the double digits.
On the other hand, if you want to build a pipeline to solve tomorrows hiring problems, go out and interview unskilled people that want to do the job you have. There's some wash out but generally you can make a pretty good batch of people. I've done this in a couple places and it can be very rewarding not to mention as they start to develop and move out to other teams they are often willing to spend some time giving back to the program that helped them up on the ladder. Which means that you have more eyes and hands helping develop people and more time for coffee.
I tell you true: when I look back on my career so far, I'm most proud of the work I did helping people climb that hill.
Most of the code I've written, even the best of it, is long gone. The company died, the system eventually got replaced, the business needs changed. I've debugged some epic problems through herculean efforts, but in retrospect most of those problems shouldn't have even existed; bad work process created bad results. I created some great system architectures, but technology advances so rapidly that the great solution of 10 years ago is now sadly out of date.
But getting some non-developer hooked on development? The shine on that doesn't wear off. Taking somebody who's struggling and helping them become a solid contributor? I'll always be proud of that.
The best organizations "grow" their talent in addition to "finding" it.
Talent is not a resource which merely exists out in the wild like some kind of unicorn. Talent is DEVELOPED in the right environments with the right team and the right resources.
Large companies especially, need to take a bit more responsibility for cultivating talented people instead of merely project-managing "resources" ad-nauseum, and then finding increasingly elaborate ways to find and recruit talent.
They don't just "grow" new talent, they "manage" existing talent to higher levels of productivity. In my life, I've observed huge differences in my own productivity in different working environment.
Both ways (grow and manage), though, I find the notion of "find the best, set them free, done" is insufficient.
> "You can teach everyone to be a great programmer"
They tried this during the dot-com boom of the late 90's... I don't think it worked out too well.
They hired just about anyone and paid crazy rates. You could point them out for showing up their first day carrying a "learn ASP in 24 hrs" book.
Fortunately, the dot-com bust weeded them out. Most of these people went back to sell cars or whatever they were doing before while we had to clean out their messes.
Actually things were quite different back then -- a lot of people found themselves in the position of needing to hire programmers, who until then had almost contact with that stratum at all. Nor any familiarity with names of programming languages or other buzzwords.
And IT in general was much more slow-moving since then -- even companies with lots of technical staff couldn't (easily) find people to adapt to the crazy quilt of languages (and yes, paradigms) that burst onto the scene.
So if you had even the slightest idea how a website worked -- your were like a gift from high heaven, and treated as such.
These days -- especially in larger cities, near everyone has social contact with some of the programming persuasion; many have dabbled in some form of scripting, at least, themselves; and you can't walk into a coffeeshop or ride a subway train without being immersed in techspeak.
So things have changed quite a bit, and correspondingly, the bar has been raised.
"They hired just about anyone and paid crazy rates"
I don't think this proves your point. Just hiring someone to do a job does not equal teaching them. Teaching means not only practice, but also well constructed feedback and sufficient time and space to learn, and to learn from ones mistakes.
Kludging an ASP application together after reading "learn ASP in 24 hrs" does teach something, but there is so much noise that you need expert guidance to interpret the results correctly and point into things that need improving.
Back in the late '90s through the dotcom boom, we were teaching ourselves as we went. There was a running joke about HR looking for "someone with 10 years experience with HTML". In the mid-1990s, I was working on data transport stuff that involved hand-rolled socket code and daemons in C, and parsing the data stream in lex and yacc. We didn't have Apache, or ssh, or xml. A few short years later, I was working on really early Java application servers - technology that wasn't even imagined five years before.
It's hard to even describe what a change in productivity all this stuff was. Using an ORM to get data from a database and dumping it into html tables, and there was a browser that could format it all for display with nothing but some tags that were generated on the fly? Amazing!
I taught myself html, because there wasn't anyone to teach me. I taught myself server-side includes and cgi - no one to teach me. I taught myself Java. Etc. And I still do this today! If someone can teach you how to do something, it's already mainstream.
"If someone can teach you how to do something, it's already mainstream."
I don't think collaborative learning should be undervalued, though. There are several colleagues without whose example and input I would be a much worse programmer. Not in technical details, but harder to define things, like attitude that leads to success and how to make designs simpler.
'Mainstream' does not mean obsolete. Reading and writing and Roman alphabet have been mainstream for centuries, yet people utilize them with an amazing variance of productivity and value.
I am a big believer that companies underestimate people's ability to learn, but what you describe works well if the company is stable and has little growth - a perfectly fine situation to be in - but I think the majority of startups don't have this kind of stability, and need someone who has the right skills now for whatever they need (building a new service, scaling the backend, tweaking the frontend, porting their product to mobile, etc.), so they can't really afford to do that long term mentoring.
I dunno from web stuff, really, but none of that sounds like rocket surgery ( because I don't know what I am talking about, you see - this always makes everything easier ). Of the list, "scaling the backend" sounds the riskiest because the tools landscape is very fragmented.
Then again, a person with whom I went to college is a recognized expert on Oracle performance. I find it keenly interesting that such a role even exists.
I look at startup-ey, Webby looking job postings and it's like the qualified people drew to several consecutive inside straights just to have the right buzzwords on their resume. And it's a different set of inside straights than it was six months ago. And it's different yet from firm to firm.
See there how easy it is when you don't know what you're talking about? :)
That's probably true for a lot of startups. If you have problems scaling your $language services right now, then you need somebody who can scale $language services.
OTOH, I recently had an interview at a company who have quite a bit of groth and scaling problems right now (but probably not Silicon Valley level), and they still said: "We constantly have to learn new things, so the most important thing a candidate has to have is they have to enjoy learning new things".
AND: there are quite a lot of companies who are in the stable / profitable / predictable growth category and could afford to train/develop their people - But don't.
A really good strategy which is unfornately not very common. For one part because of the topic of the article, but for the second part because many companies seem to think that their employees will be hired away by their competitors at the first opportunity, which basically says that they do not trust themselves to be good enough to retain their employees .. but if these companies do not trust themselves how can their customers trust them?
You are right, that is the third component, but hiring is also very expensive, especially if you have a low quote of acceptance and have to interview many candidates for each position.
Good point. Not sure which is more expensive, and it obviously depends on your problem space and the stakes involved (i.e. crud apps vs financials vs health care).
I always think of Michael Lewis' Moneyball story when I read such things. When everybody else is scouting for 200k players, why not pick promising fresh graduates? You might have to spend more time mentoring, but you get extra cash to lengthen your runway.
Also, have a look at "Developer's Journey" by Tim Bourguignon - There he tries to find out how to train/mentor/coach people to become great developers. And also what developers can do themselves to improve.
I always wonder if they actually are a pain to work with.
I've worked from outside the hull speed of several teams and gotten into places where being diplomatic about the sheer propensity to failure was a lot of what I ended up doing. And, frankly, I've just dropped the mic and walked off more than once, once I'd established that the team ultimately just didn't want to perform or had some horrifying external constraint that made the death march inevitable.
Say it with me: "I am powerless over the fact that I suck." At least you can work on the self loathing and make progress.
But seriously - get your ego out of it and life gets better. Let your ego free only when you are alone. You can't fix 'em all.
Look at the reasons startups failed. "Product didn't work" isn't even on the list. For most appcrap and webcrap, making it work isn't that hard any more.
There are exceptions, where making it work is the hard part. Theranos is poised to fail because they can't make their medical test technology work. Cruise (YC 14) will fail if their autonomous driving doesn't stop crashing. Space-X lives or dies depending on how often their rockets blow up. Those companies need "the best".
Go down the current YC list.[1] Who has a hard problem?
Hard:
- 20n: A computational synthetic biology company
- Industrial Microbes: Upgrade natural gas to chemicals using synthetic biology
- Transcriptic: Access a fully automated cell and molecular biology laboratory, all from the comfort of your web browser
- Raven Tech: We are building the next generation OS (website sucks; all giant images, no info.)
Not hard to implement:
- Cleanly: Laundry & dry-cleaning delivered at the tap of a button
- GiveMeTap: Each bottle purchased gives a person in Africa clean drinking water for 5 years
- EquipmentShare: Rent high quality equipment at the lowest price, guaranteed
- Meadow: Buy medical cannabis delivered from local dispensaries
- Cinder: Notifications when food is done. All in a countertop electric grill.
If you're on the "not hard" list, you're probably better off hiring people who've done something similar but aren't superstars. Otherwise, you'll get overdesigned IT infrastructure, like Soylent. (Soylent does maybe two shopping cart transactions a minute, and boasts about how elaborate their systems are. They're bikeshedding. They're in the food business; IT is a support function.)
The article is a real gem. One part I particularly like:
>This level of strictness always made me uncomfortable. I'm not going to lie, it starts with my own selfishness. I'm pretty sure I wouldn't get hired at big, famous companies with legendarily difficult technical interview processes because, you know, they only hire the best. I don't think I am one of the best. More like cranky, tenacious, and outspoken, to the point that I wake up most days not even wanting to work with myself.
Jeff Atwood has the self-security to say something like this publicly. It's really small-applause worthy in my book, since people will look for anything, especially anything unrelated to leadership, to tear a leader down[1]
As an aside, I think the political cost to admitting faults ties in roughly with the "Great Man Fallacy"[2] We're looking for an Iron Man to believe in, but when Tony Stark can't actually write a program to hack into a government mainframe in two hours, we get disappointed.
It reminds me very strongly of when Zuckerberg tried, for fun, to solve an engineering problem after two years of being the CEO of Facebook. He had a lot of trouble writing basic code; the engineers watching him struggle, who all thought Zuckerberg was this amazing super-genius who could do anything, ended up condescending him.[3]
[1] I do believe that plenty of so-called "leaders" are not actually good leaders. Rather that those people who grow to learn to be leaders, should not be detracted on certain details that are tangential to their business.
[3] There should be a specific term for "Gosh darn it, I may not have a billion dollars b-b-but at least I'm better at this thing in this particular way!"
That's kind of terrifying. Whenever my work takes me away (or largely away) from writing code for a few months, I worry that if I'm back on the job market... Not only is my code a bit rusty, but my list of JS frameworks has fallen behind too.
We used to ask "What makes this candidate weird?" during the decision meeting.
It wasn't always a deal breaker, but it was very important that the team would be different after hiring someone. We hired quite a few non-CS grads, whether they came via a boot camp or were just self taught.
We ended up with a ragged team of misfits and it was awesome. I've never worked on a team that was so effective at challenging assumptions and biases and shipping features faster than anyone else. I'm convinced it wasn't through Herculean efforts by individuals, rather the product of clear communication and trust within the team.
Ive tried to explain why this worked. One observation: Very rarely did someone make implicit assumptions. Such assumptions are often wrong, but they happen because individuals are similar enough that extrapolation a partial understanding into a full one implicitly happens. We assume that since we got from A to B on the same path that the path from B to C is likely the same. On a team of misfits, you have to clearly communicate the entire sequence of events because everyone is on an entirely different page to start with. The result is that the final product is 100% on target, whereas normally there are a few deviations as the result of implicit assumptions.
Sounds like your team kind of backed into an insight psychological research has identified and Google has attempted to apply. Something called "psychological safety".
"Psychological safety: Can we take risks on this team without feeling insecure or embarrassed?" - from re:work
There's a great NYTimes article about it that looks at your hunch about the weirdness of the team members being the key to awesomeness. But Google ultimately realized that it wasn't so much about how different the backgrounds of the team members were, but was instead that that internal diversity could produce psychological safety.
An anecdotal effect of said environment. We stopped doing person based scrum. We were able to get away from the "justify my personal usefulness on the team" status updates. And it was awesome.
"but it was very important that the team would be different after hiring someone."
Makes no sense to me. Why should the team need to be different? Why should the team need to be the same? This is Voodoo recruiting - some belief that a company has formed that really is meaningless but becomes an important part of the companies recruiting culture.
Will our team be different? Are they weird? Shake the chicken bones, dance around the fire and we'll get a good hiring decision.
I work in the "boring" old insurance industry, based in the midwest. I love reading articles like these, and as I read them I get excited and say to myself "yea!" and "spot on!". But they seem to center around startups and Silicon Valley.
The truth is, when it comes to building, maintaining, and supporting internal, line of business apps, management isn't even pretending to look for high end talent. They want predictability, reliability, and someone who will "fit".
I wonder how many people out there fit my profile. That is, they get excited by reading blog posts like these from some of the thought leaders, and desperately want to apply the thinking to their own workplaces, but then feel like we aren't really the target audience.
HN obviously has a large bias toward content that is relevant in Silicon Valley (understandably so). This makes it fairly likely that the content that is only relevant to SV still makes its way to the top of the front page from time to time.
It may be counter-intuitive, but I find it easier to apply these types of articles to my non-programming work. My wife and I own a gym, and we need to hire personal trainers from time to time. There's a certifying body for that, so it's easy to know if someone is trivially "qualified" for the job. Are we trying to hire the top 1% of trainers in the country? No, we're at best a medium-sized location for our area. Largely what we look for when hiring is how they will fit in with the existing coaching staff, how they will fit in with our existing clientele, and how likely they are to attract new clientele (or bring with them).
You also highlight that there are a lot of jobs out there where you're basically hiring for competence (which includes being dependable, not being difficult to work with) at the right price. There are a lot of professions where, for the mainstream jobs, there really isn't a lot of payback in "greatness."
Yep, me too, midwest huge insurance company. From what I've seen, there are very few people in mid to upper management that think developers are anything more than a cog in the machine (and only 1 who's ever stated that 'publicly') - I'm looking to leave after 11 years - I've given up on it changing.
I tried the midwest large insurance company job, and it was not a fun experience. I often had full weeks where I was waiting on something from other slow-moving departments and had literally nothing to do, and my boss knew and didn't really care, although I still had to show up and sit in my desk for eight hours a day.
And I was a developer but had to ask permission and make a case for every single program I wanted to install to help do my job, which isn't necessarily bad (there are understandable security concerns with downloaded software from the internet), except when Net Ops rates it a low priority and takes weeks to give you the permission. I eventually just stopped asking.
The atmosphere was also the most subdued environment I've ever been in. Most people not talking to or acknowledging each other unless their cubes were near, very few jokes, I almost got the feeling I'd get in trouble if I ever showed exuberance.
Not that I ever felt like it anyway. The lighting didn't help with that either, since we were in a room with very little natural light and soft florescent lighting that made it difficult for me to even stay awake there.
I did learn some new things there, and people were polite and friendly, so it wasn't all bad, but I'd never go back.
> The atmosphere was also the most subdued environment I've ever been in. Most people not talking to or acknowledging each other unless their cubes were near, very few jokes, I almost got the feeling I'd get in trouble if I ever showed exuberance.
I know exactly what you mean! It is suffocating! Currently struggling with this right now. I can't stand it because it just feels so fake and phony. To me work is easier and more manageable when you are getting along with colleagues, not when it is overly formal, and corporate, etc.
Yeah, fake and phony, I definitely got that feeling. Like people were putting on a mask the entire time they were there.
I don't even mind corporate necessarily, as long as it's relaxed. My current place people will talk about pretty much whatever, help each other out, tease each other about things, the boss will join us for lunch and talk about Star Wars and Deadpool, team leads are willing to admit that they can make mistakes, you feel like you can be more open and honest around your superiors, no one gasps or blinks an eye when you casually curse, etc.
And yet it's not quite no-holds-barred like a previous job that erupted into nerf gun battles and openly (but not seriously) insulting each other on an almost daily basis.
Relate to both of your points. Being disrespectful and straight up insulting others shouldn't be acceptable, but having too stuffy a working atmosphere creates this feeling like you are walking on egg shells which in my opinion is not conducive to effective and productive work.
But I wonder who it is that sets the culture or tone of a workplace. Is it every employee in concert or more management / the team leads / bosses etc?
As stated several times over the years, particularly on HN and by patio11 (edit: or was it Joel on Software? Perhaps both?), work for a profit center not a cost center. The internal software to run insurance companies is a cost center. It is in managements interest to reduce and keep costs down... that's detrimental to what you do. Working on a software product or Saas is a profit center. What you are making is to be sold. It's an asset. An asset management wants to make as valuable and profitable as possible so they are willing to invest in it. That works to your favor if you're developing that asset.
Not sure it's that simple. For example, in many places banks pay the most. Sure, they pay even more to their earners (traders, dealmakers etc.), but they make so much money on their business in general that they can shell out top dollars even for their digital janitors. Contrast that with places where you work on products such as computer vision-based gizmos, CAD software etc - even though you're bringing in the profit there, the pay is not that great.
In addition to my previous comment, I'd like to hear people's thoughts on the "consulting" gig. It seems to rule here. You know the routine. Consulting shop places an individual at a client site and charges the client $100 an hour, and then turns around and gives the consultant less than half of it. I can see the argument of the consulting firm viewing their people both as profit centers and cost centers.
Why are they even called "consulting" firms? They are really just contracting agencies. And why are they so prevalent in the midwest and the insurance/banking/healthcare segments? Is it so that employers don't have to lay people off? Do they record the costs differently on their books versus full time employees? It just seems so obviously not in the interest of a company to use them with regards to culture, turnover, cost.
I use to be in the enterprise "consulting" gig. As a consultant its terrible. The only rate you know is what you are making, and thats just at the per year level. As the consultant you never know what is being changed to the client and so you never know your actual worth. Rates are probably the closest guarded secret for consulting firms. Plus you are a profit center to the consulting company but a cost center to the client. So there is the horrible pull between your management to "maximize the billable hour" and the client wanting to keep costs on the project down. Oh, and god forbid you are on a flat rate project where the only limit is time. Be prepared to work 80hrs and have no life.
I've seen two reasons why mega insurance company inc brings in "consultants." One is the consultant is specialized in an area of tech that is completely outside of the companies expertise. I did some of this being in a niche area of enterprise security. While those contracts still suck they suck a little less because you are at least advising the company and getting them up to speed on something. The other type, and the most common type is the "staff augmentation". I've been on those projects too and its exactly how they seem. The company has some in house knowledge (say a manager of infrastructure and maybe one full time employee for that tech) but the rest is really about throwing bodies at a project. From the client's perspective its all about workforce flexibility and not having the expense of a full time employee on the books. Even at like 100/hr its cheaper I guess for them vs having a full time employee. Plus its not their "core business" although in 2016 I'd argue if you are running a company it's insane not to think of tech as part of your "core business."
Overall, between the unsteady work, travel, etc being an enterprise consultant sucks. Most people that I know go into it because the potential to make a bit more money vs a traditional job at mega insurance company inc is there and they don't like the idea of working for mega insurance company inc for years. However, I've been on contracts where the project is like two years long so you might as well be working for mega insurance company inc anyway.
Honestly, there's a lot of confusion (and overloading, to use OOP parlance) with the term "contractor", and confusion with the term "consultant".
For instance, you can be a "contractor" as a software engineer, where you sign an employment contract to work for 6 or 12 months at a client site, working through an employment agency. At the end of that term, either your contract is renewed or it is not and you're now unemployed.
Or, in the defense industry, you can work as a "contractor" where you're a full-time employee of some company (called a "defense contractor"). That company signs a contract with the government to do some work for them somehow, and you're assigned to do this work. Your work does not have a defined end date (like the 6-month contract you might get to work at some big commercial company), you're just a regular full-time employee, but you still have to track your time (so it can be billed to that government contract), and if something goes wrong with the contract (like it runs out of money), then you can suddenly, with little warning, be furloughed without any pay.
Of course, there's many other kinds of "contractors" too, like the guy you hire to replace your house's roof. And there's all the people who are full-time workers, but are given 1099 forms as classified as "independent contractors" so their employer doesn't have to pay FICA and unemployment insurance for them.
Now, as for "consultants", that usually seems to be pretty much what I described in the part about defense contracting: you're a regular W-2 employee of some corporation, but you're sent out to client sites to do work for them, though there's no fixed-term contract with the client usually.
My last consulting firm accounted their consultant salaries as a cost center, despite our hours worked being directly billed to the client. I left about two weeks after finding out.
It was many. The numbers the company provided to me failed to account for a significant portion of my billed revenue. Presumably the missing money made it to the top level in some way.
I also objected to the idea that someone who directly generates revenue was being labeled a cost center. I left, as did my junior consultant, and shortly after the company failed to gain ongoing contracts at the very large financial services corporation they were trying to break in to.
My main problem with that job however, was that they recruited me as a greenfield .NET developer, but then had me analysing some 800 columns over dozens of tables looking for software errors that were causing incorrect results in the 401k accounts for which our client was the steward.
Yeah, hear ya. Anyone know of any opportunities that match this criteria (profit center) in the Columbus, OH area? I've recently moved here for family reasons, and while there seem to be plenty of opportunities, they are all within the banking, healthcare, insurance verticals, or they are shrouded in mystery behind middleman tech agents. I have not found an easy way to do a search on indeed.com to bring the "profit center" jobs to the forefront.
The majority of "profit center" software and software jobs are on the west coast surrounded around the tech giants and the bustling startups. I believe Austin Texas has a few and so does New York. As for the rest of the country... it's hit or miss. Some of the large(r) Midwest cities will have a software company that has "profit center" software and jobs. I'm further West than you but I know some companies in Madison, Des Moines, La Crosse, Rochester, Decorah exist. Being in smaller markets they don't tend to pay as well $ for $ but when you factor in COLA and QOL they are hard to beat. I know some people that live near me that work remotely for Walmart Labs and make a substantially lot more money. Appleton/Green Bay/Wausau have a lot of insurance software jobs too... the type we seem to want to avoid. I'm not sure what the rust belt has to offer. The best place to look for "profit center" positions is the monthly "Who's Hiring on HN" lists and if you can't/don't want to relocate look for ones that allow remoting. Good luck.
I moved around in the company, trying to find someplace that was different (e.g. more like a software company) - and I finally did, about 4.5 years ago. The department was outside of the official IT department, because we are vital to the business and have legal reasons to need to move much faster. It was good for a couple of years, but recently, the area I'm in has been getting more like the IT department I left (they are pushing me and other leads to start taking on more "leadership" responsibilities - meaning management type crap, not lead developer) - so I think it's time to move on.
And I should mention that I've looked for other jobs in the area (trying to stay local because of family) - and almost no one pays as good as where I'm at. I'm making a bit above average according to Glassdoor (for my location).
2 and a half years also feels too long to me. But in order to not look like a "job hopper" is that the standard time I should expect to stay at a place or is 1 year good enough.
It was too long but of course I didn't realize it at the time. From what I've gathered, as long as it isn't with every job, you don't have to stay that long.
But don't take my career advice. I only really know what not to do at this point.
Almost everyone working in enterprise software is in your same boat. In fact, I'd argue the great majority of software developers outside Silicon Valley are either working for or with enterprise stacks and products & services. Sure, there's indie game developers and some boutique software shops working on small sites, but fundamentally most of their customers are businesses involved in FIRE (finance, insurance, real estate) business verticals or healthcare.
I had a job like that once, and it was clear to me I didn't fit there for a variety of reasons so I left because I wanted to make a difference at my job and not be a "resource". I then got a job at a "stable" startup working remotely for twice the pay that the boring industry would pay.
No need to create a throw-away account to share your personal experience.
I've worked in traditionally boring industries that treated programmers as resources to be allocated (healthcare, logistics). Sometimes it's still possible to make a difference. For example the logistics job I had, we were often the only development resources our clients had, so when they wanted to run a promotion or do something like that, our execution could literally make or break their business.
This might be an unpopular opinion on HN, but another example of this problem manifests in the sheer volume of companies that require a HackerRank screening test these days. Apart from the clumsy web editor, recording someone under a time constraint means nothing in the larger context of how a programmer's actual work happens. Sigh.
By using such automated tests, companies want to identify top talent by taking a shortcut and not investing any time on their side.
People who ask for more complicated code than "reverse a string" or "fizzbuzz" in a remote code screen is doing it wrong.
People who can't code, compile, and run a fizzbuzz in an hour are probably not fit to be hired.
Asking someone to implement a proper Diffie-Hellman over Hackerrank is ludicrous, on the other hand. Interviewers should err on the side of stupidly simple problems. A surprising number of people can't code a loop in the languages on their resumes.
>A surprising number of people can't code a loop in the languages on their resumes.
I guess you can reach two conclusions from that:
1) A surprising number of applicants are totally misrepresenting their abilities – either through deceit or wild ignorance.
2) Something about your interview process makes a surprising number of people unable to perform at their normal level – from nervousness, unrealistic and artificial constraints, etc.
Certainly many of those applicants fall into the first bucket, but I'm betting a large portion fall into the second. So, you might reconsider whether the false negatives and highly unpleasant experience for many interviewees are worth the perceived value. Maybe there's a better way to get the same insights.
Misrepresenting abilities ... yes, I did that in my first job interview. The job posting said PHP, HTML, MySQL skills. Well, I knew HTML well enough but my PHP and MySQL skills were from a few side projects doing copy-paste-modify with PHP BB's code base to make my own web app, which I never did finish. So I only kinda/sorta knew those languages.
But then at the end of the interview I was given a coding challenge to do at home over the next few days. PHP and MySQL have good online documentation so I was able to knock it out quickly and I got the job. So, yes I misrepresented my skills, but I also knew I could live up to what I was claiming I could do.
Yes, it seems that most companies misrepresent their requirements in job postings. It also seems that most candidates misrepresent their skills in responding to those job postings. There's a certain symmetry there.
Employer: First job out of school pay, requires four years of experience in our exact tech stack.
Candidate: Sure I'm willing to take first job out of school pay (BTW, just graduated in May). Yeah, totally have 4 years of experience, and what do you know, it covers exactly your tech stack!
I actually really like the take-home coding challenge, ideally something a qualified candidate could do in 1-2 hours and inspired by a real on-the-job problem (perhaps distilled a bit). It gives me much more insight into your coding style and is a much more low key, realistic test – especially since my team is fully remote anyway.
OTOH, for example, at a certain (non-IT) company, they overblow requirements for the most junior IT posts in such a way that the ONLY people they're able to hire are people that lie about their experience/abilities on their interviews (and there's no technical interview, so they can do so at will). They're optimizing their recruiting process in a very, well, weird way.
>Something about your interview process makes a surprising number of people unable to perform at their normal level – from nervousness, unrealistic and artificial constraints, etc.
I've worked with people who crashed and burned during the interview during nervousness and then went on to do okay afterwards.
I'm a believer in trying to make the interview process as close an analog of day to day work as possible and as low key as possible.
That means real, actually encountered problems (no fizzbuzz), and a progressive ramping up of the difficulty so that candidates with confidence problems can have a few easy problems to get over their anxiety with before getting into something meaty.
I think it's mostly (1). The question is mostly "prove to me you've written code before". I typically let them pick their own language. I'm guessing some are fake-it-until-they-make-it and some are genuine Dunning-Krugers. The phone screen is to filter out category (1).
People that suspect they're in category (2) could come to an interview with some code samples. Personally, I'd even be OK if a (2) contacted me after the phone screen with some code samples and an explanation about what happened. Maybe we could set up another phone call and find another way to assess technical abilities.
Good development requires good communication and someone with the maturity to overcome that sort of problem will fit in well somewhere, maybe even on my team.
The one time I tried a fizzbuzz in a series of interviews, one candidate was surprised and almost insulted. At the end of the day, I learned almost nothing about any of the candidates from this question. Only one candidate (in fact, the one female candidate) implemented it substantially different than any other. All the candidates could do it. They were all CS students at a university, so what was the chance they were not going to be able to compile a program anyway? So I think you have to take fizzbuzz with a grain of salt and know when to try a more complex programming exercise.
(That being said, I'm horrible at doing interviews so take my advice with an even bigger grain of salt.)
When I've seen people advocate Fizzbuzz, it's always in a context of how 90% of their candidates can't even do it. It's intended as a quick screener that immediately eliminates a ton of obviously bad candidates.
You're clearly getting a better caliber of candidate than those people are. That's great! And clearly, if that's the case, you should adjust accordingly. I think the lesson there is to tailor your process to the people you get.
I like gradated questions where if someone knocks my first iteration out of the park, I have several avenues to keep probing. That usually involves bringing in more concepts, not merely making the questions more complicated per se. Fizzbuzz doesn't seem to me to have an obvious avenue for bring in more concepts. It's obvious how to make it "more complicated" but not how to expand it.
I often use CSV parsing, where I specify a function that involves a simple string and I want some natural parsing of that in your favorite language. A bonus point for starting with the observation we should use a library, then do it yourself. From there I can pivot into discussing what the correct output data structure is (especially if the rows do not all have the same size or the same data types), converting text into better types, whether or not you understand unambiguously encoding text ("how can you include a comma in your field?", and I'm not worried about whether it's a "standard" answer), UTF8 and other text encoding issues, computational complexity a bit (and while small, it's a very practical, day-to-day bit) and questions of memory efficiency, the question of streaming if the dataset is too big. I can also easily pivot into outputting this CSV file into an HTML table in your favorite language, getting into HTML template issues, security issues that can arise from that, dumping the CSV into a database, and I'm probably even forgetting some of the pivots I've done. (And the point here is that I can choose, not that I ever cover all of these in one interview.) This question template scales from intern level ("can you get this string into an array of array of strings?") to senior engineer ("alas, the text encoding is varying from field to field, now what?") quite easily.
I've phone screened with this in a shared doc, too, since I can copy & paste in the problem pretty easily.
The context of pressure is also not the same as the pressure from meeting deadlines at work, it is now about proving yourself in some set time.
I took one of these recently, and botched one of the tests. Within 10 minutes after the timer was up, I had restarted my solution with a successful answer and was iterating on it.
The idea that the pressure is the same doesn't seem to apply to all applicants. Doing work under pressure within set times has been a strength of mine(ex. playing chess against higher rated players or when timer is low). I've noticed, however, that my skills fall apart during interviews. Once again, totally different contexts where you're being tested.
> The context of pressure is also not the same as the pressure from meeting deadlines at work, it is now about proving yourself in some set time.
I am so tired of hearing the refrain that "we want to see how you work under pressure". Anybody who thinks that all pressure or stress is the same and that you can translate performance in one stressful situation into any and every other one has no business being near a hiring decision.
Couldn't agree more with this. Also Codility tests in which fresh graduates do very well and more senior engineers fail, because most of the academical/theoretical/generic stuff is forgotten since it's rarely needed in the real world.
I've seen people that have solid proven development experience of more than a decade, investing time preparing for coding interviews(!). And, in a perverse way, it makes sense because they know that they are going to be asked to do something their experience has little to do with and most likely forgotten after university.
I've had to do that. Doesn't matter that I've been lead programmer on multiple projects and lead teams in developing apps that (at the time) the interviewer could download, play around with, and see my name in the credits...
Nope, we aren't even going to ask you anything about that, or let you open up your iPad and show us, here's a whiteboard, start writing up a recursive permutation algorithm (only ever had to do this in programming interviews) because we want to prove you know how to do recursive stuff (and then tell us why you should almost never use recursive solutions in our apps), oh, and how about a red-black tree (algorithms class ran out of time to cover, unneeded since), or how about coding this specific sort (heap, merge, whatever) that you'd almost never use in actuality because there are tried and true libraries that are already more efficient than you'd ever be doing it from scratch?
Ugh. Fine, you can do your test, but please don't ignore my prior experience or act like you haven't even given a cursory glance at my resume, or even worse, make a dismissive comment when I talk about it during the interview. It really is insulting. And yet half the interviews I've been in have been like this.
I always try to do, and (especially at say a Google or Facebook) it always pays off; there's always some long forgotten data structure I need for at least one of the questions.
So a more realistic test would let the candidate use Wikipedia to refresh his/her memory, but then you would need more complex questions that require demonstrating understanding, like being given a chunk of real code and applying the theoretical concept to improve it.
I know to get away from those companies and never come back. If our values differ so much at the interview stage, it won't get any better a few months from now.
I hate technical interviews, but I completely understand the need.
However, what I cannot condone is wasting the time of 100 applicants. It takes the employer ten minutes to "sort by best" and start calling down the list.
You are 100% right about their time investment. They are saying their time is more important than yours. It is another layer that muddies the process.
This fear of not hiring the very best explains why everyone in the Valley seems to be interviewing candidates like crazy but nobody is hiring. When I interview I try to tease out potential, and look for signals that show the candidate will work hard and learn fast. Then someone comes in and says, "Well I hazed him and he couldn't implement a red-black tree on a whiteboard. No hire." This mad pickiness causes the mythical "shortage of engineers" meme to spread.
This might explain the string of interviews I've taken place in where it's typically down to one person that shuts everything down because they want to play stump the chump. You know, instead of looking for qualities in candidates that would bring value to the company.
I've said it for many many years...hiring selects for those whom interview well and have good social engineering skills, not necessarily for those whom can get the job done and make the company successful.
The utterly meaningless "top 1%" metric always makes me laugh. By definition then 99 of every 100 engineers don't make that cut, which means, again by definition, your team has very few if any of them, no matter what hiring practices you employ.
Plus I've found that very often management uses the "oh we hired the wrong people" as an easy cover for its own failings.
In the spirit of this advice, if you are serious about really finding the best people, you should offer very comprehensive severance packages as part of every offer -- on the order of 6-10 months of salary, possibly even "grossed up" so that it results in at least 6 months of salary after taxes.
Instead of spending money on needlessly complicated hiring processes, with back and forth phone calls, panel Skype interviews, foolish interactive coding exams, multiple on-sites, etc., you can spend that money on severance.
Use a cheaper and more straightforward hiring process. Talk to people, dig into their background and preferred working style a little. If they appear to be competent, then just hire them. If they are not qualified for the job or they are not a cultural fit later, just fire them.
Because you will have explained to them that their first month on the job is still part of the overall fit assessment, and that you value the risk they are taking by offering them severance to re-engage in a job search if it turns out you made a mistake by hiring them, you are not doing a disservice to the new hire. You're merely letting both parties gather more evidence about goodness of fit.
This is money well spent, and for most companies, 6 months of salary is easily affordable for severance. In fact, an unwillingness to offer at least that much to each new hire would be a huge red flag.
Will talented people be willing to give up their full time job for a job they may very likely get fired from?
Automattic does something interesting from what I've read. They have you work there as a trial for 1-2 months while keeping your full time job. This is probably pretty stressful but you get the ability to work with the candidate while not asking them to sacrifice their livelihood if things don't work out. Needless to say, it seems a lot of people don't get hired after the trial.
> Will talented people be willing to give up their full time job for a job they may very likely get fired from?
Maybe, maybe not. If they are already on the job market, then they probably don't mind looking for a job. If they feel that taking your job and getting fired still leaves them financially covered for an additional 6 months of searching, then they may not care too much.
If that company becomes known for this, then being "fired" from them won't really be a bad signal on your resume (if you even want to list it on your resume at all, depending on how long of a stint it is).
I don't think my idea is perfect. No hiring method is perfect. But I think that businesses should take a perspective that's fundamentally more about investing in getting to know and support someone as they are on-boarded, instead of Spanish Inquisitioning them and if they don't run away screaming then rationalizing that you've hired the best possible person (who, surprise, leaves after 18 months anyway because you didn't assess their fit or how their aptitudes really match up with job needs, you just whiteboard hazed them).
This is already caused as much by companies as it is by candidates who are job hoppers. When I see a resume with short stints, it basically has no effect on me any more. If the person is good and I do my job to make them happy to stay, that's the best I can hope for. Pretending like either I can predict who the job hoppers are in advance, or that I should only hire people who magically have some intrinsic desire to work for me no matter how I treat them are both fantasies.
>Talk to people, dig into their background and preferred working style a little. If they appear to be competent, then just hire them.
If I am very good at this assessment, then this may work. However, if I trust my skills to assess someone accurately, I am unlikely to have a complicated hiring process.
If I am a company owner (or manager!) who is not good at assessing people this way, then wouldn't substituting my process with this proposal make me spend a lot of money twice?
1) Paying salary to more people than open positions (Because I don't spend money on a hiring process and rely on my assessment skills, I may end up with many not-so-best-fits)
I am not sure I believe this. First, if you are aware that you're not good at assessing it, then have someone else in your company do the assessment, or hire someone who can (possibly on the advice of your investors or something).
If you can't do either of those, I am afraid your business just isn't going to work out.
So, almost by definition, the person doing the assessment is reasonably good at it. For otherwise, you won't be around very long regardless.
Also, if you find that you're hiring a lot of people who seem good, but ultimately are fired, maybe look in the mirror. Maybe it is that your expectations are unrealistic, or maybe you expect people to adhere to "culture" standards that do not support human flourishing.
Unless the tech problem you need to solve involves lasering in on a fleetingly tiny population of candidates (most don't), then a sequence of looked-competent-but-needed-to-fire people is probably more a reflection on the company than the candidate stream. It's unlikely that all of them were elaborate fakers.
The costs of (1) should be low unless there's a fundamental problem with the company (in which case the costs of (1) are way cheaper than hiring a management consultant to help you not fix it).
(2) is a real cost, and yes, some companies can't afford it (so maybe they scale back to 3 months severance? Maybe they add continued health coverage. Maybe they let you pick a foosball table to keep) ... but it is just the cost of getting useful information about an employee, instead of the not-very-useful info that most hiring processes generate.
You accept more risks on the hiring process, by hedging them with the firing process.
If it'll be good or bad depends on the actual risk balance you create between those two processes. But if the idea that the hyper strict hiring process does not help selecting great candidates, a moderate increase on nominal risk on the hiring process will actually improve your odds there, and you'll gain both ways.
> If I am very good at this assessment, then this may work. However, if I trust my skills to assess someone accurately, I am unlikely to have a complicated hiring process.
If you don't have the skills for that assessment, how do you know your complicated hiring process works?
> If they are not qualified for the job or they are not a cultural fit later, just fire them.
This is the entire problem with the inability to hire the "best"; It's dangerous to try and fail with lawsuits, unemployment, etc. I personally prefer to work for companies that don't hold on to poor employees and have quit companies that do the opposite. If you want to "hire the best" you have to "fire the worst". I accept the risk that comes with this of course (and many others may not).
Why would anything ever be grossed up? Because the purpose of the payment is to give the recipient a particular amount of money, usually related to specific costs, not some amount less taxes.
The costs of sustaining a job search after being fired are a bit different than the costs of living while you have a reliable income stream. The grossing-up part is meant to reflect a nominal amount of money to cover those kinds of costs, not just a virtual continuation of the salary-less-taxes you'd been living on while employed.
In my experience, severance and sign on bonuses are often grossed up, as are payments made for relocation expenses.
But there's no reason to be hung up on that part. It's perfectly fine to just offer a regular severance benefit without grossing it up.
If I give an employee a $100 Amex gift card as a spot bonus, I do gross that up.
If I pay relocation expenses, I require receipts (at which point, it's non-taxable for most situations, so doesn't need grossing up). It's not that I disbelieve the new hire, but rather that I have to make it accountable in order to make it non-taxable.
If I pay cash comp (whether as a signing bonus, periodic bonus, commission, in contemplation of on-going employment, or as part of a termination agreement), they're wages in my book and I've never seen them grossed up (unless more of the character of the gift card or Christmas ham variety).
> If I pay relocation expenses, I require receipts
This might be a deal breaker for me if I was interviewing with someone. It's not that I care about the accountability part, it's more that a ton of relocation costs are unforeseen incidentals, or are private expenses (like first month's rent ... it's not your business what I choose to pay in rent), that should be covered by just paying cash to the new hire. Making them track down receipts for all of it might work out to be more costly, in terms of time lost, than just bearing the taxes, and certainly might involve requiring knowledge of expenses the employee may rightfully prefer to keep private.
Usually, I expect that the company will handle almost all aspects of relocation on their own (e.g. buying plane tickets and hotel rental for housing visit, calling up and hiring the moving company to pack and ship belongings). The part that would be paid as cash would be the cost of rental fees, deposit, and first month's rent, as well as some small amount for incidentals, which should be grossed up.
On the other stuff I guess we just disagree. I don't view sign-on bonus or severance pay as wage pay, even if they are pegged to wage level. For the other stuff, I agree, it's just part of regular income and the employee should bear the tax. But for sign on bonuses and severance, I think it's fair for the employer to bear the tax in light of the purposes of those payments.
Sign on bonuses are very different in this discussion though, since not everyone provides them and the amounts can vary a lot and for low amounts grossing up can matter significantly, while for larger amounts, employees are usually happy to bear the tax cost themselves. I'm not so worried about what an employer's policy is for these.
It would matter to me to negotiate a specific value paid for severance, though, rather than "6 months' salary" which will then have taxes taken out. If an employer was put off by this, it could be a problem, depending on all the other aspects of the job. One way to avoid this is that if secretly what I want is 6 months severance grossed up, then I'll try to negotiate 9 months severance, without mentioning the grossing up part. It's less off-putting to the counterparty, even if it would be nicer if I could just speak plainly.
I'm just speaking from my experience as a candidate in previous roles. I'm sure everyone has different experiences.
It wouldn't end up as a deal-breaker. In the discussions leading up to it, you'd object to providing receipts, indicate that you're trying to cover other types of costs, and I'd respond with, "OK, we'll call it a signing bonus," and then negotiate the exact [pre-tax] amount.
I (and I assume most hiring managers) have broad discretion on the amount of a signing bonus. For an engineer I want, I will never care about the difference between a $5K and a $10K signing bonus (or if we're talking about bonus in lieu of relo, the difference between $15K and $25K). It's a one-time expense to me, comes out of a different budget, and yet candidates seem to really value them seemingly out of proportion to the economic benefit.
It can vary a lot. I think $10k is a generous signing bonus if it comes in addition to relocation. $15k is around the smallest lump sum relocation I would consider reasonable though.
Some firms offer > $30k signing bonuses (some more than double that) independently of relocation. It's rare, but not exceedingly rare.
My team does take-home project, a small problem to solve that should take at most a couple hours. It's the same problem for every candidate so we're judging them on common work. It's not real work, it's made up.
In interviewing discussions in places like HN, there is enough pushback against this idea, which is a bit surprising to me. I thought a few hours work was reasonable when I was interviewing. But my point is that just this small bit of work seems already too big for many people, let alone working 10-20 hours a week moonlighting. It's cool that they pay for it, but that pay is pretty insignificant in the overall scheme of things. (Also, now you're not really interviewing, you're doing client work. Different relationship.)
When I have tried moonlighting in the past I found the stress incommensurate with the additional income. So I don't think I would do it as an interview, personally.
It sucks that companies take a risk during hiring. But I'm not really interested in making that my problem, as a job seeker.
Generally speaking, this is a turn off for me, because I want to see proportional investment by the employer in the hiring process.
If I have to spend two hours doing made-up homework for you before you will even talk to me, I expect that you will then spend an equivalent amount of effort proving to me that your company is somewhere that I would like to work. If you are not willing to invest that amount of time, the whole point of the interview is to reach an arrangement wherein I give you time and you give me money, so you could pay me for those 2 hours instead.
While I don't necessarily walk away from interviews that turn me off, every warning flag does add to the minimum offer amount I would be willing to accept from the employer. If you don't treat me with professional courtesy and respect during the interview, I am silently adding numbers in my head. If you act like I am the one wasting your time, I am probably adding $20000/year to my salary expectations.
I would much rather moonlight for a few hours every week, while getting paid to do actual work, than spend even one hour doing a stupid toy homework problem that ends up being a great signal for the employer and a very poor one for me. It isn't a matter of whether the pay is significant for me, but whether the employer is making and demonstrating an effort to make the process an exchange between equals rather than a superior-inferior relationship.
You allude to a bigger problem: anyone outside the industry who looks at the hiring process for developers would be put off. I know anecdotally that the industry is struggling to get students interested in software development as a career, and good developers are loathe to leave their jobs. I don't blame either group.
Would I want my kids to spend their careers being put through the wringer of multiple high-stakes interviews or be forced to moonlight in order to get jobs, something that gets progressively harder as people reach their thirties and gain extra responsibilities? No. Rather stay away from the field entirely and look for a more stable career.
Reading HN is really weird for me. Everyone is talking about how the industry is struggling to find new people. Meanwhile, being in Central Europe, I almost can't find a junior position to even apply to!
I am a 2nd year CS student looking for a web-dev job to get experience and learn new stuff and every ad I see requires a couple of years in the industry + knowledge of a huge amount of frameworks. From my viewpoint, there is no real need for beginner devs. Companies are looking for really experienced AND cheap programmers.
I don't disagree that we have our problems, but to me most industries seem worse to work in than ours. Not that we should stick up for ourselves but everything is terrible everywhere. Or you just don't get paid very much.
I wonder what the lifetime earnings of a new software developer/engineer would be, compared to other careers, especially for those that turn out to be non-rock stars in the medium to long term, which would be most. I suspect that the great earnings initially would plateau and be overtaken by careers where time in the game and cumulative experience are primary drivers of experience.
One thing I find off-putting is when the project is the first stage of the interview process. It means the applicant has to invest a large amount of time upfront, while it's easy for the company to send the test over.
I prefer at least having a phone interview upfront, which suggests that the company is willing to put in some effort.
It depends. I have so many job offer emails that I cannot reasonably answer them all. They all want to take over your life. Talk to me, then I'll schedule interviews for you at inconvenient times. What, you didn't look this random company up and memorize facts so you'll look eager? Tsk, tsk. Read these books on interviewing. Make a github account. Practice! Why don't you practice you miserable turd?! I'm just asking that you practice for a month before I'll talk to you. Drive to SOMA and take coffee! Interview at 7pm, today! Answer your emails! Do my project! Now! No, now! Right now! Don't you want this job you never heard of until I contacted you and tried to shove it down your throat? Take some time out of your day, you miserable slacker! Do my project! Now! Answer me! I've emailed you 4 times today, and left 3 voice mails! Answer me! Now! I effed up and didn't build a team, and are already 3 months behind, why aren't you doing my bidding??!! Now! Do it! How will I get rich if you don't do what I demand?! Do it!
That's my inbox. Not too appealing.
No. Now, okay, if you are doing absolutely fantastic, ground-breaking work, and I'd be rubbing elbows with industry leaders, and I am not otherwise in the market or trying to do eleventy seven other things simultaneously maybe I'll carve some time out for your project to prove myself worthy. But, you know, most jobs are jobs. If I play the interview game I can have a handful of job offers in a week (maybe not jobs I want to do, but that's a different story). Your team might be doing it right, but do I have optics into that? Probably not.
If everything I've done in my life is not enough to convince you (generic you, not draw_down you) that I can program and solve your pedestrian problem, then I don't view me as being the problem here.
So, if your take home thing is a 2 hour project, and is in lieu of a whiteboard grilling, then fine, sounds appealing to me. But only in context, because it suggests that you don't actually have any interest in measuring my skills, which go far beyond writing for loops. So, probably not a job for me, no harm, but you know, not appealing. Sell me, I'm not a supplicant. We'll figure out if we are a good match or not, no biggie.
The reality is that the take home things are usually just yet one more requirement, one more hurdle, yet more time out of my life. And you do a few, it goes into a black hole, no one even responds, or you get a one sentence email from HR telling you piss off in the nicest way possible, and the motivation to do another goes into the toilet.
Or the reverse happens. You do really well, they bring you in, throw some brain teaser programming problem on a whiteboard, your mind goes blorp, and suddenly everyone is being aggressive and scowling, or staring at their phones, instead of talking to you. Oy vey. I'm sure it happens, but I have never had take home go well, where I didn't end up feeling like a piece of meat being graded by the USDA.
And I never thought, once, "this is a really good measure of me - good performance on this reflects my on the job performance". Yes, I can write for loops, and fix bugs, but if that all the job is it must be really boring. What do you do? Why should I want to do it? How can I help? How can I grow? How can I help you grow? I have some ideas, are you interested in them? Let's build something!
Nope, just for loops, and then iterate over this structure that should be recursed over (or vice versa) on a white board.
I program. I get jobs done, every time. The code is maintainable. I try to up the bar, not maintain the status quo. I can talk to you about all of this, and if you have a medium IQ you can tell I am not bullshitting you. What more do you reasonably want?
8 weeks of contracting. Burn your vacation. Don't talk to your kids or wife, I'm trying to get rich here off your back. Work for me! Moonlight, and risk getting fired! Prove yourself worthy, because I have no judgement, and I'm terrified of making a decision! I'll string you along for months when you have all these other options.
Your first paragraph really nails the current recruiter experience and why it's so aggravating and why I don't bother 99.5% of the time to respond anymore (assuming I'm working). The rest of your post is also gold, and I wish I could inject it into the brains of just about every person who's interviewed me in the past ten years.
I think two hours for a small take-home project is reasonable. Otherwise the applicant would spend two hours in your offices anyway, right? More than two hours, though, and I can see the problem.
It would be acceptable if the results of the project were sufficient to make a hire/no-hire decision.
If I do one two hour project, and either get an offer letter or polite refusal in response, I'd do it in a heartbeat. But no one does that. They would be fools if they did.
An anecdote is not data, but I actually did have this happen. I did a 15 minute phone chat talking about the job and a week later had a one hour online live coding session. Two weeks later, with no more contact I had a formal job offer letter in my inbox. The offer was above market rate, and the commentary in the email from the CEO said that the offer was a negotiating floor. I actually had to ask to fly into the office s(the job was remote) to meet the team and learn some more about the company and work itself.
I ended up declining the job, and they told me that the offer would _stay open_. They even got in touch with me a year later (to the day) to see if I wanted to reconsider. This was all about a year and a half ago now.
I really agree with the sentiment of audition projects. The interviews I have enjoyed the most all involved some sort of take-home project, although I have never been paid for one. On that note, how expensive does it become for a startup to dole out many interview projects across a wide range of candidates? I think a better strategy would be to conduct preliminary interviews and then based on some granularity, assign projects. One more issue I have with take home projects is that it is not always possible to tell who did the work. When it comes to interviews at startups I doubt that there would be much cheating, but for large companies where candidates are more easily able to slip through the cracks, I image this may present an issue. Can anyone speak to this experience?
Here's a problem with audition projects: I would never be able to take part in one, since my current job contract has a clause forbidding me from simultaneously working for any competitor in the same field. (This is a German job contract; I don't know if such clauses are common in the US or elsewhere, too.)
So in order to work on an audition project, I'd have to be unemployed already.
Those clauses are really hard to enforce generally. They're effectively restraint of trade. Your time not working for your employer is your time. Your employer is on dodgy ground specifying what you can do in it. At least that's the interpretation most places I've worked (UK and Australia). Germany may be different.
But specifically if you were taking an interview rather than working a side job you could make the argument that the clause didn't apply in any case.
It all comes down to how much you pissed off your ex-employer by leaving, and how much they want revenge. No-one is going to gain anything from suing you after you've moved jobs.
Talk with your solicitor. A lot of companies like to include such clauses in contracts even if they're not legally enforceable, particularly in the case of US companies operating in a country with relatively strong workers' rights like Germany.
I agree with other posters that same-field is usually going to be blocked anyway. I've had non-competes at 2 of my 3 jobs which would prevent me from working at any competitor in the industry for X years after quitting anway.
But my current work contract has an anti-moonlighting clause that could also be a problem. It states that I can't have other demands on my time that would interfere with my day job. Now, I interpret that as meaning I can do side projects that have no deadline and just be luxuriously slow and lazy at making progress on them. But for an audition project I probably wouldn't be able to take it that slow.
Generally, I've come to believe that the 'field' that a company specifies they're in is intentionally left vague. I would assume that most people looking for a new job would more likely than not look for something in a similar industry, and be, in fact, infringing on such clauses if they did audition project work for other employers in said industry.
It depends on whether they can show me some of their previous work, usually in the form of pictures from past projects. Serious vendors even invite prospective clients to their stores where they will have a "demo room" showcasing their work.
If they have neither, then it's absolutely fair to ask them to do a small audition project first. Otherwise how can you be sure they're competent?
Keep in mind this idea doesn't exist just in recruitment. It's basically recruitment's version of what's called a "proof of concept", which is proof that the party that is pitching/asserting something (i.e. their skill) can actually deliver.
In my past of applying for jobs as a designer, I had companies that would ask for take home tests. I always refused and of course didn't get the job. Conversely, other companies I worked for offered freelance positions (probation) before settling onto full time which I thought was far more effective and fair method at evaluating me as a long term candidate.
While it is indeed possible to cheat on the project itself to have any value that project gets followed up with an interview in which its discussed, and I think most people would trip up quite quickly if asked to explain in detail the process of developing some software they didn't in fact write.
Exactly. Asking the candidate to outline the solution, the issues encountered, and the rationale behind the design should quickly illuminate any funny business. Depending on the scope of the project, you could even have them push code to a company repo real-time as they make progress. Obviously VCS histories can be rewritten in some circumstances, but I think it would help give a little more granularity as to how the work was done.
I got asked to do an audition project as part of an interview last year. After completing the phone interview and receiving the project, I determined that this was something that they were having trouble getting ideas for, and were simply using the interview process to jump start it. I declined to participate and told them I would look for work elsewhere.
If the project is a couple hours, then sure, I have no problem with it. When it's an entire real project for the company, you're just donating a week's work to someone in the hope of getting an offer letter.
Audition project just substitute one bias for another. They also presuppose that those who will actually work with the candidate are somehow more enlightened and above bias than the standard interviewers.
That seems more like a question on how the candidate's work is measured.
While there's always some bias, I think it shifts quite a bit once you move from an artificial "interview environment" to a work environment.
Plus as has been said, since they candidates are working with the people they would be working if hired and that relationship doesn't work out, then maybe it's better to keep looking for someone else.
In my experience, those who must work with people 'on trial' hate doing so. They treat the entire experience as a chore, well aware that 90% of these people won't be around next month. That lack of commitment by the organization means those in control are only more free to express bias because they know the person at issue is already disenfranchised and weak.
Jeff mentions some studies of something known as 'Implicit Bias'. One of the leading Implicit Bias research institutions, out of Harvard, makes some of their tests available online. I highly recommend going through a few of them - https://implicit.harvard.edu/implicit/takeatest.html
Happy to see someone calling out what is happening in our industry, namely: this morbid fear of "hiring the wrong candidate" is making people ... hire the wrong candidate!
A word to the hiring managers out there, look to the future, cast the vision, and onboard people who want to go there with you.
When someone says "We Hire The Best", ask them to quantify precisely what "The Best" means. They can't. They weasel around and avoid answering. And that is because they can't define in a tangible way what "The Best" is. And if you can't define it then how do you know you found it?
Assuming you can define "The Best", an even bigger problem is working out a provable mechanism for measuring - in a quantifiable way - whether someone meets the criteria for being "The Best".
And the final absolute ripper problem is that the more you strive for "The Best", the less likely tou are to find anyone so you'll spend months interviewing and hiring no-one until the boss decides to pull the budget for that position because you didn't hire someone and anyway the commercial opportunity that validated the hire is now evaporated because we couldn't get the code written.
My term for this is "Voodoo Recruiting" in which there are rituals and dances and songs and meetings and processes and tests but it's all just a magic show because in the end the decision is not scientific, it's a magical outcome based just on personal likes and biases. In Voodoo Recruiting a company forms a set of beliefs about its recruiting processes and practices that become sacred and magical - such as "everyone has to do our test, and it actually tells us something meaningful about the candidates and we know how to interpret the results in a meaningful way".
I worked for companies which "hire the best." My experience was always exactly the same - a group of very talented engineers who couldn't accomplish a damn thing together because egos got in the way.
My current company doesn't hire the best, but instead focuses on people who enjoy making impact in a small team, share the same vision and have a bit of an entrepreneur in them. We don't quiz people or give them tests. We just sit down with them and start talking tech. The results are really amazing and make for a great place to work because everyone feels like the project they work on is their baby.
Great post. "Try different approaches. Expand your horizons. Look beyond People Like Us and imagine what the world of programming could look like in 10, 20 or even 50 years – and help us move there by hiring to make it so."
We are helping companies to do that at https://stayintech.com/. In the future people who build technology should represent the people who use it.
I love the first graph on Jeff's article. It shows how versatile the "best"-word can be in such a context:
- If you have the best programmers in the world but they failed to help you identify when/where to pivot, you fail.
- If you have the best programmers in the world but let them run too fast and burn, you fail.
- If you have the best programmers in the world but let their ego/drive ignore customer feedback, you fail.
- ...
There is no definition for "the best" beside a "well balanced human being"...
I have been researching this exact space for the past few months (www.developersjourney.info) and am now more and more convinced that once you reach a technical-threshold, in order to close onto "better-developers", you need to hunt for the 3-C-values: create, care and criticize. A balanced team should be a patchwork of cultures, backgrounds, desires and skills. But I think the drive toward those 3-Cs isn't optional...
Plug: This is very much an ongoing thoughts-process for me. If you have further input for my DevJourney Project and/or want to appear on my podcast on this subject, please contact me!
"Only hiring the best" can paradoxically lower the average quality of the candidate you end up hiring, anyways. Suppose there's two ways for someone to pass a strict interview: they're either a good programmer, or they're good at bullshitting you. With a higher bar, you're giving bullshitters more opportunities to bullshit you.
From the perspective of a subordinate doing hiring, raising the bar makes perfect sense. You don't want to get blamed for a risky hire going bad, so you optimize for making your choice defensible rather than good. Non-hiring is also risky - it's just risky in a way that damages the company rather than the person doing the hiring.
Tokenadult isn't around to chime in here, so I'll take his place today. Hunter and Schmit did a meta-study of 70 years of research on hiring criteria. [1]
There are three attributes you need to select for to identify performing employees in intellectual fields.
- General mental ability (Are they generally smart)
- Work sample test (NOT HAZING! As close as possible to the actual work they'd be doing).
- Integrity (The first two won't matter if the candidate is a sociopath).
I really like this post, that most companies require workers to be at a specific location is very strange considering our type of work.
I don't want to work in Sillicon Valley, even if the work is interesting. I live in Scandinavia and for me scandinavian countries are the best to live in the world.
It boils down to 2 things: Management is incompetent to tell when work is actually being done, and management doesn't trust their employees. I'm just waiting for the day when requiring on-site commutes is regarded as backwards as it deserves.
I don't know first hand, but I suspect that I'd rather be shot at dawn than live in a Scandinavian country. I tried Canada for a while ( temporary posting due to acquisition) and it just didn't work.
You're used to that, and in a "measurable" way, it's semi-objectively true but it's not for everybody. I think it mainly was that I missed the sheer insanity of America where it is insane. It's something akin to codependency.
And given all that, I'd rather live in a Scandinavian country than SiVa.
Rather be shot down than live in Scandinavia? May I ask why?
We have free healthcare, free education and a good work-life balance. We have 5 weeks of vacation by law. We have parental leave, a lot of it and you may still earn a lot of money. A friend of mine took 9 months of parental leave when he got a child.
Sweden for example has more billionaires per capita then the US. Norway have so much money in their oil-fund that they could pay every Norwegian 1 million NOK and still have money left. We're safe from any storms, earthquakes and basically all natural catastrophes. The most dangerous animal is pretty much the moose. Environmental issues will hit Scandinavian countries very late compared with the US.
A few things have happened in the last few years that make me believe that the meaning of the best is a lot more influenced by our own biases than we will ever be ready to admit. This is a huge issue with hiring:
1. The study about blind interviews in orchestras mentioned in the article. Think about it, most people in symphonic orchestras have a university education, and often with more years of education than your average engineer, they learned all about critical thinking etc... They are artists, whom are usually considered more open minded (ok debatable). But, they as a group, were able to acknowledge that they have strong biases to the point of trying (and eventually adopting) blind interviews. This, tells me that these people have a strong sense of the fact that they are aware that they biased, and able to admit it, and aware that it might influence their interview process, yet, the experiment showed that they were not able to see passed gender! This has seriously made me rethink about my beliefs about being conscious of my own biases.
2. I have worked for company A, which hired only the best (besides me I guess ;-) ) pretty much as described in the article, I have recommended people I had worked with previously and whom I knew were amazing, but they didn't get hired. I was seriously surprised, but you know the "it's better not to hire one of the best than err and make one bad hire". Ok.
3. I then worked for company B. I recommended somebody who was hired at company A. That person was not a friend, but somebody who passed all interviews with flying colours at company A. I worked with that person and they are extremely smart. Everybody at company A was amazed how smart that person was, even after seeing them fly though all the oh-so-though interviews. Working for close to a year with that person, and everybody was still positive about how smart and good that person was, so they aren't just good at interviewing. That person was turned down at company B.
PS: Yeah, maybe I just need to stop recommending people, I now realise I'm the common thread in people not getting hired in my story!
>I think our industry needs to shed this old idea that it's OK, even encouraged to turn away technical candidates for anything less than absolute 100% confidence at every step of the interview process. Because when you do, you are accidentally optimizing for implicit bias.
Now you've got to spend time optimizing your interviewing team. What if one guy just says yes to everything? He might as well not be there but he's still a weight in that decision. What about the opposite where he says No every time? When do you decide he is actually going to say No every time and not worth being part of that decision process?
The more people you put on this decision table, the lower the chances that any one candidate will make it through. But there's an opportunity cost of time/money to that, so you've got another thing to balance.
I think it would be really, really hard for one person to simultaneously impress 10 people beyond a doubt just because of how many people have to reach consensus. And can you imagine the stress of knowing one dude with a nitpicky attitude (that none of the others know about yet) could sink your chances?
The missing part of the advice is that you need to hire the best _for your company_. But there isn't an objective definition of 'best.' People can be great at one job and not right for another, great in one company and not right for another. Hiring and job hunting is about fit.
I've worked with people who were A players, hired into a new firm, and quickly spun out. Other people were C players, found a new job, and quickly became A players.
If you're a company who's great at training people, you can hire for energy and eagerness to learn. If you expect people to know everything on day one, hire for experience. The same people who succeed in one of those companies will fail in the other. A big part of hiring is knowing yourself and knowing what makes people successful.
To put this in context, "Hire the Best" means: adopt an incredibly risk tolerant nature, initiate an incredibly risky business venture, and then tolerate zero risk in your hiring decisions.
"The most significant shift we’ve made is requiring every final candidate to work with us for three to eight weeks on a contract basis. Candidates do real tasks alongside the people they would actually be working with if they had the job. They can work at night or on weekends, so they don’t have to leave their current jobs; most spend 10 to 20 hours a week working with Automattic, although that’s flexible. (Some people take a week’s vacation in order to focus on the tryout, which is another viable option.) The goal is not to have them finish a product or do a set amount of work; it’s to allow us to quickly and efficiently assess whether this would be a mutually beneficial relationship."
Or they can just walk down the street and get a job anywhere else with similar compensation with less contortion.
The people who will go through this either a) really want to work at your particular company (in which case, great, but unlikely), or b) are desperate for a job because they've been turned down several times.
That would violate many people's current employment contracts that either forbid them from working for someone else simultaneously, or that assert ownership of all code written outside of work.
It works well in my experience, but we have only used it at smaller scale. 2-3 days working together with somebody is already way more telling than stupid interviews, buzzword compliant skillsets and unrealistic tests.
How would it work in "your experience" if you were the job seeker and not the interviewer? Taking a week of PTO to interview and then not get the job is a pretty big sunk cost. I guess you can only do one of these a year.
If you make weekends and evenings available, it lessens the cost of the job seeker. If you allow for remote work using one of the many online collaboration tools, it lessens the cost for both the job seeker and the employer.
There's a very big time cost to hiring just the best. If you're afraid of even one bad hire, then a growing company must be willing to have all their managers and top employees commit 20+% of their time to hiring. Then you ask "Is the 1-2 standard deviation in performance improvement worth it?" If the answer is yes, then it's worth it.
And... Interviews are awful. Seeing how someone work is even better. This is one reason why employee referrals are so important, and audition or temp-projects a good second-best method.
In the end I think it's a Fools Game though - someone who is best in one environment may not be that great for the next. Managing people post-hire is something that can't be avoided.
It's not just a time cost. The graph near the top of Jeff's article shows "Ran Out of Cash" as the #2 cause of startup failures, ahead of anything else hiring-related. I say anything else because hiring the best means paying for the best. If you hire nobody else, then salary costs rise. Attrition probably does too, because the best are often among the first to jump elsewhere.
Every startup needs a few of the best. You should definitely seek out and pay for those few. After that, even a startup has jobs that don't require the best. Hire for potential, attitude, chemistry. Hire for special knowledge when you have to (though you should try to avoid it). But don't demand that every hire be among the proven elite.
You could argue that the best pay for themselves, and that running out of a cash could come from hiring bad people.
The absolutely best employees I've seen haven't been frequent job hoppers. At most it's every 3-5 years. I'm thinking of an unscientific sample size of 5 or 6 people who have had sustained outstanding technical performance of 10-25 years. Companies don't let people like them go. And they tend to be loyal to the mission if treated fairly.
Now a company with $1mm of seed money that's supposed to last 12-18 months can't afford to hire 5 people like that. There's not enough cash or equity to go around.
This is one of those great articles that open up a collection of other articles to look at, whether you agree with the author or not (or somewhat). The links in the body are very informative.
I really enjoyed the article until he got to the audition process. That would shrink the pool of candidates so much that all the previous advice about widening and diversifying the pool becomes irrelevant. Almost no one with significant experience would agree to that. Almost no one with a family would do it either. And let's face it, it's a buyer's market, not just for "the best", but even for the "just OK".
> What I like about audition projects:
> It's real, practical work.
> They get paid. (Ask yourself who gets "paid" for a series of intensive interviews that lasts multiple days? Certainly not the candidate.)
> It's healthy to structure your work so that small projects like this can be taken on by outsiders. If you can't onboard a potential hire, you probably can't onboard a new hire very well either.
> Interviews, no matter how much effort you put into them, are so hit and miss that the only way to figure out if someone is really going to work in a given position is to actually work with them.
I'm finally sitting down to read Peopleware, and from what I can tell, this is what they recommended back in 99 or 87 or whatever. Alongside portfolios of work. I need to find a 2013 edition, to see if they mention GitHub portfolios at all.
The description of "Audition Project" as presented is questionably ethical, almost certainly violates almost everybody's pre-existing employment agreement, and puts Automattic and the contractor in a very compromised legal position in many states over the IP that the employee of the primary company is creating while on a spurious contract with Automattic.
It seems like a colossally bad idea almost all-around. I mean, would Automattic tolerate an employee working contract gigs for a potential future employer if Automattic were to be made aware that's what the employee was doing?
When they say top 1% they generally mean the top 1% of applications. A very large portion of the applications you get for an opening are sent by those who need to send out hundreds of applications to get a job.
Fortunately, since the best 1% are distributed across thousands of companies, all these companies have to settle for 99% percentile developers as well.
In regards to the paid trial period method. My experience is mixed, on one hand you get a real insight into how someone works and approaches their tasks but you lose that crucial emotional distance, so to say... you go soft on them.
> Using screens to hide the identity of auditioning musicians increased women's probability of advancing from preliminary orchestra auditions by fifty percent.
I thought that the increase was largely attributed to more women being willing to audition anonymously?
> if that describes you, and you have serious Linux, Ruby, and JavaScript chops, perhaps you should email me
I don't know why, but I always thought the Atwood was 100% invested in Microsoft technologies. Not that it matters, it just surprised me.
Speaking of Atwood, has anybody ever used one of his keyboards? Any opinions?
She was able to attribute 25% of the increase in hiring of women by orchestras was due to the blind auditions. She also found that there was an explosion of auditions when orchestras adopted the blind format.
So it had an effect, just not as large as I thought.
That's weird. From what I've seen of women in classical orchestras, if I were the one in charge of auditioning and hiring musicians (not blind), I'd probably be hiring mostly women....
Honestly, if you're a straight guy, why wouldn't you want pretty young women working with you?
Hey, I'm just pointing out that this common trope about men discriminating against women for jobs doesn't really make that much sense, unless all the men in charge of hiring are gay (which obviously isn't the case or the claim).
Seriously, what kind of straight man only wants to be around men all day long, and then (assuming he's married) come home every day to the same woman, and never get to socialize with any other women? Maybe a religious fundamentalist, but not any normal man.
1. Why should women be judged on attractiveness? Men are not generally judged on this standard to join orchestras or do office work. It also, perversely, punishes women for being experienced while men benefit from it, handicapping their lifetime earning power. Professional women probably do not want to spend their lives judged as eye candy.
2. Because of the first point you will still end up with a strong male bias on top of whatever natural one training creates; after all, we're looking at men of any age versus young women, for the most part, in this scenario.
3. The numbers clearly do not bear out the assertion you're making in the first place, since blind auditions significantly increase the likelihood of women being hired after auditioning. It seems your "self-evident" reasoning does not fit the facts.
4. I do not think it is true that all men want to spend more time socializing with women. I don't see how the logic you're positing works unless sexual harassment is just outright permitted. If you're not convinced that sexual harassment is bad then I guess you're operating on a different plane than most of us.
Thanks for the response, but I really don't understand where you're getting the idea that I'm advocating sexual harassment at all.
I'll go backwards:
4. So you think that most men would prefer to not have any women around them most of the time, and only want to socialize with other men? I don't know if that's true or not, but it certainly isn't the case with me. I don't really want to work in a monastery-like atmosphere devoid of females (attractive or not).
3. Maybe, but that's what I'm asking about: why would straight men only want to be around other men? Seriously, I really don't understand this at all. Are most men repressed gays or something? I actually like being in mixed environments, even if I'm not attracted to most or even any of the women. Am I weird that way?
1-2. You seem to be claiming that men aren't also judged on attractiveness, and this seems wrong. I'm quite sure a lot of studies have shown that men are indeed judged on attractiveness, though the standard is somewhat different than for men (it doesn't disfavor older men as much). Just go find a short guy (or worse, a short fat guy) and ask him how his life is going and if he perceives any discrimination.
Anyway, my point all along has not been that only young pretty women should be hired, as you seem to think, my point was that I don't understand why men would discriminate against women in hiring, because to do so would mean you're surrounding yourself with a bunch of dudes, and as I said above, I don't know about other men, but I for one do not enjoy "sausagefests"; I like mixed environments.
I've heard enough men vocalize such thoughts to think that a fair number of them do.
The reason I get the idea that you're advocating sexual harassment is that you keep casting this in sexual terms -- why would you want to be surrounded by men, unless you're gay? Work is not a sexual environment (let's ignore the exceptions for this conversation); why is sexual orientation relevant? Saying "hey, aren't you heterosexual? Then why don't you hire women?" manages to promote a progressive cause with regressive reasoning.
I will concede that men, too, are judged by appearance, but I think that the standard is far more lenient and, as you said, tolerant of age.
In any event, the auditions are meant to judge skill. The conclusion I reach from the success of blind auditions is that evaluators perceive playing as less skillful when they know it is done by a woman.
>The reason I get the idea that you're advocating sexual harassment is that you keep casting this in sexual terms -- why would you want to be surrounded by men, unless you're gay? Work is not a sexual environment (let's ignore the exceptions for this conversation); why is sexual orientation relevant?
So you think that if I'm not actively looking for sex from women, that I should be perfectly happy to live a life completely devoid of any kind of female contact whatsoever?
That seems extremely disturbing to me.
Does that also mean that if I'm not actively looking to have a sex partner of a different race/ethnicity, then I should be perfectly happy to never have any kind of contact with people from other ethnic groups?
Wow, I guess on HN I'm just a real weirdo because I don't want to be surrounded by white males and be completely cut off from contact with other kinds of people.
No. I'm suggesting that arguing that you don't want to be surrounded exclusively by white males because "hey, I'm not gay" (implicitly, because you want to have sex with these people, or at least would not object to doing so) is somewhere between off-putting and troglodytic.
"From what I've seen of women in classical orchestras, if I were the one in charge of auditioning and hiring musicians (not blind), I'd probably be hiring mostly women.... Honestly, if you're a straight guy, why wouldn't you want pretty young women working with you?"
This is what you wrote. So, no, I think you're just trying to walk away from the implications of what you wrote because you are embarrassed. How do you propose interpreting that without any sexual bent?
You're taking one line I wrote and applying it to everything. I've made a bunch of other statements in this conversation about how I prefer mixed groups, not only of sex but of ethnicity too. One nice side-effect of a mixed group is there might be some dateable people in there, but it's not a given, and it's nice to have a mixed group (IMO) for many other reasons than just sex or seeing pretty faces, but I don't see how it's wrong to want to work in a mixed environment and have that possibility if you're single.
Playing devil's advocate, that strategy can still end up with a deficit of women. If your selection bias is (pretty ^ young) women > dudes > (unattractive v old) women, your hires are still going to be predominantly dudes, unless the talent pool is so deep there is always a qualified woman available who is also pretty and young .
You have a good point here, but just from what I've seen with symphonies, it seems like usually the performers, of both sexes, are fairly young(-ish). And they're usually all reasonably attractive. They're up on a stage for people to see them, after all, so naturally whoever's trying to keep ticket sales up is going to want them to look nice.
There is always someone better than YOU, even if you hire the best (and you can't), so stop bullshitting wannabe slaves and learn to respect real people. Signed: the best.
In this world of open source software and super fast servers , hiring is over hyped especially for apps & enterprise solutions. The best enterprise/web app coder is not necessarily the best analytical thinker or apolitical individual. Indeed, there are some domains where you will need specialists.
Any one who is hard worker (can learn etc) and has open mind to discussing design pros and cons is a good hire for 80% of software.
Encouraging hiring discretion and audition projects creates a situation where a massive amount of people who don't want to work on a project for a few weeks only to find out they aren't a 100% good match will never apply to your company.
> A successful sports team should hire the best, even if that's what everyone else is trying to do too.
Yes, but sports teams recognize "the best" is dependent on the other pieces in the organization. Teams that try to stack their rosters with "the best" in objective measure typically crash and burn. Teams that recognize "the best" is whomever fits the team's scheme and current players the best succeed. Too many software companies want the first sense instead of the second.
No, this can't work at e.g. the NFL. There is a $155 million per year hard salary cap. There are 53 players which much be paid under this cap. Which means the average salary is just under $3 million.
One of "the best" quarterbacks gets paid $20 million."The best" at various other key positions such as left tackle and defensive end and at cornerback can easily get paid $10 million each.
Even if you forget about special teams, you can't afford to pay 11 offensive players $10 million each plus 11 defensive players $10 million each.
Which means that you pay a few superstars at $10 million or more, some more good players $5 million, a bunch of OK players $3 million, and a bunch of rookies and scrubs under $1 million each.
Nobody can afford to hire the best at everything. I'm sure that's just as true in business as it is in sports.
Getting a job is an accident you get involved in (most of the times) knowingly.
The interview is the collision (or the contact event)
The job represents how well you survive after you come home after treatment.
There is no best... only better.
There is no "the best". There are only people. Some people work wonderfully at one shop, but horribly at another. This can have nothing to do with their skill or even their personality. Each working environment is unique as is each candidate. You simply cannot tell which will work perfectly until long after someone is properly hired.
So why bother interviewing? The goal is not "we only hire the best". Hiring is only half the battle and a short term goal at most. The long term goal should be "we only retain the best". Sometimes that means firing people, but more often it means going to the mat to keep the people who work best: Treating people like human beings and, most importantly, paying them. Pay well and the good people will not leave. Actually fire those who don't work out in the long term and even they will do nearly anything to stay.
Or do what most startups do. Pay next to nothing. Treat everyone like widgets in a great machine. Fire only those whose admit having a life outside of work. And hire only those who share similar opinions on ultimate frisbee because culture!
For engineers a working with them to solve a real issue is pretty telling. GitLab is a young company but so far we never had to fire an engineer and I largely attribute it to this.
Totally agree that retaining is the other side of the story. We actively encourage people to tell about their life outside of work and celebrate the diversity in cultures.
The article also talks about geographic diversity which I think is a great help in getting good people to apply, we have people in 4 continents now. If we only had to hire in the bay area we can't have been as selective as we're now.
> Or do what most startups do. Pay next to nothing. Treat everyone like widgets in a great machine. Fire only those whose admit having a life outside of work. And hire only those who share similar opinions on ultimate frisbee because culture!
I think there is "the best in context", and that's what people should strive for. The "best in all situations" is what most people like to chase after however.
Someone who has 20 years of knowledge in a dozen different languages doesn't matter as much if you just need someone with 2 years of very deep knowledge in one very specific language. On paper the former is "better" (even if one can learn/adapt), but in context someone who fits the latter is a better fit.
People can also learn. I'll take a junior developer over a senior developer who's an asshole any time. In a team, over time, the junior developer can more easily become an asset than the senior can change his/her ways.
>There is no "the best". There are only people. Some people work wonderfully at one shop, but horribly at another.
Well, sure, but from the employer's perspective different people have differing amounts of potential productivity. You definitely want to at least limit your hiring to people who at least have the potential to be star performers.
> The most significant shift we’ve made is requiring every final candidate to work with us for three to eight weeks on a contract basis.
Are you fucking kidding me? What am I going to tell my current employer while I "audition" for the mere possibility of a next job?
Most working adults in the US don't even get three to eight weeks of discretionary vacation that they aren't already using to spend time with family or, you know, recharge after working the salt mines for meager scraps.
This is the wrong approach for anyone except - maybe - very junior candidates. Fresh out of college, zero responsibility, wide open prospects. Those people could actually use 3-8 weeks of paid auditioning. Those of us who have families simply can not afford to do this.
So its basically extended interview for like 8 weeks where your every move is being watched/judged.
When did it become ok to treat people like shit and humiliate them with these ridiculous "interviews". Seems like we keep coming up one worse idea after another.
Shame on everyone who thinks its ok to humiliate people with your idiotic algorithm/whiteboard/big O interviews.
This is getting so out of hand. Can we bring some humility and kindness to tech interviews.
Completely agree. Do accountants have to work on the companies books for 8 weeks as a "trial period"? Does a mechanical engineer have to build widget X on the spot during the interview process? No, for most jobs they look at your background, talk to you about your experience, talk to your references, etc. And if they don't work out, even after some coaching and career development? Lay them off.
And don't give me xyz about how hard it is to fire someone. Owners with people working for them in other professions don't seem to have this problem and they lay people off at will.
I know that owners and funders are trying to reduce risk as much as possible and this is one way they feel like they can. However, as the article even states, startups fail for all sorts of reasons. Newsflash, staring and running a company is a risky thing to do! Thats why if you succeed there is a large reward!
This is one of those examples where a totally well intentioned move is completely misunderstood.
What is the purpose of an interview? To see if someone's a good fit and works well with you. Interviews don't tell you that. Working with the people fixes that.
At least these are paid contracts. It's one thing if they were unpaid, then sure, yes it sucks. But it's the equivalent of doing a freelance gig for a couple of weeks to see not only if they like you, but if YOU like working at that company.
You can evaluate working at a company, get paid to do it, and find out all the pitfalls BEFORE you leave your existing job. What could possibly be so damn disgusting to you about this?
I think they find it disgusting because all the risk is shifted onto the employee. By the time 3-8 weeks have elapsed, the employee has definitely quit or lost their previous job, so if they don't get hired, they will be involuntarily unemployed, with no prospects because they've been busy with their "audition".
I think the problem is that full-time employment and everything around it is like keeping animals in a zoo. You hope and beg for vacation time. You pretend to work 8 (actually 10 to "look good") hours even if you finish all your work in 1. The most personal work you can hope to retain after you leave, beyond a blurb on your resume is to sneak around behind your employer's back and work on your own stuff. There is tons of politics.
The salary negotiation is itself about trading getting the employer to basically take care of you (especially in Japanese corporations, as patio11 often mentions) so you can reduce your risk. The infantile mentality inculcated in people receiving conditional welfare is present in FTE -- pg's essay about schools and jails would be applicable here. One can even argue that our education system has been designed to prepare the majority for being obedient and loyal FTE workers.
I'd rather society replaced all this with an UNCONDITIONAL basic income for everyone and everyone would be free from any age to work as a self employed contractor. That would effectively abolish the minimum wage and let people learn through doing projects where they are treated with respect, not as animals in a zoo.
I think libertarians talking about philosophical freedoms should take a serious look at actual personal freedom as defined by the range of options each person has.
> You pretend to work 8 (actually 10 to "look good") hours even if you finish all your work in 1.
Maybe my experience isn't representative, but at my job there is actually work to do: you know, hard problems that take time to think through and solve.
> The infantile mentality inculcated in people receiving conditional welfare is present in FTE
Substitute "conditional welfare" with "earned compensation".
How is it infantile to voluntarily negotiate compensation with someone for whom you will be providing value (ie. your employer) and yet not infantile to demand unconditional welfare from society as a whole?
Unconditional basic income is unconditional, so it doesn't have the downside of conditional welfare: people are afraid to earn too much money because they'll lose their welfare income, and then they're in danger of losing that new revenue and they can't get back on welfare right away so they're up the creek without a paddle. So they cling to the safety of welfare. And this + minimum wage laws keep them from developing themselves and creating monetizable value that builds on itself year after year.
And this is similar to the threat of losing your steady paycheck if you don't behave, as is evidenced in part by the great grandparent comment. There is a lot of dysfunctional politics and dynamics that comes from being in that sort of situation and environment, which pg's essay "why nerds are unpopular" describes at length. Incidentally, pg is also very anti FTE personally, likening it to eating roadkill.
Look at it like this -- can you work on your own awesome project that will change the world? Not if your employer wouldnt be pleased. Maybe you'll sneak around like a kid does. If you work for a bank, can you take a position as a CFO at a startup? I have heard people say they can't do this, or that, because their employer wouldnt like it. I've seen tons of people sitting around and pretending to work, because their employer was covering the risk, but they are afraid of losing their job. It's a conditional paycheck that by definition demands your full time for whatever odd job comes up once you're there. And they even try to make you work longer hours without valuing them as they would with a contractor.
I don't mean to say that there are absolutely no fulfilling, productive fulltime jobs. Just that the vast majority of people experience many of the downsides of FTE including the infantile mentality. Plus many of those people believe their own jobs are not productive and can be eliminated:
What's disgusting is the misuse of the "contractor" designation just as it is with Uber or Instacart.
When I work as an independent contractor I do so knowing that I am paying significantly higher taxes on that income, paying for my own health insurance, and managing my time in such a way that I can stay sane. I charge accordingly.
Is this company going to pay me the hourly rate they charge their clients during this "trial" period? Are they going to pay me extra because I'm working 40 hours a week and then doing this work overtime?
Because if not they are eventually going to find themselves on the wrong end of a lawsuit where they must designate these people as part time employees.
I've done an "interview" like this before, but it was 3 months not 3 weeks and they paid me my agreed upon contract rate up front for 15 hours a week work from home. They made a decision not to hire full time after the second month and let me know, but used my additional month of work. I was able to use the time and money to find a full time position during this period that was a good fit. That's fair.
That's pretty much every job though. You're generally watched and judged more closely when you first start out anywhere, and it relaxes after you've proven yourself. Even if it's not happening overtly, you can bet it's happening. And not just from your boss, but from coworkers as well.
Am I the only person who thinks algorithmic/big O puzzles are kind of fun? Like they're super high stress when you're interviewing, but basically everything is super high stress when you're interviewing.
They are kind of fun. I enjoy the problems in "Cracking the coding interview". In fact, preparing for a google interview (no offer) actually reminded me of why I like programming so much. You need to think deeply and creatively about interesting problems, rather than spending all day trying to figure out how to fix "errno 64: gcc header missing"…
My misgiving about these interviews is that they are really exams, without the examiner/examinee accord that I think slowly evolved over time, in institutions that are exam-heavy, to provide balance and fairness to both sides. Think about exams at a university: most (but not all) of the time, formal exams come with a number of rights for the person taking the test. It must be consistent, it must be graded fairly, it can't be capricious, it must be related to the coursework, if you fail, you have the right to know why you didn't pass, you get feedback, you get a lasting credential, you have a "study path", and you have a grievance process if you feel things were biased, unfair, or inappropriate.
I understand that companies are tight lipped because of liability issues, this means applicants take a high stress five hour exam, but with nearly no feedback. Supposedly there are numerical scores in a database about candidates, but they are not allowed to know what those scores are.
Unfortunately, I do think this amounts to an exam without the rights that evolved over time to make sure the process wasn't excessively abusive to people who sit for exams.
Lastly - I tend to agree that a company is free to set up what hiring process it likes, within limits. If a month long paid audition/consulting gig is how they'd like to do this, and they accept that this means they will lose out on people with stable jobs (often people with children or other dependents), that's fine. But what do you think about companies that do this but then start complaining to congress that there is a terrible shortage of workers? Should we take them seriously?
> Am I the only person who thinks algorithmic/big O puzzles are kind of fun?
They are fun. So company ends with a lot of people who can implement red-black trees and so on, especially under high stress. That could be good in some case. I can't see it that good in general.
"So customer reports server keeps restarting every Thursday, can you take a look?"
"I am not sure how to do it, but I can invert a binary tree in under 10 minutes though, would you like to see that?"
>am not sure how to do it, but I can invert a binary tree in under 10 minutes though
Most ppl completely forget how to invert a binary tree in about 1 week after the interview. Which makes the whole interview process based on that stuff even more absurd.
Personally, I enjoy a high stress induced buzz occasionally given that the situation is plausibly survivable. The problem with social pressure targeting me is that it incapacitates those areas of my brain that deal with anything related to maths and programming completely. I'm not kidding here. I read math books for fun and do recreational algorithmic design. So my brain is primed pretty good for technical stuff.
Any stress where I'm "tested" somehow where the "correct" solution is to amaze the interlocutor with my fantastic analytic skills? It's like I've had a brain surgery. That stuff is just not accessible. I don't feel terribly troubled by such situation but my brain apparently does.
The same does not happen with working in actual products where people are concerned in finishing a product on time and not evaluating me. Pressure is way higher in those situations but the pressure is to get the work done and not impress anyone by trying to outguess which theoretical approach is most dear to them.
For this reason Fizzbuzz is the most technically demanding task I would demand of anyone if I were to lead an interview. For fresh graduates? Look at their grades. More seasoned folk? Have they got stuff done and do they appear smart? I would emphasize this "getting stuff done part".
I don't believe anyone is being treated poorly here. They are being paid for their time, worst case the individual could think of it as side work. I understand many people have family and commitments but I don't think this is unreasonable. You are after all given a choice in the matter.
The follow up argument is of course, feel free to insert exaggerated hysteria here: "what if everyone moves to this model"? There are worse things in the world then getting paid to interview with someone.
Offense is taken, not given. I can't see where is that humiliation you're talking about. I would take such interview with smile. I think it's good idea. Why don't you?
It's amazing that you'd go through all sorts of hand-wringing to supposedly eliminate (or at least claim to feel bad about) bias, and then put people through a mandatory process to basically go back to square one. You're implicitly excluding mid career employees with actual obligations, single mothers, people with obligations outside of work, and people who work for companies with contracts that assert copyright for work performed outside of work.
If anyone asked me to do an "audition" contract job on nights and weekends, screwing up my family life and my professional job that I'm still obliged to perform, I would laugh heartily before hanging up. Even in a unemployment situation, I'd get stuck with a more complicated tax return, and be faced with a future of similarly douchey behaviors to follow.
Just how enforceable are those "we own everything you do on your time off" contract clauses? I've seen those in a lot of tech jobs and they seem like textbook overreach to my non-lawyer eyes.
Are there any cases of people working on some open source project on nights/weekends and have their employer swoop in later and claim copyright because of their employment contract? Has it ever stood up to legal scrutiny?
Whatever happened to just hiring someone on a contingency basis? Sure it will cost more if the person ends up being a bad fit since you'll be paying unemployment and they'll be out of a job entirely, but it's far more schedule friendly and less sketchy than this "pretend to be a moonlighting contractor" bit.
He did say it was something they could do in their off time, so they could still keep their old job while they worked on it, and they'd get paid for their time too. I think that's why it's 3-8 weeks, because some people have more time to work on it and some people less.
I don't think it's great necessarily, and certainly not great for everyone (some people really have very little free time outside of work, kids, and other responsibilities) but I also don't think that's bad. I actually wouldn't mind the side income from such an endeavor right now.
There is also the potential legal problem of people working under contracts that don't let them do side work, which is also a legitimate argument against this approach.
This. It's important for them to understand their biases. This has a bias towards individuals who either are already contractors, do not have a job, or have large amounts of "free" time that is not dedicated to other endeavors.
Personally, I don't think there is anything wrong with this as long as they understand their bias. Sometimes it's more important to pass on potentially great hires in order to weed out bad hires.
For what it's worth, I would never do this. I'm not going to quit my current job to take this kind of risk. I also don't have "free" time. I have several time consuming hobbies / commitments outside of work that I'm not willing to break for 3-8 weeks.
Trial employment is a great way to not be able to hire the best. A trial period means uncertainty. Any reasonable candidate will consider that a negative, compared to a competing offer which looks more certain.
More specifically, this is another way for an employer to move the risk of hiring back onto the employee. It's the employee who is going to need to leave their current position for an 'audition'. This is going to put the employee at a disadvantage during negotiations because the employee will likely not have as strong a position compared to have an existing job to fall back on.
So unless the 'best' are already unemployed, then this helps the employer reduce their risk, and improve their bargaining power during offer negotiations.
As a thought experiment, if you were trying to hire one of the 'best', during negotiations would you prefer if that person was currently employed or currently unemployed? As an employee, I'm glad that generally my BATNA includes staying at my current position (at a minimum).
I agree that interviews are broken; no matter what styles of interviews I've seen, I see them fail to predict the future.
Becoming good at firing is one way to triumph despite interview problems. Sometimes the employee is quite aware that they aren't working out. Even if they aren't, their coworkers probably can see the disaster unfolding. Done well, there's no morale hit.
He does go on to say that it's 10-20 hours per week that they can do on nights and weekends for which they are paid. That said, I don't really disagree with your basic point. Under the appropriate circumstances, some limited paid contract work can make sense. For example, for an industry analyst job, we used to ask for writing samples. In retrospect, asking them to write something on a specific topic (and paying for them to do so), might have been a good approach. But 100+ hours of audition does seem awfully high to me.
So candidates are expected to work evenings and weekends instead of spending that time with their families?
The process seems to strongly favor young and single folks. Then again maybe that's fully intended. The tech industry has a huge ageism problem after all.
Ageism is so rife in the tech sector in the US that people don't even notice it because it's omnipresent. I would go so far as to say that in the Bay Area, actively discriminating against anyone with the appearance of being over 40 is the default behavior for tech companies.
For example, if you look over 40 and not a tech lead/manager and haven't been one, you won't be hired, as you will be seen as having a lack of career trajectory. The entire 'career trajectory' premise is inherently ageist.
Then again, maybe it's time to stop looking for a one size fits all solution and acknowledge that (in an ideal world) we might want to have different processes for different candidates, depending on their life situation and/or individual priorities?
Well, it's only for a few weeks and only when you are looking to change jobs, and you get paid. I'd wager that many, if not most, people wouldn't mind picking up a little extra income on the side from time to time.
This strategy seems like it would effectively choose the best candidates out of the pool labeled "desperate people".
It mostly categorically excludes anyone who has market desirability and doesn't have to put up with it.
I suppose it could work in parts of the country/world where the supply of engineers vastly exceeds the number of jobs, but it likely fails spectacularly in anything resembling a tech hub.
This strikes me as the stronger/more extreme version of take-home interview projects, which while being good at filtering for quality, also simultaneously selects only for people who are willing/forced to put up with it.
I suppose if your strategy is "hire the best of the desperates", this works for you.
That is the same idea behind take-home tests. "Code this App. It should be 5 hours worth of work. Get back to use when you are done".
I asked a friend who hires for his start-up why they do it. And their answer was exactly what you suggested -- to find desperate people and it also requires minimum investment of their time to start with. The rationale is because in the end they'd have to invest a significant amount of their time during the delivery crunch, that ends up selecting for that trait pretty well.
He spoke as a friend, and will probably never say or admit it in public to the outside. But yeah it is something that happens. I imagine they are not the only ones who came up with that realization.
Yep, I interviewed with a small startup in the ABQ/Denver area and they asked if I could build a project over the week with their platform. "You know, don't spend more than 8 hours or so on it, you can just do it over a weekend and then maybe take some notes on any bad documentation or ideas you have"...
Luckily I had many other interviews to go to, I didn't waste my time on their project. I'm sure a lot of people in Albuquerque would have though.
This sounds like a Police, Fire, and/or Military hiring process.
For example;
The test to get hired with my fire department was 2 hours long. 1800+ people took the test: 400 passed.
Then you have to pass a Physical test: 250 passed.
Then there are two formal interviews: 150 passed.
Then the final selection of 50.
After the selection, the candidate is required to pass a 22 week academy. The attrition rate in the academy is roughly 30%
So out of the 50 that start the academy ~35 graduate.
Then you are on probation for 1 full year, where maybe 5 or so are fired for various reasons. That is, once you get past the interviews, the real training and evaluation begins. There is no guarantee that you will have a job until you complete probation.
Between this and the software engineer vs developer article that was on the front page yesterday I really am starting to think if our industry needs to start taking some sort of industry wide recognized professional certificate into consideration. I know IEEE offers some but I've never met anyone who actually has one.
I love how egalitarian software development and engineering is but I think the root of the problem is I as a hiring manager don't trust you can do the things you say you can do. So I'm going to use a test/trail period/white-boarding session to find that out. While making it a little less open an industry wide certificate would at least certify a minimal skill set level for everyone.
I am not sure I understand what you mean exactly. You can't just "switch" fire departments without the "process", at least I am not aware of any. If I wanted to move, I would have to do most, if not all of the "process" over again... complete with no guarantees.
Really? You move from city A to city B and have to go back to fire fighter school?
Admittedly I don't know very many firefighters but the way in for some was to get in a small city, then move to a larger one as they were already in the club so to speak. I don't believe they started at the bottom rung again.
This is ok in an industry where there are far more jobs available than workers. I'd say it's fine in any software hotbed like NYC or SF where there's really no excuse to be unemployed as a software developer unless you are so willingly or incompetent.
Privilege is working both ways here: the developer has their pick of the crop and so does a highly successful and desirable employer.
Edit: I want to point out that I think it's only acceptable in a region where the developers have the market advantage.
In my country, everyone in engineering and programming is hired through a trial period of 4 to 8 months. So what? I'd rather have this being used more often as a real trial and not have to go through the ever humiliating process of totally random interviews lead by unqualified recruiters making decisions with unknown arbitrary criteria.
> I think there is a real issue around diversity in technology (and most other places in life). I tend to think of it as the PLU problem. Folk (including MVPs) tend to connect best with folks most like them ("People Like Us"). In this case, male MVPs pick other men to become MVPs. It's just human nature.
This theory makes intuitive sense, but some evidence contradicts it. Several studies have found that men and women discriminate against women equally, or even that women are harder on other women than men are:
* Nosek, Banaji, and Greenwald (2002) http://projectimplicit.net/nosek/papers/harvesting.GroupDyna... found that in implicit association tests, women show slightly stronger implicit biases towards traditional gender roles in the "Gender-science" and "Gender-career" tests.
This is just what I dug up in an hour of searching; I'd be interested in finding more research on this. Does anyone know of a review paper on this subject?
Some of the "best" are going to have families, and existing jobs. Thus, if this process helps eliminate those candidates, then the basic thesis of "we hire the best" is by definition false. With a more accurate statement being, "we hire the best of those who are willing to jump through our company specific hoops".
And there we go again. 'optional activity'. And people wonder why there are few women in tech and the situation is not improving. The post above is your answer.
Have a family, it's the end of your career, because you engaged in productivity limiting 'optional activities'. Yes, the tech sector IS that toxic.
If you have a family it's more important than your career. If you don't feel your family is more important, you may abandon it or never have one to begin with.
Just because you have a different stack of priorities than another doesn't mean you can blame them for ranking theirs differently than yours.
Analogy is; you wouldn't protest at the Buddhist temple door because you feel that your time availably is less to become a full fledge Buddhist monk because you have a family.
It has nothing to do with women in tech, try and keep on topic please.
I was not uncivil. This kind of belittling of family has to stop. Software development has a major problem hiring women, older people, and minorities. People in the sector belittling things like children and families by using terms like 'lifestyle choices' ARE part of the problem, and the industry has a very serious one. These people need to be called out for the poisonous garbage that they're spouting, and that calling out rarely happens.
The gender gap is not going to get better while these attitudes are accepted. Women avoid tech to a large degree because it is rational to do so. The entire sector is so immersed in brogrammer culture that half the participants aren't even aware of it.
Telling someone "you are part of the problem" is a kind of personal attack. That counts as uncivil. I don't think I misread you, because phrases like "these people" and "need to be called out" are also markers of incivility.
Regardless of how right you are, how wrong someone else is, and how big of a problem the industry has, all commenters on HN need to follow the site guidelines:
https://news.ycombinator.com/newsguidelines.html.
My basis is long experience trying to cajole this forum into not degenerating completely. "Need to be called out" is the kind of thing users say to justify hurling invective at one another, and we ask everybody not to do that on HN.
Users frequently express views similar to yours without violating the site guidelines, so I don't think the moderation question has anything to do with subject matter.
It is utter voodoo.
I came up in the late 80s. Interviews were maybe 2 hours long. You might be handed a piece of paper with a problem to aggregate some information distributed in a few different arrays and print them out. You know, write some for loops and a few logic statements.
Then you talked about the job. This is the job. Do you want to do it? What do you have to bring to us? Do you have a lot of experience and want to lead, or not a lot and want to learn - we'll adjust position and salary.
And you put a team together. Some were great, some were okay, some needed to be let go. In total, all sw people had a job.
Contrast that with today's voodoo, where proxies are weighed more than on the job performance (the only thing that matters).
In the end, you put a team together. Some are great, some are okay, some need to be let go. In total, all sw people have a job.
It's all exactly the same, except the absurdity of interviewing by proxies. It's simple logic - he average of everything is average. Why have we abandoned logic?
So many things matter more than remembering red-black trees from your midterm (I'm 49. I TA'ed a graduate level algorithms class back in the day, but I don't happen to remember it. That's what books are for). Like being able to run a project. Being able to write documentation. Being able to enter a room with a combative and upset client and keep the business. Being able to mentor your colleagues. Taking ownership. Leading by example. Ability to learn. So many things that are not even discussed in the current interview environment.
I've watched companies spin their wheels for months, rejecting perfectly good people, looking for that mythical person with exactly the right, esoteric combination of skills, who, for some unknown reason, wants to stall their career and get hired into a position where they learn nothing because they are expected to know everything already. People that are eager to learn? No, sorry, not rock-star material. All these prior successes mean nothing, no one could possibly learn a technology or new algorithm, right? And, more than once I've had people get downright snide about it. I'm sorry that you misread my resume, contacted me, and I didn't have that absurdly specific combination of skills. My fault, right?
Y'all have lost your minds. :) Which is okay, we're an eccentric bunch, but jeez, let's inject some reason and introspection into it. The faces are different, but the talent is no different than the 70s and 80s. There's zero evidence that any of these interview techniques are reliable. There's tons of evidence that interview techniques are horribly biased in many ways. Just stop.