All You Zombies
thedailywtf.com
thedailywtf.com
Because these companies need to hire large volumes of low-skilled workers, they implement rigid HR policies and procedures to streamline the process. Those workers make up probably 95% of their hiring volume -- turnover is high and there are tons of positions available.
These companies fall flat on their fucking face when they try to hire skilled workers. The same processes that make them efficient and streamlined at hiring call center reps make them fucking terrible at skilled labor hiring. They use low-skilled HR reps with zero domain knowledge to filter stuff, then HR always has to be involved in the process "because policy". End result is it takes 4 months to get a resume, interview and extend an offer to someone -- in which time, the best candidates already have started other jobs.
Meanwhile, the engineering groups need to get things done. So when Accenture comes in and says "We can get you a whole team of 50 people in India. And they can start next week." it's hard to say no. And most of the full-time people working at the company are ex-consultants themselves (because that's the only way to actually work at a lot of these companies).
Consultants are basically "shadow HR" at a lot of companies. They wouldn't be so prevalent if these companies were competent at hiring people with relevant skill.
Having worked a large (billion dollar scale) project with Accenture, I have seen what a mixed bag they can be.
They brought on some absolute rock-star developers and some who probably did more harm to the project than good but none of them had skills that weren't available with domestic talent. I suppose the shackles of H1B visas helped to keep labor costs down.
You drum out the ones who can't hack it after a year or two and replace them with fresh grads, and you promote and pay the good ones to keep up the charade.
And you're spot on about the middle manager thing. That way they can say "I was over 4 teams with 75 heads so I'm ready to be a VP!" when really all they did was approve expense reports and head-nod to everything I told them. Of course, making sure that middle manager gets promoted is also part of the job -- when he gets promoted, he gets a bigger budget. :)
Basically, HR runs the hiring process at most of these companies, and from HR's perspective the engineering teams are like that annoying customer that keeps complaining because they are a "special flower" (HR detests special flowers). They don't even know what engineering does; just that they have 55 call center positions and 2 engineering positions they need to fill this month.
Not every company is this way, but many big ones are. Specifically the ones where like 70% of the company is consultants.
Seriously, when does it stop?
I've never been called or harassed by a recruiter, and I try to get back to every one, if only for politeness sake. No reason to burn bridges. If they got the match a little wrong, no big deal--they're not wizards and mind readers.
It's not the type of roles that gets irritating, but the pushiness and desperation of some recruiters. Like they've read too many books on sales and think that they can get any engineer into any job if only they say the right words and are persistent enough.
Github and Stackoverflow supplied me with all of my decent leads and networking necessary in the past years. For the only two exceptions of people that expected me to have an account there, I told them I could send an up-to-date CV with references, if needed.
That attitude is pervasive, yet seldom expressed so clearly.
And FWIW: http://emilkirkegaard.dk/en/wp-content/uploads/Robert-A.-Hei...
I was thinking this might be AT&T - I've run into a bunch of businesses that have outsourced their IT to AT&T's global services division. Although AT&T is still very much a telco.
Ahm ... I would probably just naively brute force loop over the sets, because modern CPUs are insanely fast and I am filthy lazy. And if there is a performance problem I super lazily look up the filtering methods of the language-library.
What would the correct answer here be? Make a hash or something for constant lookup cost?
With Python(my bread and butter), I would simply use the built in intersection set class method: https://docs.python.org/3/library/stdtypes.html?highlight=se...
If space complexity is not a requirement, wouldn't it be better to iterate over each list and keep track of the occurrences of a digit in a dictionary (whichever keys have 3 occurrences are thus shared)?
That way you could get the value in O(n) time. Or is there something I'm missing?
"How many times is this going to run? Is it going to be cheaper to do any naive thing and move on to the next ticket, or should I take the time to actually optimize this?"
That's usually the correct answer, and one I never see in interviews (either asked or offered).