What Companies Mean by Culture Fit
triplebyte.com
triplebyte.com
I made the first 20-ish hires, then helped out with 20 more. When we eventually got a director and other managers who were peers to me, I held the informal distinction of being able to make good hiring calls. Many of my hires rose quickly in the company, earned strong performance reviews, and even won awards at the company.
Eventually, I become a middle manager and had to teach managers I supervised how to hire in a similar fashion. Relying on me to make a final call wasn't scalable.
And that's when trouble began.
A few bad hires leaked in. For the first time, our group experienced attrition. So I set about to try to systemize my recruiting process such that it was repeatable by others.
That's when I had to codify our team "culture", which was something I used to help with my hiring decisions. There were times when I made a call to hire a candidate who seemed too junior for a role, because I felt there was a strong "culture fit."
Of course, what I realized was, I was simply assessing for typical soft skills, as well as personality traits such as tenacity, initiative, quick study, etc.
In other words, there was no magic. I didn't have some special gift for hiring. It was just a simple unspoken template in my head. And it wasn't exactly "culture" either, as much as it was a set of personality traits that every company looks for.
I suppose what I came up with was basically a "structured culture fit screening assessment", to borrow the article's parlance. If you don't have something like this, I'd highly encourage that you look into it. Not only can it help minimize bias, but it can also give you a repeatable process for all of your company's hiring managers.
Agreed. But should they? I mean if I start a company with no recourse to public funds why should I obliged to employ someone I wouldn't want to work with? I understand why it is illegal. I think the ethics are debatable too. Most importantly, I think both are routinely violated under some guise such as 'culture fit', etc.
Because otherwise certain classes of people will never be able to get certain classes of job, despite being qualified, because the people who hold those jobs are all members of another class who doesn't want to work with them.
For example, at various times both women and African Americans couldn't become doctors. There is no evidence that women or African Americans are worse at being doctors than men or white people, but the people who _were_ doctors (mostly men and mostly white) at those times didn't want to work with them, and culture suggested they were not capable of performing that profession.
Preventing discrimination against protected classes is a balancing act - balancing the infringement on the liberties of a group that systemic discrimination brings vs infringement on the liberties of an individual or single entity by saying they cannot make choices based on certain criteria. The protected classes that exist now (such as gender and race) exist because far more harm is done to far more people when they don't exist, even factoring in the fact that certain people will lose the ability to make certain choices based on all the criteria they'd like to.
https://www.eeoc.gov/laws/statutes/adea.cfm
The Age Discrimination in Employment Act is much narrower than commonly assumed. It only forbids discrimination against workers age 40 or older. It does not forbid ageism for being too young, nor against a 39-year-old for being too old.
More generally: discrimination in employment is legal by default and excepted only by specific prohibitions, which include race and religion and gender but not much more than that. Here are some attributes that are legally perfectly permissible to discriminate either for or against: smoking, obesity, height, glasses, alcohol use, vegetarianism, sports team favoritism.
And I suspect much of that is not conscious, which of course makes it difficult to talk about and address.
That said, I do worry about how my presentation will be perceived elsewhere, it comes time to move on.
I've experienced people figuring out my age when looking at my resume, then weirdly warping the questions while accusing me of Googling the answers in response. (Based only on hearing me type. I was scripting a Python script to give the answer.)
There are a surprising number of candidates & engineers that simply give up when they encounter a hard problem.
But I have told interviews that I don't know, but I'd google it if I needed to in a work situation, and that's always been received positively. I guess it depends on what they're asking about though. Some stuff you should know off the top of your head...
Interesting, because many candidates would (rightly and safely) assume that you're asking if they already know the answer - not if (duh) they could just google it. And accordingly, to respond with "just google it" would mark them as a plodding, uninspired programmer - and definitely cost them points (or even outright sink the interview).
There are a surprising number of candidates & engineers that simply give up when they encounter a hard problem.
It sure is easy (and gratifying) to feel categorically superior to a significant portion of the people who walked in through that door with the idea of landing a job.
But Occam's Razor suggest that, rather than being a bunch of gutless dolts - they were (perhaps as a result of being bludgeoned by one soul-crushing interview experience too many) simply assuming a more conservative acceptance level to your question than you thought they were.
I do not believe that this logic works in all/most/many scenarios. I would not be asking a question in an interview that could "just" be googled. That generally would suggest that I am asking for trivia as opposed to asking for understanding.
They all had been able to get that far in their academic career because they had been able to solve problems, and solve them well and quickly.
When they ran into hard problems in the real world that they couldn't solve, some couldn't handle it well.
He didn't get it. He was sure that her expression changed negatively very slightly once she saw him on the video conference. My friend is quite sure it was due to either ageism or subtle racism. He is not white.
He's moved on but it confirmed to him fair is not a word he believes in anymore.
A candidate who is conflict-adverse, for instance, would not be a "culture fit" in an organization where decisions are made in screaming matches.
The problems come when your culture is toxic, particularly for certain types of people. If older candidates wouldn't be successful or happy in your work-20-hours-a-day-know-it-all culture, that's a culture problem, not a dog-whistle for ageism.
Some interviewers use "culture fit" to explain a not-like-me discrimination against people with a different gender, background, age, race, etc. Those people are generally toxic—but also indicative of an organizational culture that tolerates those biases by employees who are external-facing representatives of that company.
As a candidate, if you're ever rejected as a "bad culture fit", you probably dodged a bullet. That's a negative reflection on the company, not on you.
"A single toxic employee who is a bad fit for the existing culture can tank the morale and productivity of an entire team. "
So, is there really more to "culture fit" than the No Asshole Rule (1)? If not, can we start calling it what it is: "asshole rejection screening". Then maybe we can use the word "culture fit" less (maybe even "culture" less), because requiring new employees to "fit a culture" is pretty lacking in concrete justification.
Yes it is bad to build next Enron or Theranos. And yes they will cross bounds of federally protected class, because in asshole culture people need to take advantage of others as much as possible - it is not optional. Taking advantage of protected class is easier then of other groups (in general) so they will.
If we are talking about asshole who are only arrogant or rude, then it matters only when you are loosing customers or cant hire and keep employes due to that (I have seen that happen).
Also, dog lovers I know in real life are not assholes to people with allergies or fears. My experience is that most accept allergies as real medical issues and would seek solution.
I also think that you are using the word asshole to liberally as in meaning "anyone who annoyed me mildly". That is not how "asshole" or "asshole culture" terms are normally used. Why being unpleasant is part of being asshole typically, it is not the whole thing. Typically, there are very real negative externalities on top of just being unpleasant (for example other people wasting time dealing with asshole temper tamptrums, people no voicing objections due to them or having to tip toe around him or spending a lot of effort to work around that person peculiarities etc).
- narcissistic
- more interested in asserting dominance over other employees than advancing the good of the project
- likely to divert the project to advance some personal goals
- constantly generates interpersonal conflict
then yes, you aren't getting as much as you should out of your engineering organization.
On the other hand, someone who is willing to "divert the project to advance some personal goals" all too often, will be very likable and sociable and not considered an asshole. There was a phrase at a company I used to work at "he doesn't need the project to succeed, he just needs it to not fail", and there were a lot of people who would drag a project on long enough to move up; really pleasant, friendly people... who didn't care who got hurt once they moved on to the next project.
In my experience, that is rather uncommon. You may be ignored after saying that or not believed, but you get rarely labeled asshole for that alone. Frankly, in my experience, this is stereotype that people who are have hard time expressing themselves constructively and have trouble controlling anger after not getting their way like to throw around so that they sound better.
> On the other hand, someone who is willing to "divert the project to advance some personal goals" all too often, will be very likable and sociable and not considered an asshole. There was a phrase at a company I used to work at "he doesn't need the project to succeed, he just needs it to not fail", and there were a lot of people who would drag a project on long enough to move up; really pleasant, friendly people... who didn't care who got hurt once they moved on to the next project.
Bad management, run away as fast as you can.
Different groups have different needs, but some of what groups call "need" is actually dysfunction.
Despite the vagueness of it, "culture fit" is making sure that you won't be considered an asshole by the existing team.
Foreign middle aged man who can't speak the language very good in an environment where native language is important - not a good culture fit.
Female 25 year old in a group of 50 year old men who mostly wants to relax at work and are a bit awkward around young women - bad culture fit.
Very outspoken social person who enjoys partying in the middle of senior bank personalities who are extremely detail oriented and introverted - bad culture fit.
Just saying there is a lot of bad culture fits. It can be age, gender, race, personality and even appearance. Bad culture fit is everywhere. It's just not something we talk about very openly because it's not socially accepted. So we hide it under other reasons.
Really? I'm almost 50 and I'm in an office with a bunch of 20-somethings who like to yo-yo. Music is only on headphones, though.
Female 25 year old in a group of 50 year old men who mostly wants to relax at work and are a bit awkward around young women - bad culture fit.
That's very dependent on the particular people involved. I've been in plenty of contexts where 40 and 50-something men could relax with a 25 year old woman. (Traditional music.) In times past, such a circumstance was pretty normal. People have ways of creating temporary spaces, both exclusive and inclusive. Letting this happen in ways that are positive is how larger gatherings and groups of people are supposed to work. It's where we've mucked about with that, albeit sometimes with the best intentions, where dysfunctions have crept in.
But I'm certain the first and third example you've given aren't just "not socially accepted," they're actually illegal in the United States and many other places. The second one is questionable but may also be illegal, depending on whether the issue is actually English competency or just "he's foreign."
Only the fourth one, which is based on the person's behavior but not their membership in a protected class, is anything like what "culture fit" can or should legally be used for.
I agree with you that this kind of discrimination-by-another-name is status quo, but are you okay with it? If no, what do we do about it? If yes... why should I be?
It's not openly talked about because it's illegal. The next time a 50yo applies inform him that you're looking for someone under 40 and if you're lucky he'll hire a nice lawyer to explain it to you.
during interview
Boss: "so do you think you can fit in this culture?"
Me: "You mean, do I wear skinny jeans and drink kale smoothies? Probably not, but if you want your work done, does culture fit matter when you have a mile long back log?"
Boss: "good point, so... How does your schedule look for next week?"
it was all history from there.
Another big, obvious manifestation of this is open-plan offices.
“Does working in a noisy, open space that doesn’t actually save significant money relative to engineer salaries and lost productivity matter when you have a mile long back log?”
Yes, as it turns out, displaying the optics of looking visually like a hip start-up stereotype does matter more than the mile long back log.
On one team I worked in, we hired an older coder with bad knees and a couple of kids at home. Everyone in the team got along with him and generally liked him and he got his work done without too much fuss. But it was obvious that he didn't fit in with everyone else. We'd all hang out with each other socially (bars, clubs, weekend activities) and he opted out of those activities entirely and went home to his family every day at 5pm. And we saw other teams doing all these cool team activities (canyoneering, zip-lining, ski trips, etc) while we were limited to activities that were less physical and involved less alcohol. Over time, almost everyone in the team looked for opportunities to transfer to other teams (and sometimes companies) that looked like they were having more fun. Eventually, the team's output suffered as turnover increased, until eventually, he ended up leaving. The net effect was hugely disruptive to the company.
I can absolutely appreciate the argument that these culture fit tests become a way to discriminate against minorities, genders and people of a different age...and that's absolutely wrong. But we also need to accept that employees don't view work as a 9-5 working sentence that's completely separate from their life outside of work. To the extent that employees want work to be part of their overall lives, you need to hire a cohesive group. It's a hard problem to solve simply because humans are social animals, there's no universally correct answer and so much of our psychology isn't well understood by so many of us.
I guess what I'm saying is that many employees want their work to have a social component and will seek out employment that gives them that. So companies that don't include a culture fit criteria can risk alienating those employees. One would hope that a large enough company can use cultural fit as a sorting criteria more so than a filtering criteria. But the narrative that prevails here...cultural fit is just a code word for discrimination...feels too naive and lacking nuance. Human social interaction is complex and seeking to view workers as interchangeable cogs based on their capabilities to do work is much too simplistic. Which is not to say that cultural fit isn't an excuse to discriminate, which it often is. I'm only trying to point out that it's a really complex issue that has no universally correct side or answer. It's almost always situational and there's no blanket policy or rule that you can apply to address the issue. Trying to force companies to be culture-fit-blind causes its own set of problems.
And I say all this as a 40s coder, so I'm sure I'd miss out on a number of positions based on cultural fit.
On a practical basis, more “all hands” (aka mandofun) events do need to be inclusive. In normal companies at least. This is usually considered alongside basic personnel stuff like catering for allergies and dietary preferences at shared meals.
In my experience most organisations don’t have huge problems with this although the mandatory fun often isn’t.
I also believe that major company/team decisions probably shouldn’t be made at bars but I get that not all companies are for everyone.
Sounds like it was mandatory.
>And that person was excluded from work-related conversations that happened at after-work bar trips, which caused some awkwardness when the rest of the team aligned behind a significant decision and the excluded team member felt like he wasn't consulted.
If not going creates a problem, it's mandatory, period.
Additionally, arranging your work discussions and decisions around alcohol consumption can absolutely be considered religions discrimination as many people don't consume alcohol for religious reasons and you certainly don't have any business justification for it. Also discrimination on pregnancy status.
I'm sorry but "some employees desire youth-oriented forced 'socialization' after work hours" is not a justification for breaking the law, it just isn't.
What a bizarre claim. Your parent poster explicitly said they tried to organize group activities where everyone - including the old man with bad knees - could participate. Knowing this, it's safe to assume they didn't have pregnant employees (if they chose alcohol related activities while striving to include everyone).
> If not going creates a problem, it's mandatory, period.
Again, such a weird position to take. So, in your opinion, no after work events should ever take place unless every single employee is present at all times and during all discussions? After all, that's what you were referring to with that "problem": a worker who is not present at an after-work discussion, leading to a slightly awkward situation the next monday.
No disabled people nor pregnant women either then? This company is practically begging to be sued into oblivion.
Feel free to hang out with your friends at bars, but don’t make them mandatory for work. This principle is not complicated.
Woe unto your career if you ever try to start a family, or get injured ziplining, or develop liver disease, or anything else that would keep you out of the good graces of mandatory-after-hours group events.
To me that sounds like the team was pretty immature and ended up failing the team.
You can still do all of those things and work with people who don't.
https://www.eeoc.gov/laws/practices/inquiries_marital_status...
You're advocating age discrimination. Don't do it.
You know, the actual work you have your people do (along with the monetary compensation, and of course the extent to which they're pleasant to work with, you know, while at work) really (really) ought to be sufficient motivation to show up in the morning and get stuff done, over the longer haul.
By the same token -- if you feel you not only absolutely need extracurricular activities (let lone that your people need to "all hang out with each other socially" at odd hours of the day and night) to hold the team together... but feel the need to point to a deficit in this area as the primary reason why your team does not succeed... then you're definitely missing this bigger picture.
Eventually, the team's output suffered as turnover increased, until eventually, he ended up leaving. The net effect was hugely disruptive to the company.
Indeed. It sounds like you lost a good employee (and many others like him that he could have potentially recruited into your company) for the sake of the (perceived) benefits of maintaining a certain monoculture -- predicated in turn on a certain stereotype of fun and "energetic" younger employees. And how wonderful everything can be when you only hire people who fit that particular mold.
Work is for work, right?
If you create a "work culture" that defacto excludes protected class(es) (intentionally or not) without a legitimate business justification, you're breaking the law in the US. Sounds like this is what is happening, in this case the protected classes are age > 40 and disability status. You should take a break from the "canyoneering" and work on compliance.
It's also just bad business to limit yourself to hiring such a small subset of the population - people who are young, single, and bored enough to spend all their free time doing company activities.
The thing to be mindful of, especially when you're in your twenties, is those things you love about your work environment today, you may not like when you're in your thirties, forties, etc. I remember vividly and fondly of partying with work friends until the bars closed every weekend (and weekdays, too), going zip-lining, playing games together, and so on. I wouldn't trade those memories for anything, but I also would never want to relive that again.
My point is, have fun, enjoy your youth, and make some good memories. But don't discriminate against others who just want to be professionals and do their job. One day it's very likely you will feel the same as they do...
"Among the 300 companies I spoke to, only 20% told me they engaged in screening for specific traits beyond soft skills."
Not convinced self disclosure is the best way to determine what they actually screen for.
Then they proceed to ask candidates to derive a card shuffling algorithm on a whiteboard in 30 minutes and fail them from the interview if the running time complexity would be too high or if they can’t mathematically prove the result would be a uniform draw from the space of permutations of the cards.
Whatever story they tell you, it’s not about whether they are lying or not, it’s about the extreme myopia in tech where these people actually believe they are sleuthing out the inner talents and dispositions of candidates when they are obviously doing nothing but berating candidates with parochial, uninformative trivia.
I may be wrong, but it sounds like you're using hyperbole in two ways here: (a) you make a statement about all the senior engineers you know, and (b) that statement makes a rather extreme claim about how they evaluate candidates.
I think using hyperbole is a mistake in this conversation because we're interested specifically in how common and how intense these phenomena are.
(I don't mean to single you out. This thought has also occurred to me when reading other online discussions lately.)
I can’t be certain that the same would have applied to all senior engineers in other companies where I previously worked. But I did interact with dozens of other senior engineers over the years and it’s a remarkably constant phenomenon.
It’s not surprising either. We all like to tell ourselves stories about how we embody the best ideals that a broader community espouses, even when the reality of our day to day behavior is different.
That is why I chose the term myopia. I think it’s a symptom of the tech world wishing to be associated with generally progressive human values, but that where the rubber meets the road, the implied values of tech orgs are no better or no more exemplary of positive human values than any other field of business.
That sometimes starts with a smaller community that takes such ideals seriously. It almost always ends with a much larger group that spouts those ideals but acts differently.
the implied values of tech orgs are no better or no more exemplary of positive human values than any other field of business
It's long been said that the practice of "Software Engineering" is more a technology heavy application of business and less like engineering.
> I think it’s a symptom of the tech world wishing to be associated with generally progressive human values
I'm having trouble parsing this part of your statement, but let me say that I think it is more a function of the personality types that get into software development and technology more broadly. Many of us are INTJ types (self included and yes I know that Myers-Briggs is bunk to many of you), and many of us have what was formerly called Aspbergers. In short, there are particular personality types that go into these fields, and those personality types fixate on details. So it isn't surprising that's how many then interview and expect their fellow team members to exhibit similar traits. Without going too far off tangent, I think this is often why this field is seen as combative towards women and non-white people, IE: it has less to do with a deliberate desire to exclude and more to do with the quirks of the people who enter this field.
For a company that runs an online game server, let's say, this really isn't that high a bar.
I know off the top of my head that there's some edge case that can keep you from getting an even distribution, but otherwise 1st year probability and 1st year algorithms knowledge should be enough for that. The proof is a slow-ball and the algorithmic complexity is a slow-ball in your example.
it’s about the extreme myopia in tech where these people actually believe they are sleuthing out the inner talents and dispositions of candidates when they are obviously doing nothing but berating candidates with parochial, uninformative trivia.
Or, it could be about weeding out students who got by with nothing more than gluing libraries together and really only thought of degree work as a formality while they were busy networking.
The stuff you use all the time in your job is largely arbitrary trivia. However, the knowledge referred to in the example given above are first principles. So your standards fall below the level of being able to apply first principles? I can see why people would want to weed people like that out.
Because complexity analysis is a tiny part of a CS degree. A huge wing of our CS grad department focused on type theory and PL in general and could easily screw up a complexity analysis quiz like that because it's irrelevant to their day-to-day research/work.
Yes, but it's a slow-ball pitch! What's the complexity of filling in an array with its indices? If a CS grad can't solve something just a little more complex than that (for a sloppy/easy version of the question, not the shuffling algorithm expert version) then just what the heck are they learning?
I know this wasn't your point, but I would argue that college is a pretty bad investment in terms of a job training program.
If the confluence of 2 or 3 requests you were implementing were to cause a nasty O(n^2) or O(n^3) time or space workload, would you have a good chance of realizing it? If your answer is yes, then you'd have what I'd be looking for. If your answer is that you'd figure it out after the fact, after the problem reports came, by Googling, then you would cause a problem and require an additional spate of diagnosing and patching that a better trained programmer would not have.
Unless you have a super targeted problem space that interviewing employees know about, then you are doing about as well as drawing a random problem from a hat.
Most developers I know just brush on as many algorithms as they can remember when they are going to interview for a new job. Then they just go through interviews until they find a company that manages to pick an algorithm out of the ones they memorized. This is a giant waste of effort to create a system that is effectively a lottery if you can get past the, admittedly large, bump of being able to understand any comp sci algorithms
A programmer worth his salt should retain enough 1st principles knowledge to not create a O(n^3) bottleneck in production or otherwise stay out of trouble.
Unless you have a super targeted problem space that interviewing employees know about
Often the specific skills are mentioned up front. It doesn't have to be that targeted, either.
Most developers I know just brush on as many algorithms as they can remember when they are going to interview for a new job. Then they just go through interviews until they find a company that manages to pick an algorithm out of the ones they memorized.
This speaks more to bad interviewing. It certainly does not mean that such knowledge being worthless and arbitrary. What you want in a candidate, generally speaking, is someone who can actually apply knowledge. What you are describing above is just regurgitation.
When I was a grad student TA, I told people not to cheat. If you don't know enough to answer the questions, you don't have enough knowledge to cheat. That turned out to be quite true.
My office scores the people with the brute force solution higher than the others, so long as they know the time/space complexity.
they practice the soft skills necessary to prevent the interview from ever getting to the point where you're asking questions about where the implementation can go wrong that aren't also on their script
Oh yeah. That sounds familiar. Not getting to the part where they can answer questions about where the implementation can go wrong counts against them.
The majority of development work does not have you working through every comp sci algorithm in existence on a frequent enough schedule that the average engineer, or even a great engineer, will remember them all. That is going to garuntees that interviews are a game of chance. The more algorithms and the trick question associated with them that you can memorize the greater your odds, but it's still down to luck of the draw for what questions you are asked.
If you're looking for devs to show that they understand the ideas, you'd be better off telling them the problem space ahead of time so that they can prepare for it, and then deeply questioning their knowledge in that space
It seems to me that a lot of younger folks want to lower the bar below that.
If you're looking for devs to show that they understand the ideas, you'd be better off telling them the problem space ahead of time so that they can prepare for it, and then deeply questioning their knowledge in that space
Perhaps combine that with a related but novel question.
Both of these routes put more risk on employers so they'd rather filter out the majority of people based on an inaccurate test, then throw their hands up and say there are no developers.
The whole country has at will employment and companies certainly aren't voluntarily signing any employment contract. Just fire someone if they turn out to be incompetent/fraud.
Most candidates we interview have a combination of CS degrees, statistics degrees or experience, and are prepped ahead of time with some materials about the general type of question we might ask, and around 90% of them are rejected for failing to solve this question. Around 50% are given extremely poor ratings, like not even getting any type of coherent solution, even inefficient and not handling corner cases.
This is what I mean about myopia.
30 minutes is barely enough time for anyone to sketch a solution to any algorithmic problem, even if they are experienced and fully comfortable with the question’s subject matter.
This process just filters out candidates who are perfectly capable of solving the problem as a form of severe risk aversion against possibly hiring someone who lacks sufficient technical skills.
Sure. We used to give an hour, and HR reduced it to 45 minutes. I'd rather have more time. Also, you can dial up the stringency of this particular question to an expert level where hours could be used. Or, as you admit below, it can be dialed down considerably.
Around 50% are given extremely poor ratings, like not even getting any type of coherent solution, even inefficient and not handling corner cases.
You could also dial it back to where you accept a coherent, inefficient solution that at least shows an awareness of corner cases.
This process just filters out candidates who are perfectly capable of solving the problem as a form of severe risk aversion against possibly hiring someone who lacks sufficient technical skills.
So "myopia" in your view is the delusion that such a practice is anything more than that? There are plenty of people in our industry who know that's what it's really for and who know how bad whiteboard interviews are at this task. That doesn't mean the goal is worthless. It seems that many want the goalposts lowered, such that actually understanding anything isn't required anymore.
We know the test is bad and that something better should be developed. What I'm arguing against is lowering the standards and getting rid of the test altogether.
Things are truly understood in solitude not with a gun to your head.
Also, what a developer knows this second has less bearing on what they could learn than often thought. No one knows everything.
You should at least know the basics and be able to apply them. I'm rather shocked by the number of 3.75, 4.0 students from good schools who can spout 1st principles, then utterly fail at applying them.
I'd actually expect a surprisingly large fraction of programmers to be able to do reasonably OK on that particular problem--and I don't mean just those with CS degrees. I'm including the ones that are entirely self taught. In fact, especially those.
That's because so many of us, even those with CS degrees or other common degrees that programmers get instead of CS [1], started out trying to write games or other things that needed to shuffle, were sure that the obvious approach we took was right, and then found out it wasn't and why. It was our first personal encounter with the idea that you can analyze and reason about algorithms and their correctness.
In other words, shuffling was one of the first algorithmic "aha!" moments for many of us, and you don't really forget those.
[1] Mine is math, not CS, for example. Partly that's because when I got my degree, in the early '80s at Caltech, Caltech did not have an undergraduate CS degree. The CS department only offered graduate degrees. They had all the necessary undergraduate coursework available--they just had not yet put together a formal degree program.
Granted, the interview question is pretty bad if it's just a test of if you've seen the problem already.
Here's the algorithm, in pseudo code (yes, with 1-based arrays!):
let a = [1, 2, 3, ...., N] # the items to shuffle
for i = 1 to N
j = random_in(1, N)
swap(a[i], a[j])
Imagine that random_in() makes a log of all its return values. In this program every time it is called it returns an integer >= 1 and <= N. It is called N times. Thus, the log consists of N integers with N possible values for each integer. In what follows we shall call such a log a trace of the program (because log could be confused for logarithm). (Trace has a meaning in linear algebra, but that should not cause a problem here).That means that there are N^N distinct possible traces. Each of these traces is equally likely. We can associate with each of the traces a shuffle, namely the shuffle that results from the run of the program that produced that trace.
This gives us a list of N^N shuffles. This list will contain duplicates, because there are only N! distinct shuffles, and N! < N^N.
The shuffle is fair if and only if each possible shuffle occurs the same number of times in the list of N^N shuffles. For it to be even possible for that to happen, we must have N! divides N^N.
But if N > 2, that cannot happen. To show this note that if N! divides N^N, then every divisor of N! must divide N^N. Pick a prime P such that (1) p < N and (2) P does not divide N. Then p is a divisor of N! but is not a divisor of N^N, which shows that N! does not divide N^N, and so the shuffle is not fair.
Can we really always pick such a prime? Yes. If N is divisible by every prime p < N, then N-1 must be prime, but then N-1 is a prime < N that does not divide N.
Note that you cannot save this class of algorithm by doing more passes. Those just change the size of the trace from N^N to N^(kN) for some integer N. Nor can you save it by changing it to pick both indices at random for the swap instead of picking only one at random. That just changes N^N to (N^2)^N = N^(2N). As long as the random number generator is always asked for a number in {1, 2, ..., N} and it is called the same number of times every time the program is run, the trace size is going to be a power of N, and cannot be divide evenly by N!
Now we can see why Fisher-Yates might work. It asks for a random number up to N the first iteration, up to N-1 the second iteration, and so on. That means its trace is N! long. There is no problem dividing N! by N!. Since N!/N! = 1, if we can show that each shuffle is included, that will also show that each is included the same number of times, and hence that Fisher-Yates is fair.
All we have to do now to see that Fisher-Yates is fair is show that each shuffle can be produced by it. Given a desired shuffle, it is easy to construct the trace that results in it, and we are done.
We don't actually need a prime. We just need something that divides N! but does not divide N. N-1 will do nicely.
All we have to do now to see that Fisher-Yates is fair is show that each shuffle can be produced by it. Given a desired shuffle, it is easy to construct the trace that results in it, and we are done.
You mean: Given a desired shuffle, you show you can construct the only trace that results in it.
The behaviour isn't socially desirable, has potentially serious consequences for disclosure ("The Triplebyte people won't work with us because I told them my interview process begins by throwing out all resumes with funny sounding names."), and assumes that the people involved are aware of their behaviour.
For example, a stable team needs both extroverts and introverts, the ratio is not exactly fixed. Yet matching an extrovert to dominantly extroverted team may not be the best choice. How much one can tell at the first impression? Are we back to the era of personality tests at the interview?
Especially in technology, where it's a seller's market for labor I don't think a lot of companies are actually screening on this criterion. Do they think you are smart and can do the work? Then companies are going to want to hire you with the possible exception of if they think you are a huge asshole or complete weirdo.
I don't think anyone cares all that much beyond that.
"Culture fit" is the justification for who they see as problematic, starting a bit short of being a "huge asshole or complete weirdo."
I don't think anyone cares all that much beyond that.
We know that such companies can be suffused with groupthink, to the point of mass hysteria and virulent hate. It's documented in public at this point.
It's shorthand for "I think they could probably do the work, but I don't think that I/we could actually stand working with this particular candidate".
Are you a sports loving bro? I don't care.
Are you an arty hipster? I don't care.
Are you a birkenstock wearing vegan nature lover? I don't care.
Do you yell at people when you get upset over minor disagreements? Well that's gonna be a problem....
Agreed, but in my experience, "don't think we could stand working with this candidate" is much more than talking about assholes/weirdos. It's also the catch-all for things like "our team likes to go out to bars and clubs all the time, and you don't seem like you enjoy going out", or "we tell raunchy jokes at work and you seem like you would be offended by it and make us stop", or even "you seem like you're on the opposite side of the political spectrum than we are so we think we wouldn't want to work with you".
Hell, I've even seen teams at a consulting company (and seen HR defend such teams) reject candidates for being vegetarian, because the team thinks that there wouldn't be "culture fit" since the team likes going out for burgers and steak every week.
I once had in interviewer ask me what I thought about going to football games as team building events (this was not a job that had anything to do with sports). I knew where that job opportunity was going...
WeWork has banned meat from their meals - you can't even submit an invoice for a meal containing meat. This is not so obvious discrimination for the 'type of person' they want at the company; 'Veganism' is pretty strongly correlated with a bunch of values, including political.
'Cultural fit' is a very slippery slope and though I guess WeWork has the right to make such assertions ... I think it's unfair and wrong. I could easily live with that kind of rule, but I just wouldn't want to work for a company that had such a rule.
* Diversity of thought and multidisciplinary approach to problem solving * How you view teams, how you would organize a team you were going to be part of, what makes a good team * How you handle failure, defeat, and disappointment * How you handle difficult people and situations * Your communication style, especially for bad news * How you convince others to change * Your view on work life balance * Your attitude towards management and leadership styles * Your appetite for risk and entrepreneurship * Your dispute resolution tactics
There may be others... In any case you can address most of these for senior hires with simple SBO questioning.
For juniors you're probably best off just focusing on communication skills, working in teams, and challenging situations or failures.
But I think being a good culture fit is a bit more than that.
They should be expected to have an opinion and allowed to express it. If you don't want any of your ideas challenged ever, then don't waste your money hiring a person with a brain. And if you hire someone with 10 years of experience, hopefully you can appreciate that they've learned something in that time that give them a perspective you want to hear.
But, of course, after they've respectfully disagreed, they should also be ready to set aside their opinion and go along with whatever was decided. That comes with the professional part of smart and professional.
The ACM Code of Ethics has no teeth, meaning CS isn't a profession; and even if the decision in question is so thoroughly self-destructive that the company goes under, there's plenty more companies to work-for in that case.
Just letting your boss or colleague do whatever he/she wants is a terrible idea. Be polite, reasonable, and willing to accept defeat, even when you're in the right; but don't be a yes man. And for what reason? The authority isn't your's? Authority shouldn't be blindly followed. Authority means you make a final decision when consensus isn't reachable, not that you're beyond reproach.
I have no clue where you're coming from with that last statement. Because a code of ethics "with teeth" doesn't exist, we shouldn't adhere to one? That we have no responsibility to look after the best interests of the company, shareholders, and community? Everyone bears that responsibility. You're claiming CS isn't a profession, because there doesn't exist a board, bar, or licenses? It's just an unregulated profession.
"I shouldn't do X" logically follows from the conjunction of "I needn't do X" and "doing X has a lesser expected-value than not doing X".
> Everyone bears that responsibility. You're claiming CS isn't a profession, because there doesn't exist a board, bar, or licenses? It's just an unregulated profession.
An unregulated profession is no profession at all. That kind of holistic, broad-minded responsibility is levied nigh-solely by professional regulation and decision-authority.
(I say "nigh" only because there's probably some extraordinary and ridiculous circumstance that doesn't come to mind right now.)
As for why you shouldn't be a yes-man. I am an individual, I'm educated, skilled, and have two decades of experience and what I consider to be generally good judgement. I always attempt to give of my best and to do what is right for the best interest of the project and company/organisation. If that means pointing out facts which are wrong, ill-considered or counter to any prevailing group-think, I would do so every time. It might not always make me popular, and it might ruffle a few feathers, but to ignore problems and evade responsibility by silently going with the dictates of those above me or in the group would be a disservice to the project, the wider organisation and to myself. I refuse to be a spineless jellyfish merely to make life slightly easier for myself in the short term. I'd rather go home each day satisfied that I did the best I could despite the circumstances, than leave knowing I did mediocre or downright awful work when I could have done better.
Maybe I wouldn't be a good cultural fit in some places. But everyone in an organisation bears some level of individual responsibility, and I personally would prefer to work with people who can shoulder it, and show they care about their work by arguing their case well, rather than abrogating it and showing that they don't really care at all about what they do so long as they get paid. In my experience the output of the latter is typically mediocre at best, because they don't give a damn.
IMHO dont be afraid to take it with a grain of salt. don't expect to be rewarded for saying no. don't expect a light feather ruffling. don't expect light consequences. be prepared to get fired. be prepared to get demoted. be prepared to lose your health insurance. be prepared to change your industry. be prepared for the realities that most people face.
if you say no to something that really is important, then there will, the vast majority of the time, be major consequences. dont expect it to be easy. dont expect a reward. dont expect anyone to even understand or care why you are doing it. dont expect to be respected. dont expect anything. be prepared.
when you are living in poverty or are homeless, that no wont really mean much. only say no when you have the ground to stand on that can catch you when the inevitable smack in the face comes.
and dont feel ashamed if you have to say yes to survive once in a while. its actually what most people do. every day. even people you respect as heroes. sometimes especially the people you respect as heroes. when a really big no comes, there will be many people chanting it together, and many others behind them silently backing them up, all of whom had to say yes, in ways large and small, at some time or another, in the past, just to survive long enough to be together in that space, building that critical mass, and supporting each other.
Do you have a job where you simply do as you are told, like a private being shouted at by a drill sergeant, or do you have a career where your expertise and contributions have some significant value?
Work is full of compromises. No matter how hard you try, at some point you're going to end up giving advice or information to people which runs counter to what they would have preferred to hear. "No" is rather absolute. What would be more typical is suggesting that a course of action might be unwise, and suggesting possible alternatives along with the tradeoffs for each approach, i.e. criticise but in a constructive way. And let others decide which pros and cons are most important. You bring specific expertise and insight, and provide that to the group and decision makers, along with qualified recommendations, maybe very strong recommendations if the situation warranted it. Your recommendations and advice might well be ignored, but it's still important to make them in the first place so that they are at least known and considered.
You don't just live your life to satisfy your boss. You also have to live with yourself. Sometimes, for example, companies make very short-term decisions at the expense of their own longer-term viability and at the expense of their existing customers. Who internally acts as the voice of those customers and the future company if not you? If you didn't at least raise questionable design tradeoffs so that the consequences were well understood and informed decisions could be made, you are doing your employer a disservice (in my opinion). It doesn't matter what the ultimate decision is, but that you act professionally and provide all the necessary information for others to work with. If you get fired for trying to do your best for the company, you're well out of a bad company.
In a previous position (well over a decade ago, for a company which no longer exists), I was asked by my boss to do something which was both unethical and possibly illegal. Loyalty to your company and wanting to keep your job is one thing, but we all have lines we are unwilling to cross, and this crossed one of mine. I considered my position, and refused to have anything to do with it; I did not want to be remotely associated or culpable to any degree. In the meantime, I considered my future, and decided that I couldn't in good conscience continue to work for the company. I made my plans for the future, secured them, and I handed in my notice a short number of weeks later.
We all have a duty and personal choice to conduct ourselves ethically, even if that means taking it on the chin and finding another job. To ignore it is to implicitly condone it and the increase of suffering and evil in the world as a consequence. I do wonder how the subset of the employees of Uber, Facebook, Google etc. who are knowingly engaged in unethical and/or illegal work justify it to themselves.
Any newcomer brings a potential challenge to status quo. The 'culture' is in fact may be quite the opposite to the proclaimed values. This may not be visible(any longer) to those that 'fit', yet may be quite apparent to someone new. Hiring manager may not even realize what 'culture' has been fostered.
Team dynamics is a tricky thing. I doubt that any team would scout on purpose for assholes, yet many stable teams may keep one/some. Same at the other end. As long as the rotation is not high, the mix is the 'culture'.
That's why 'culture fit' is often invoked as a guise for something else short of discriminating answer.
Can't work out if sarcasm or not but I have no problem being told no by my employees IF they explain why not?
/gotcha
Obviously all of these are just mental abstractions, but I contend that one is easier to think about as someone who cares about diversity.
That said, there is some value in sharing some important core principles.
However, to me either someone can execute their responsibilities, or they can’t—but it’s dufficult to infer that from a pre-work interview.
As it is non conforming cultural fit might be someone who doesn’t drink like a fish, or someone who needs to take care of family obligations after working hours, for example.
(Then, I suppose, there's the further question of whether it's even possible to add to a culture that doesn't want to be added to.)
Any place that could be deemed a "brotopia" is likely bad at building positive culture--I know I wouldn't want to work there. But still, different people will have different effects, some of them being net positive and others net negative. And what counts as positive or negative will vary a bit from org to org. If you can call culture fit a "culture addition", a lack of culture fit may be a case of "culture subtraction".
You do add to a team of programmers by adding a marketing person, salesperson, technical support or test person.
I kind of think of this in the context of material properties and teams having their own stiffness and strength. The higher the strength, the harder it is for imposed forces (i.e. challenging new perspectives and personalities) to cause team failure. The higher the stiffness, the more resistant to changing form under imposed forces. I assume high strength is universally preferred, but stiffness is a little more complicated; a high stiffness team ensures consistency but is difficult to alter and improve upon, whereas low stiffness enhances your ability to reshape and broaden team culture but also leaves it more sensitive to changes.
For a company built on the sharing/renting economy, that's... ironic.
I don't think I've ever been part of a conversation about "cultural fit" that wasn't swimming in bullshit, or at least wading in it.
Either that or "I don't want us to hire them, but I can't say why because it would be against the law." "Culture fit" has mostly become a loophole for anti-discrimination laws.
Is this just gut feel, or based on actual data? Because it sounds contrary to the survey results described in the article.
This is generally a problem with discrimination cases, it is extremely rare to find a real "smoking gun", usually it's just the end result that looks abnormal
The survey itself was all qualitative, self-reported data. People aren't typically aware of their own racial, gender, etc. biases, so one wouldn't expect to see that being something they up and volunteer in their responses even if it is a factor in how their "culture fit" screen works out in practice.
You don't need "culture fit" as an excuse to not hire someone you don't want to. If a hiring manager has an illegal bias, there are plenty of ways to avoid hiring a particular candidate.
I've found in interviews that some people expect to do exactly what their credentials have prepared them for. At least for the places I've worked, that's insufficient for programming and other tech.
"I like to work on a team with strictly defined roles."
"I like to know exactly what I'm working on from day to day."
"I prefer to have my worked planned out weeks/months/years in advance."
All three valid, but not necessarily great for a startup.
I'd prefer to work for the most enterprisey company that ever enterprised. I'm pretty happy at the B2B telecom where I work now, even.
(And, yes, I'm agreeing with you and providing a data point in your favor.)
Hiring for a startup : "They seem like more of a big-company type"
Hiring for a big company: "They seem like more of a startup type"
It's not really company specific.
IME this is also how you have the most fun at work, provided that the "extra" tasks you take on aren't particularly unpleasant.
Basically, a situation when the areas are guarded (via seniority, permissions, available info), yet the performance or interest is no longer there. This way the responsibilities are fuzzy on purpose. "A team-player doesn't say No... - if not you, then who?!"
Ideally, a collaboraive team should not restrict the information flow, yet that's how the hierarchy works. The Boss knows, the minions infer.
If you have a toxic manager asking these questions, you get employees who will work long hours to fix bad planning decisions. If that manager makes the wrong call, they get an employee who refuses to week over 45 hours a week and they are usually let go so other people don't get the same idea.
In almost every case, they've ended up later either demonstrating some unprofessional behavior, like having an abusive temper, or been revealed to be incompetent in some aspect of the job. And yet, I still wouldn't feel comfortable turning somebody down purely based on a gut feeling. It's made me pretty uncomfortable about participating in hiring process at all.
For me more important than hiring the right people is how to retain the good ones and prevent assholes to prevail and destroy the nice atmosphere at work.
Prevention is nothing if you don't act when the problem occurs. And eventually it will.
I can't believe that companies like Amazon or Google with > 100000 employees only hire great people culturally fit. We are animals, and when put together there is always someone that wants to prevail. And there is always the culturally unfit that somehow sneaks in. The difference is how you tackle that. I have seen and been in companies where the action was literally doing nothing. You have to change to behave in a different way towards the asshole, in order to make your life easier. That's the answer. Lots of "Let's hire for good fit", but no "how to deal with aholes at work that disrupt your work environment".
Ps. People should read the "no as*hole rule" book. A first good resource on how to deal with such people.
Trouble I have seen is that companies don't talk about those two things because they truly are the value proposition of the firm. Often this is not precisely clear.
The real strategy of a company is necessarily hidden, but the direction it yields is something people can align to, knowingly or more often, not.
Is the strategy to get acquired for IP or because they were positioned to execute in a growth market, or maybe to create or dominate a market? These are radically different, but you can tell by looking at a cap table and an office what their plan is.
Do they need people to not ask questions, or do they need compelling visionaries? Maybe they need people to keep the ball in the air, engineers to optimize and scale big ideas, or new blood in an ossified institution. Those strategic outcomes define culture.
When I hear people say, "culture eats strategy for breakfast," I always think, "yeah, without strategy, culture starves." As you can tell I'm a real hit at off sites.
Because it's illegal?
I've yet to not hire someone under this. (Though I have one person who I would not hire today, but I still do not know how I would have screened for them in the interview.)
Seems like I'm the only one, though. The rest of the comments seem to indicate looking for something deeper.
If everyone acts professional then chances are you'll figure out how to work together. If you're unable to act professional then chances are the new hire isn't the problem, you are.
ironically i would wager that the people who can pass a 'cultural fit' test with the highest score might actually be Sociopaths, since they are the world experts at being charming to complete and utter strangers.
My point is that from day 1 you have to protect your group from outsiders who are unprofessional, toxic, and will sink morale and productivity. How you do it is up to you, but the issue cannot be naively framed as "companies are bad and sexist, while pure, good-natured, kind human beings are rejected from positions they deserve unfairly".
That's a nice fairy tale that falls apart once you yourself spend a few years hiring.
I agree there has been turmoil that has been detrimental to uber. But maybe the fact they specifically looked for hard core, "won't take no for an answer" is the reason they reached massive market / valuation they did. Lyft choose the "friendly" route and didn't get anything close to Uber size/valuation.
I'm not saying this is the best strategy/ always works, but you are saying you consider stripe successful basically because they have not had turmoil/bad press, despite the fact they are a fraction of the value of Uber.
Tldr: you probably NEED aggressive, won't take no, type of ppl to grow to a Uber size as quickly as they did.
This is a bit nit-picky, but I find it distracting when an article leads with a statement that strikes me as grossly inaccurate.
Because if the rest of the article hinges on the accuracy of that opening statement, I'm likely to regret having spent time reading the article.
Clarification: The reason I'm skeptical of that particular opening statement is AFAIK U.S. corporations can have assets, liabilities, etc. that are very different than simply the sum of their employees. For example, I would gladly accept the parts of Apple that aren't employees: its bank accounts, patent portfolio, etc.
-Dilbert's PHB