
Recently, I had the worst interview of my life. It went pretty much like the original describes. I said I’ve been doing this long enough that I’m not really on board with the algorithm Q&A, let’s just talk about the work, and in so doing I sailed through 4 phone screens and landed an onsite interview. I was assured it would be practical and no one wasted their time on algorithm brainteasers. You can imagine there this is going. I arrive and the first interviewer says I have 3 eggs and need to determine the maximum height they can be dropped from without breaking… This session was brief and ended with me declining to attempt a different question. The remainder of the interview passed as a blur conducted from a place of great despair. I almost wrote a snarky email suggesting they get it together. I gave up. 3 weeks later I got a job offer from another team who I wasn’t interviewing with but who was in the interview and was impressed with how I handled myself. Turns out that job was my dream job and I never would’ve wanted the first one anyway. The company is great, too. Well meaning but even that is not sufficient for conducting a good interview.
posted by feloniousmonk at 2:30 PM on February 21 [17 favorites]
I was doing interviews in 1999 to get hired in 2000, and I had to design multiple SQL queries on the fly (not even a flipping piece of paper) for the megacops of the day. This stuff isn’t new. My room-mate interviewed at Microsoft, and had to design an instant messaging application in the in-person interview. I guess that has changed, it wasn’t over the phone then. He didn’t get the job, but did 10 years later as a network engineer with experience and none of the nonsense.
And yes “senior” and non-senior are the only options for engineers. After that are ‘architect’, ‘team lead’, and ‘business sales/estimations’, which are completely different skillsets.
posted by The_Vegetables at 2:31 PM on February 21 [1 favorite]
posted by w0mbat at 2:33 PM on February 21 [7 favorites]
Honestly I think the complaint about a shortage of people is overblown. The issue is a lack of mentorship and properly transitioning junior developers into architects or whatever it is you want.
posted by GuyZero at 2:33 PM on February 21 [13 favorites]
I’m terrified of getting fired because while I have a decent resume and I’ve been keeping up to date, I’d need to study months to be able to get through a whiteboard interview. And I know that no matter what I learn for the interview, chances are I’ll never need to use it again until the next time I’m looking for a job. It’s a very specific skillset that’s almost completely divorced from day-to-day reality.
posted by simmering octagon at 2:36 PM on February 21 [15 favorites]
posted by octothorpe at 2:37 PM on February 21 [13 favorites]
posted by SoberHighland at 2:37 PM on February 21 [4 favorites]
Yep. The only thing the whiteboard gauntlet screens people for is if they are good at interviews.
posted by GuyZero at 2:38 PM on February 21 [4 favorites]
This is what it all boils down to. The magical beings that companies think they can somehow locate with these insane interviews are, summarized: people they never have to invest time or money into. That’s it. That’s why they’re trying so hard to filter at the interview process with such ridiculously demanding questions.
I have said for many years, and I will continue to say: we (software developers) have a serious cultural problem with not wanting to actually train or develop people. We let ourselves think that if we can just interview hard enough, with an exacting enough set of tests, we’ll just hire fully formed developers who will never need mentors, never need outside training, and will just manage their careers themselves. It’s why we also lie to ourselves and say it’s totally normal for someone to be promoted from a hands-on engineer to a manager, because obviously management isn’t like a skill or requiring of any specific qualities …
I’ve worked for some companies that do better than this, but even the ones that have done best are still failing people on a regular basis (just not as hard as the average ones).
posted by tocts at 2:41 PM on February 21 [27 favorites]
It’s important to ask interrogate if all these metrics around Structured Interview questions (“Tell us about a time when…) and discrete toy problems are really good predictors of someone who is a valuable or capable worker. Is this even an area of academic interest? I’ve never seen a shred of study or testing of any of this. It all appears to be gut and supposition.
I have a strong sense that most of these sorts of HR issues are drunks looking for keys under streetlights. We know the keys aren’t there, but this is the part we can measure and search.
I’ve advocated instead, where possible, for real work products, past projects, doing a presentation on a past project, previous written works be evaluated instead (ok, in addition, not won that battle with HR yet). In all cases I think the hiring boards found the more relevant job-related evaluations more useful.
posted by bonehead at 2:43 PM on February 21 [7 favorites]
I have never been a part of a hiring team and I am sure there are things going on that I don’t know about.
Yeah. They’re also probably evaluating that you maybe didn’t communicate very well for the specifc role they want you to do.
posted by Abehammerb Lincoln at 2:43 PM on February 21 [6 favorites]
posted by tocts at 2:45 PM on February 21 [11 favorites]
1. A phone screen w/ a clueless recruiter
2. A phone screen w/ an engineer (I had learned the definition of “polymorphism” at that point, it having bitten me at a previous interview at a big travel site)
3. A 4-hour in-person session of interviews with engineers and managers during which I was asked lots of those “tell me about a difficult situation” and “tell me where you see yourself 5 years from now”
4. Another 4-hour in-person session of interviews with engineers and business people, for which I needed to buy a new button-down shirt* since the one button-down shirt I had was dirty (see #3).
5. A role-playing phone screen w/ a business person who was in London during which I had to pester him for requirements
* said shirt having been returned the same evening after I discovered slit** in the arm which I presumed to be a defect
** 18 months later, said shirt then being brought up in conversation at happy hour due to slits in both arms which were apparently a design feature and caused everyone that interviewed me to think that I was Really Confident About My Biceps when in fact I had no clue at all
posted by grumpybear69 at 2:46 PM on February 21 [11 favorites]
There were many people graduating from my program who found jobs without doing the algorithm interview prep thing; they chose to focus instead on projects, and targeted companies without a strong focus on algo interview questions. So, I think there’s hope for people who don’t want to engage in the leetcode grind, but you do have to be intentional about it.
posted by catcafe at 2:48 PM on February 21 [4 favorites]
For the record, in his follow-up, he says “Contrary to popular perception, I did interview with companies outside of the FAANG club.”, fwiw.
posted by mhum at 2:48 PM on February 21 [4 favorites]
The algorithm interview is a desperate attempt to quickly screen out the garbage applications which have increased so massively in number as the internet has spread. Trouble is, it’s so poorly implemented that it ends up screening out the people you actually want to hire as well. And as such, it turns out to be a downgrade on the company boss many years ago who famously said that he made his pile of applicants manageable only by stacking all the CVs on his desk and sweeping the top 90% of them into the bin.
So, the answer to your original question is yes.
posted by Cardinal Fang at 2:49 PM on February 21 [5 favorites]
So people do pass these things somehow. These interviews are also a total crapshoot and the stories you read have a whole lot of selection bias to them – no one posts 10K words on medium about a perfectly reasonable interview with a well-prepared interviewer. And work/life balance is great at big companies because of all the inertia – if you’re a day late with a project, no one cares. There are 30,000 people within 2 miles of your desk, no one notices when one goes home early to watch a swim meet. Work life balance at startups is way more random.
posted by GuyZero at 2:51 PM on February 21 [4 favorites]
Agreed! I worked at a startup once where the trust-fund founder actually put a bedroom in the office in case any of us felt the urge to work all night and wanted a place to sleep. Nothankyou.com
posted by grumpybear69 at 2:54 PM on February 21
1. Write a tiny program that does function A
2. Modify the program to do function B, which is pretty different than function A, but also it has to accomplish function A
3. Modify the program to do function C, which is pretty different than function B, but is really similar to function A
The ideal candidate would notice the similarity between A and C and restructure it instead of adding to the mess from step 2, but it was ok if it just implemented A, B, and C competently.
I had a lot of fun writing it up and asking the candidate, but otherwise I don’t think anyone else wants to ask it, because it’s not a “fun algorithm question”.
posted by meowzilla at 3:00 PM on February 21 [1 favorite]
posted by Leon at 3:05 PM on February 21 [8 favorites]
If they get binned, they were unlucky. Who wants an unlucky person on the team?
posted by Leon at 3:08 PM on February 21 [10 favorites]
The big tech companies (Google, Facebook, Microsoft etc), despite what they say, don’t need any more programmers. They have all the programmers they need. They could fire half their engineering force and still have all the engineers they need.
As stated above, companies unrealistically only want people who can walk in in the morning, fill out their I-9, sit down and immediately starting contributing.
I also enjoy the obsession with algorithm complexity trivia.
posted by lowtide at 3:13 PM on February 21 [1 favorite]
posted by mwhybark at 3:17 PM on February 21
I am currently looking for tech work. This hits a bit too close to home. Also I am 1) female and 2) over 50. Oh goody!
posted by supermedusa at 3:22 PM on February 21 [11 favorites]
posted by maxwelton at 3:26 PM on February 21
posted by octothorpe at 3:27 PM on February 21 [12 favorites]
Actually, no, they were the lucky ones. The unlucky ones got interviewed and the really unlucky ones took the job.
posted by suetanvil at 3:27 PM on February 21 [1 favorite]
I bungled along for 30 mins, left and never heard back. Thank the gods. If that’s a realistic version of the work environment, no thanks.
posted by SonInLawOfSam at 3:30 PM on February 21 [1 favorite]
Sometimes, I idly daydream about how different things would be if software engineering had evolved along the same lines as trades, either like the traditional building trades (e.g.: electricians, plumbers, carpenters, ironworkers, etc…) or like doctors and lawyers. Personally, I think that an apprenticeship->journeyman->master or intern->resident->fellowship framework would be a much more sensible system than whatever the heck we have now.
Meanwhile, when it comes to interviewing in general (not just for software but for everything), I’ve long been of the opinion that no one really knows what they’re doing. Anecdotally, Daniel Kahnemann, the behavioural economist, wrote up his experiences of evaluating officer candidates in the Israeli army for the NYT in 2011 “Don’t Blink! The Hazards of Confidence”:
Because our impressions of how well each soldier performed were generally coherent and clear, our formal predictions were just as definite. We rarely experienced doubt or conflicting impressions. We were quite willing to declare: “This one will never make it,” “That fellow is rather mediocre, but should do O.K.” or “He will be a star.” We felt no need to question our forecasts, moderate them or equivocate. If challenged, however, we were fully prepared to admit, “But of course anything could happen.”
We were willing to make that admission because, as it turned out, despite our certainty about the potential of individual candidates, our forecasts were largely useless. The evidence was overwhelming. Every few months we had a feedback session in which we could compare our evaluations of future cadets with the judgments of their commanders at the officer-training school. The story was always the same: our ability to predict performance at the school was negligible. Our forecasts were better than blind guesses, but not by much.
Basically, if these people weren’t able to infer anything about the future performance of these soldiers based on multi-day, intensive exercises, I wonder how much anyone can infer about job candidates on the basis of four or five one-hour-long chit-chats.
posted by mhum at 3:35 PM on February 21 [6 favorites]
Yes.
posted by a complicated history at 3:43 PM on February 21 [5 favorites]
If anyone needs a copy of Cracking the Coding Interview, send me a MeMail.
posted by octothorpe at 3:44 PM on February 21 [5 favorites]
These sorts of human conversations also don’t “put people on the spot” which just seems like a way to screw them up and make them seem less competent than they actually are. I don’t intend to play those kinds of shitty head-games on the job, so why would I play them during the interview process?
posted by chasing at 3:49 PM on February 21 [6 favorites]
posted by Ghostride The Whip at 3:51 PM on February 21 [7 favorites]
posted by OnTheLastCastle at 3:51 PM on February 21 [1 favorite]
This. And what you need to know is (a) are they genuinely interested in software dev, and (b) do they seem like a good fit for the team. Given those two things, anyone can be productive (on my team).
posted by merlynkline at 3:52 PM on February 21 [3 favorites]
When I was looking for jobs, 4 times in a couple year stretch of bad luck, I sent out over a hundred applications each time, tracked the whole process in a spreadsheet. It seemed pretty random as to who would respond, how far things would go, which ones would make an offer. Came to conclude that it’s a numbers game and you never know which applications are going to be the right one at the right time.
posted by kokaku at 3:53 PM on February 21 [2 favorites]
I have no idea what I’m doing, really, and it’s nice to know that giant companies don’t, either. When you’re interviewing someone, you’re trying to predict the future, and that’s the hardest thing to predict.
We do have a programming test – created before I got there, that I had to take myself to get hired – but we let people take it home and give them a few days to do it. I suspect that its very existence has chased away more than one good, experienced developer. I excuse it to myself with the idea that we do kinda boring, simple, business-process work sometimes, so if you’re not up for the boredom of the test maybe you won’t be up for the boredom of the job. Am I right about that? Probably not. Who knows?
We have gotten one good hire out of it, a young woman who keeps taking on new challenges and growing as a developer with each project she’s given.
posted by clawsoon at 3:54 PM on February 21 [3 favorites]
posted by adamsc at 4:05 PM on February 21 [4 favorites]
I guess we could call them Slackers, Assholes and Depressed (Dudes) and use the acronym SAD. (The classification of which three types utterly decimate group cohesion is from a book called The No Asshole Rule, some HBR article that inspired it and The Power of Bad a new book about how negativity really sticks with us.)
I’ve had an asshole turn me into a slacker AND extremely depressed! So fuck people who are assholes at work.
posted by OnTheLastCastle at 4:06 PM on February 21 [8 favorites]
posted by feloniousmonk at 4:14 PM on February 21 [1 favorite]
So this is Not Wrong, but it’s historically how tech companies end up hiring all white guys, or to a lesser extent, all Indian guys.
and (b) do they seem like a good fit for the team.
sigh. So do you want to hire a jerk? No. But this is also how underrepresented groups keep being underrepresented in tech. “good fit” is a pretty fine line to walk.
they actually had me go in for a pre-interview prep session to watch talk about what would happen in the interview and then sent me home with a syllabus of subjects that I should study up on for the interview and a bibliography of books to read. I got about half-way through studying and emailed them to cancel the interview.
They do this because it’s very helpful for students who are well-connected with existing people in tech. Apparently doing this helped improve the interview pass rate for HBCU students.
posted by GuyZero at 4:16 PM on February 21 [12 favorites]
Definitely timely, as I’m considering leaving my current position for semi-unrelated reasons, and am starting to re-evaluate (and occasionally regret) my career choices to date. Some days I wish I had stuck with software (particularly when I see what y’all make, JFC) – maybe being bad at getting a job wasn’t so indicative of my actual capabilities to code.
posted by photo guy at 4:18 PM on February 21 [1 favorite]
On job applications though, I’ve had three really awful experiences that I remember too well.
In one I was asked to solve (at home) a geometric puzzle that was essentially a search for solutions. It was supposed to run in some limited time (not sure, maybe 60 seconds) my first solution (in Python) was way over the limit, but at that point I’d figured out what to do and recoded it in C which ran much faster than they’d asked and sent it in. But at that point the company had reduced the time alloted to maybe a tenth of what they’d originally asked and said that my solution had to be competitive with the fastest one they’d received and I called it quits.
Another (on site) interview was maybe ten minutes of technical knowledge and 6 hours of some bullshit personality assessment given straight out of a booklet. I didn’t get that job.
The worst one was recently where there was a week of at home quizzes ranging from programming to analyzing sql queries for efficiency. Not too bad, but after easily solving the first programming task their online quizmaster wouldn’t let me submit it. When I went to do it again, the question was maybe ten times harder and it timed out on me. Grrr. I decided to bag the whole thing, but a couple days later got a call saying that I should finish the weeks tests and that I was among the top candidates for the job. The money would have been good enough that I did finish the tests. I think I did ok on most of them, but the final question was to analyze a multi-thousand line program and then comment on it and draw a data flow diagram. Two hours for that and while I had some (I think) good comments, but my data flow diagram was way too awful (and I knew it). They said “Thanks, but no thanks” with no other feedback and in retrospect, if that was the kind of thing they wanted, I was pretty sure I’d not have enjoyed the position.
Thankfully, I’m retired now and should be able to make do with savings and Social Security. I still sometimes browse the job boards in case something really nice shows up, but I’m not seriously looking for a job.
posted by Death and Gravity at 4:32 PM on February 21 [1 favorite]
When I get a resume from wherever, my first step is to scan it then check out their GitHub/Gitlab/etc presence if any, to see what sort of code they’re capable of producing.
Next is a half-hour informal phone screen with me, their prospective boss.
After that they get a take-home open-book exercise to work on for the next few days, to see how capable they are of taking a skeleton project (built with the languages/libs/tools in our prod codebase) and a requirements doc and some wireframes and turning that into a working app.
We discuss that deliverable and a lot of other stuff in the in-person interview, where they meet with me and the rest of the web team and UX designers / backend engineers / product people / whoever else they’d be interacting with in their day-to-day duties.
It seems insane to me to conduct an interview any other way other than the one which mimics to the greatest extent possible the actual working conditions of the position. For this particular job title and for this particular company’s product, FizzBuzz is bullshit. Whiteboarding syntactically-correct code is bullshit. Memorizing trivia about today’s hot Javascript framework is bullshit. And I think that’s true for a lot of dev positions at a lot of companies. Very few places are doing the sort of work where every dev should know how to write a red-black tree class blindfolded. But those places are the Microsofts and Googles of the world, and if they’re interviewing candidates a certain way then that must be the best way for every two-guys-in-a-garage startup to do it too!, so here we are.
(any frontend devs in Boston looking for a new gig?)
posted by Old Kentucky Shark at 4:43 PM on February 21 [4 favorites]
posted by Death and Gravity at 4:44 PM on February 21 [4 favorites]
You’re braver and wiser than I am.
posted by GuyZero at 4:48 PM on February 21 [3 favorites]
US Customs and Immigrations feels differently.
posted by GuyZero at 4:49 PM on February 21
In the past two years while working at a large non-tech company I’ve sat on the interviewer side of the room to run about about 150 programming interviews. Some anecdotes:
For about a year our hiring process had a pre on-site phone screen that took about 10 minutes with a few simple technical questions, but no coding test. About 20-25% of candidates who applied for software engineer roles who passed the phone-screen and made it to on-site interviews had essentially no ability to write simple programs. These people often had reasonable looking CVs and could talk the talk about their experience. Once someone makes it to on-site interviews it’s a multi hour interview process involving multiple engineers who all need to write up reports about the interview afterwards, so the company invests about 1 day of engineering effort assessing anyone who makes it to an on site.
So if you are a capable programmer being asked to jump through hoops and do a few simple fizz-buzz puzzles during a hiring pipeline, apologies, but the hoops aren’t there because of you! If the market only had capable programmers applying for programming jobs, life could be a lot simpler and more efficient for everyone involved.
So we’re now doing an online programming test (just an hour or so) as a filter before letting people proceed to on site interviews. Even with this in place, we still get a minority of people who turn up to on site interviews and demonstrate no ability to write basic code, and when we try to understand what’s gone wrong and dig into the details of their online code test results, often it looks like they have (a) googled the question and plugged in code from the first search result, or perhaps (b) got their friend to sit the assessment for them.
About one in twenty or or one thirty candidates who interview for programming roles demonstrated a relatively high level of ability compared to everyone else — people who are able to ask probing questions to clarify requirements, brainstorm and propose multiple solutions for a given problem, explain the tradeoffs between the possible solutions, tell you which solution they would recommend and why, implement it in 15 minutes writing relatively clean code in one pass, answer a few analysis questions about performance, go in to some depth about the data structures they chose to use, and then answer deeper questions about what would be going on “under the hood” in their chosen programming language while it runs their code. Once you’re aware that these people are out there in the market, if you don’t need to hire someone to fill a role right now, you can keep interviewing until you find them. That said – we also hire people who demonstrate a lower level of ability than this in an interview for more junior roles. But it’s also worth noting that strong computer science graduates with no real world work experience who have learned to program competently (some don’t) and paid attention during their algorithms classes can do well in many of these dimensions during an interview.
It’s arguably even worse with IT services / IT consulting companies. It is potentially a very profitable business to be a shady middleman who can employ a fresh grad or someone who doesn’t really know what they are doing and then try to flip them and present them to a client as an “expert” / “experienced $whatever developer” in whatever the client’s problem or tech stack happens to be, then bill them out to the client at high-end daily contract rates. If you’re buying these kinds of contract IT / software engineering services and don’t have some kind of in-house capability to assess or measure if you’re being sold a lemon, you’re going to get absolutely fleeced while at the same time your project starts to go off the rails (if it isn’t off the rails already).
Personally I think it is unfair when companies give prospective hires larger take-home assignments to design & build systems as part of a hiring pipeline. This could be okay in principle if the company _pays_ the candidate a decent rate. For the hiring pipeline to be “fair” it should consume similar resources for the candidate and the company to try to figure out if each other are a good fit. I.e. it should require a fairly symmetric investment of time and resources.
It’s a bit of a numbers game from both the job seeker’s perspective and the employer’s perspective. Even people who usually do very well at artificial whiteboard algorithms interviews can have a rough day, or happen to get asked 1 out of 5 possible questions and that happens to be the one they’re weakest at. Some candidates get super stressed and anxious during interviews and freeze up, while in normal work situations they’d likely be able to think things over and produce good work. The questions or tasks that are asked during interviews only measure a subset of what really should be measured for the role, or measure things that aren’t really relevant at all. The hiring process is very flawed, and can be improved, but there would be a real cost to the business of not having it in place at all.
posted by are-coral-made at 4:55 PM on February 21 [6 favorites]
“Given an array nums containing n + 1 integers where each integer is between 1 and n (inclusive), prove that at least one duplicate number must exist. Assume that there is only one duplicate number and find the duplicate one.
You have 24 hours!”
So I thought trivial, and then re-read it. lol, clever question 🙂
posted by baegucb at 5:05 PM on February 21
>> Sitting down and talking to someone human to human gives me most of what I need to know when hiring a software developer
> So this is Not Wrong, but it’s historically how tech companies end up hiring all white guys, or to a lesser extent, all Indian guys.
I’m a white guy, but I’ve got a strange professional background and I appreciate smart people who come from diverse backgrounds. And I’m someone who finds people different than me honestly pretty interesting to talk to. And I *HATE* monoculture — especially the sort of bland default techie monoculture. So this has absolutely not been a problem in my case.
posted by chasing at 5:06 PM on February 21 [1 favorite]
Solutions here – I would have done #2, #1 is pretty obvious too, #3 blew my mind
posted by GuyZero at 5:12 PM on February 21 [3 favorites]
posted by baegucb at 5:32 PM on February 21
posted by potrzebie at 5:39 PM on February 21 [3 favorites]
It seems to me that one thing that whiteboard interviews do is give a pretty big advantage to recent CS students. I’ve taken a couple of CS classes recently, and most of them had tests that required you to write out programs on a piece of paper, which seems like a totally weird and arbitrary thing to require. But it occurred to me at some point that those exams were really good training for whiteboard interviews: they’re a similar task, performed in a similar high-stakes setting. On the one hand, there’s a sense in which whiteboard interviews give non-traditional applicants an opportunity to prove their skills. But there’s another sense in which they favor people who have taken college CS classes and who have taken them recently.
posted by ArbitraryAndCapricious at 5:40 PM on February 21 [4 favorites]
User name! Freshly coded user name!
posted by GenjiandProust at 5:47 PM on February 21 [2 favorites]
Yes, it is trivial.
AND YET
posted by GuyZero at 5:53 PM on February 21 [5 favorites]
This is literally what I do and can confirm its immensely profitable. We’ve been fleeced banks for years and made great coin from all the post 2008 compliance and regulations. Its a very different part of the technology world from FAANGS and startups. One thing I will say about consulting companies is that they a have huge interest in getting you work. It’s essentially a numbers game, get as many grads as possible, farm them out as swiftly as possible. The great thing is the good ones get opportunities really fast if they prove themselves, we once had business analyst who just taught himself to code and made the system himself as it was faster. He would have never passed a coding interview obviously.
posted by Damienmce at 6:03 PM on February 21 [6 favorites]
No bank, outside of maybe investment bank front office quant/modelling teams, has the inhouse expertise left to accurately assess the quality of developers anymore. All thats left are technology managers who are usually from a biz or project admin background. You can get away with daylight robbery, maintaining ancient systems and going home by 6.
posted by Damienmce at 6:10 PM on February 21 [2 favorites]
Then came an analytics company that asked me to do a take home challenge. The challenge was a three sentence blurb. I did the best job I could on it and wrote a very involved multithreaded image processing system…..
Who can do this off the top of their head? Someone who writes image processing software for a living OR someone just out of school who still remembers a good signal processing class, I think. Someone who has spent a few years slogging away in Javascript frameworks or whatever most jobs actually have you do all day would have little chance.
posted by thelonius at 6:16 PM on February 21 [1 favorite]
posted by thorny at 6:18 PM on February 21 [1 favorite]
I mean, that’s the point. Or at least it’s the premise of the article that introduced it widely, that it’s a very basic filter that will nonetheless catch a portion of applicants with legit-looking credentials.
posted by atoxyl at 6:18 PM on February 21 [5 favorites]
I’ve been at my current position for over a decade and have no plans to leave, and stories like this make me fantasize about spending some of my free time to go interview for CS jobs and then reject THEM when they make an offer b/c they had me do some dumbass coding tricks in step 2 of the interview process.
posted by axiom at 6:23 PM on February 21
> No bank, outside of maybe investment bank front office quant/modelling teams, has the inhouse expertise left to accurately assess the quality of developers anymore. All thats left are technology managers who are usually from a biz or project admin background. You can get away with daylight robbery, maintaining ancient systems and going home by 6.
You very accurately describe my (huge non-tech) employer’s previous approach to software engineering hiring: it was all entirely outsourced, they didn’t have any permie employees with engineering or tech capability, mainly just a bunch of middle managers with business or project admin backgrounds. If you wanted to have a career with the company as an employee, you had to be a project manager, there were no opportunities as a tech specialist. After operating this way for about 10 years they started to figure out that it didn’t produce good business outcomes.
Presumably in about 10 years someone will bring in a management consultant to explain that having permanent engineering employees is expensive while the longer-term benefits to the business are harder to estimate, and the great cycle of outsourcing life will begin again.
posted by are-coral-made at 6:28 PM on February 21 [1 favorite]
Helps a lot. (Hard to do)
posted by aleph at 6:29 PM on February 21 [5 favorites]
If you’re an experienced person that works much better than firing off a hundred resumes, imo.
You can’t build a network in a day, but a shortcut can be to give a talk. Meetups are always looking for talks, and you stand up there, you say “I’m Kwine, I’m looking for a new gig in X” at the X meetup, you give a great talk about X, and then people are going to want to hire you.
posted by Kwine at 6:32 PM on February 21
posted by btfreek at 6:32 PM on February 21 [4 favorites]
> The great thing is the good ones get opportunities really fast if they prove themselves, we once had business analyst who just taught himself to code and made the system himself as it was faster.
People who understand (or can learn) about the domain and context and goal of the business problem, figure out which are the important parts to model, and then implement a (perhaps ugly) actually working piece of software are very valuable people!
I’d personally much prefer to be working on a project with people like this than colleagues who may be much more capable programmers but who are completely disinterested in understanding what the business actually needs them to do, or who don’t want to do any of the analysis work and expect well-defined formally specified coding tasks to be handed to them on a plate.
posted by are-coral-made at 6:36 PM on February 21 [2 favorites]
Tech interviews are like if a hiring manager said, “I am only going to hire the best speakers in the land,” and then tested people by thrusting a mic into their hand, plunked them in front of a stone-faced stranger, and said “Quick! Tell me a story about… CAN OPENERS!” and if the person didn’t give a succinct, snappy, quotable speech about can openers immediately, the hiring manager would say, “Oh! Haha! You’re a terrible speaker! You couldn’t even give a five minute talk about CAN OPENERS! Everyone uses CAN OPENERS! You must have been lying on your resume! **I** can give a five-minute talk about a CAN OPENER and I deserve to be here, so you must not!”
Whereas if the job seeker had a 24- or 48-hour heads up, they could have given an interesting, thought-provoking speech. That job seeker IS a good speaker — they just aren’t a good EXTEMPORANEOUS speaker.
And — here’s the thing — **most tech work is not done extemporaneously**!!! You can think about (and Google) something for 20 minutes, or wrestle with a tricky problem for a few days, instead of rattling something off at a minute’s notice! Most of your interactions around your work are done in writing and text chat! Many of your tasks are as much about common sense as they are about math! Your colleagues who are itching to take the mic and belt out Can Opener Facts are honestly probably the LEAST helpful when it comes to real, messy, impactful programming work which is an equal mish-mash of people problems and computer language!
Storytime: I had a hellish time doing tech interviews as a career-changer from another industry. I got my current software engineering job through a take-home and then a thoughtful on-site where my choices on the take-home were discussed. In the past year at this job, I have gotten nothing but glowing feedback on my job performance. I constantly catch things in code review and make my colleagues’ code better, even colleagues who have been coding for many years, for BigCos. My code is praised. My colleagues seek out my advice and help, and my opinions and explanations about programming concepts are respected.
Extemporaneous speeches about can openers are not my strong suit. In fact, if someone shoves a mic in my hand and barks at me to rattle off the date the first can opener was invented, I will likely bomb the speech, even if I *am* an expert on can openers!
The annoying thing is, even though I am excelling at my job, if/when I would ever look for another job, I will have to spend many, many hours studying and drilling Can Opener Facts even though that has 0% to do with my job, and I’ll have to go through many humiliating interviews where stone-faced interviewers imply that I don’t know anything, that I don’t belong and that I’m not smart enough. I am not looking forward to that. Even typing this makes my heart race and my stomach hurt. But, that’s this unfair, bonkers industry, and I am stubborn enough and privileged enough that I will push through the humiliation and keep on fighting. Good luck to everyone else going through it.
posted by rogerroger at 6:46 PM on February 21 [5 favorites]
posted by aleph at 6:58 PM on February 21
They definitely do, and it’s a big part of why they’re ultimately not going to be a reliable filter for good candidates. I’m nearing 20 years in this industry, and my honest answer to most of these kinds of questions is that it’s way more important for a candidate to know why they would care about these things and how to research them than to be able to rattle them off on command. 90% of this stuff never comes up, and the 10% that does you should be researching when it comes up even if you think you know it, to be sure you haven’t forgotten something.
Honestly, all of this bullshit is just the latest evolution of the kind of cargo cult interviewing techniques that proliferated in the late ’90s/early ’00s because “that’s how Microsoft does it”. Before it was stupidly detailed algorithm interviews, it was stupidly pointless lateral thinking exercises, and I’m sure in more time it’ll be some other stupid thing that doesn’t actually work but everyone copies because the big guys are doing it and they must know what they’re doing.
posted by tocts at 7:12 PM on February 21 [3 favorites]
I occasionally wonder if that’s why the FAANG’s end up buying so much of their innovation.
posted by cowcowgrasstree at 7:31 PM on February 21 [1 favorite]
posted by geoff. at 8:00 PM on February 21 [1 favorite]
That would make me a junior at best. And I still bet I would do a better job than even most senior devs at the companies I’ve worked with. That’s not a brag, that’s just what I see. Most companies don’t need better technicians who know more magic spells. They need to foster a culture of communication, ownership, and collaboration*. Yes, you have to know enough to be able to build things and sometimes untangle poorly planned messes, but your ability to do those things has as much to do with active listening and user empathy and creative abstraction (sometimes even just for fun) as it does with being able talk about big O notation and the vagaries of searching a binary tree.
*and they need to treat programmers better
posted by Doleful Creature at 8:10 PM on February 21 [3 favorites]
posted by medusa at 8:30 PM on February 21
posted by aleph at 8:50 PM on February 21
As one of the people who handles the technical part of the interviews for my organization, I try to compensate for this. I want to provide an environment that at least does not exacerbate the inherent stress of the situation, and give candidates time to take breaks to center themselves if necessary. And I try, when evaluating the results, to control for candidates’ panic level. This has meant taking a few “leaps of faith”, where it was hard to see their technical skill through the fog of their anxiety but we hired them anyway. And those people have turned out great.
posted by Jpfed at 8:57 PM on February 21
Starting with zero, xor that with each number in the array, then xor that with each of the numbers between 1 and n inclusive. You’ll be left with the duplicated number, which is the only one that got xor’ed three times instead of only twice. Because, as apparently all programmers know, integers with xor are a commutative group where every element is its own inverse and the identity element is zero.
My wife assures me that real programmers don’t do this kind of stunt at work, but you can bet she practiced it at home while she was looking for a job.
posted by meaty shoe puppet at 9:10 PM on February 21
FYI, I think this only works when the duplicated number appears an even number of times. Some variations of this problem specify that the duplicated number appears exactly twice while every other number appears exactly once. This version only says that a single number is duplicated but allows for multiple duplications (e.g.: every single number in the array could be the same).
posted by mhum at 9:25 PM on February 21
posted by meaty shoe puppet at 9:42 PM on February 21
Me: (sits down with president of the company, the only person to interview me)
President: So I hear you can program!
Me: Yup.
President: How much do you want?
My degree was in music. Things: they have changed.
posted by grumpybear69 at 2:22 PM on February 21 [25 favorites]