7 ms·
Nowadays, with 20+ years of experience as a software developer behind me, having worked for Apple, First American, Bloomberg, AT&T, Booking, Amazon, many startu
by 734129837261 5y ago
Nowadays, with 20+ years of experience as a software developer behind me, having worked for Apple, First American, Bloomberg, AT&T, Booking, Amazon, many startups, etc. my job interviews have never been easier.
Before I am presented with a dumbass interviewer who throws a ridiculous question my way about algorithmic stuff, I prepare them: "Since we are both seeing if the other party is competent, I want you to know that I want you to also solve my questions. They will be slightly more difficult than the questions you pose to me."
When I applied for a job at Toptal this made the algorithm-test disappear like snow before an up-close nuclear blast.
I've interviewed hundreds of candidates over the years and I would never ask a question I can't also answer from the top of my head, in detail, and then some. Turns out, most technical interviewers who ask you "write a bubble sort" couldn't do it themselves.
And if they could, it'd be full of bugs. I mean, I'd rather have developers on my team who Google "bubble sort python" and go for a tried and tested open-source solution. I don't need developers who can reinvent complicated wheels from scratch; I want developers who are efficient.
Likewise, I don't want to work for a company where developers pride themselves on over-engineering their things.
Having worked at Apple, it doesn't surprise me one bit how slow they are developing simple features and fixing simple bugs. It's a red-tape hell full of not-very pragmatic engineers that are way too smart for the good of the company.
- carabiner 5y agoWoah, we got a badass over here. Seriously they have 1,000 other qualified candidates lined up right behind you. I'm sure they appreciate your time and then end the interview.
- owenmarshall 5y agoI also think this comes across as someone being pretentious and arrogant, and could be a no-hire, but there’s a nugget of truth in this: interviews are two-way streets, and getting a feel for your coworkers and your environment can be as important as landing the job. Also > Seriously they have 1,000 other qualified candidates lined up right behind you. I’d kill to have ten qualified candidates to interview. It’s a seller’s market.
- Fordec 5y agoAs an interviewer I've given you a heads up before the meeting what is being tested for. Some time to practice, do pre-work, research the company, etc. Dumping at the start of that meeting out of the blue this criteria, is not a two-way street equal reciprocation of that respect. If you'd kill for ten candidates, you can have him. I've had ~230 for 2 position this week and I'm testing for EQ also. Maybe changing requirements on people at the last minute fits in your work culture.
- 734129837261 5y ago~250 Candidates? Sure mate, I'd be surprised if at the end of your application process 5 of them remain and are still available. Companies are having a very hard time finding software engineers. For the first time in the history of the market, employee retention budgets are skyrocketing because recruiting is so expensive and hard. It's not rare to hear software engineers getting a sudden 30% raise out of the blue. Because they know we're in high demand, and they know that if we switch jobs we'll get a 30% raise, at a minimum.
- deleted 5y ago[deleted]
- owenmarshall 5y agoIf you truly have a position that is averaging 100 applicants, you are hiring on the margins. You either have a position that is so elite and aspirational that it is paid accordingly and people are flocking to it - and good luck filtering out the majority of resumes that Dunning-Krugered their way into your inbox before the elite candidate moves on. Or, you have a position with requirements so low that you can easily get candidates by the bucketful and take your time to sift through to find a diamond. Most of us aren’t hiring on the margins.
- _vertigo 5y agoThey don't anymore! Candidates are scarce these days.
- goodpoint 5y ago> Seriously they have 1,000 other qualified candidates lined up right behind you I really doubt it.
- Mountain_Skies 5y agoSounds like you should open a recruiting and placement agency if you have 1,000 of what everyone else is searching for high and low with limited success.
- decebalus1 5y ago> Seriously they have 1,000 other qualified candidates lined up right behind you. That is really not the case right now. It's REALLY hard to even find candidates in the first place. Especially people with OPs years of experience...
- 734129837261 5y agoI'm not a badass, I am just laying out a baseline: I know what I'm talking about. That's all. And no, many companies don't have 1k applicants that are qualified. They have 5000 applicants in the SF area, 4900 of them are unqualified, 80 who are qualified can't write English, of the remaining 20 candidates only 8 are still on the market once you reach them, 4 pass your filters, 2 accept a job offer, and only 1 of them shows up. That's far more realistic. In today's world, we're not looking for jobs, jobs are looking for us. Desperately so.
- lmilcin 5y ago> Before I am presented with a dumbass interviewer who throws a ridiculous question my way about algorithmic stuff, I prepare them: "Since we are both seeing if the other party is competent, I want you to know that I want you to also solve my questions. They will be slightly more difficult than the questions you pose to me." And that is extremely arrogant. I would end interview right now. I don't care who you are and how much experience you have, I believe in "no asshole" rule. You are interviewing to work at the company. The relationship is between you and the company and not between you and the interviewer. He has particular job to do which does not include responding to your out there whims. He is in a tough position, most likely with much less experience than you and still asked to do a difficult job of judging your experience. Be kind to people. Show your maturity by understanding what is the other person's role in the process. If you have so much knowledge and experience as you claim, you should have no problem going through the process -- your willingness to go out of your way to do this kind of shit does not show you are going to be nice person to work with. > I would never ask a question I can't also answer from the top of my head That is prerequisite, but not yet full solution. You are asking candidates for things you know which means you are comparing their experience to yours. What if they have different experience and met different problems? Ideally, you want to answer a question "Can they be productive at their new position?" which is a different question from "Do they know everything I do?" I always remind myself that it is likely every single candidate I interviewed knows something I do not. > Having worked at Apple, it doesn't surprise me one bit how slow they are developing simple features and fixing simple bugs. It's a red-tape hell full of not-very pragmatic engineers that are way too smart for the good of the company. Have you ever tried actually figuring out how make it more efficient rather than just complain at the engineers you are working with? Have you always been super pragmatic, fast engineer that can accomplish things at startup speeds? Or have you been just as everybody else, constantly complaining how productive you could be if only everybody around you were not dragging you?
- mixmastamyk 5y agoFound the victim-blamer, who blames them for speaking up for themselves.
- 5y ago
- skeeter2020 5y agoSo you mentioned you worked at Apple... twice, plus a bunch of other high profile companies & with 20 years of experience your interviewee techniques aren't really that applicable to almost everyone here. If someone ever responded like you say you do at the start of an interview my notes would read something like "lots of great experience, seems incredibly intelligent and skilled, total pretentious a-hole". You state a lot of desires for your employer and coworkers; I want to work with developers who are skilled, humble, joyful and nice.
- perl4ever 5y ago>You state a lot of desires for your employer and coworkers They also mention bubble sort a lot. Bubble sort.
- P_I_Staker 5y agoWhy bubble sort? Why?!?!?
- 734129837261 5y agoAnd Booking, now also twice. What can I say, Apple was fun. Stayed for 12 months and then I left. > If someone ever responded like you say you do at the start of an interview my notes would read something like "lots of great experience, seems incredibly intelligent and skilled, total pretentious a-hole". Well, I wouldn't act like I write on an anonymous online forum like this, obviously. So far I would say that most of my ex-colleagues would describe me as someone who is quiet, listens well, makes lots of notes on a paper, has a fancy pen with ink, and is surprisingly non-hipster despite all that. I'm very involved with helping other developers in my social network getting the most out of job interviews and salary negotiations. I know the right ways of getting the most out of performance reviews and how to nail an interview that would otherwise make one uncomfortable. But, point taken.
- deleted 5y ago[deleted]
- PragmaticPulp 5y ago> Before I am presented with a dumbass interviewer who throws a ridiculous question my way about algorithmic stuff, I prepare them: "Since we are both seeing if the other party is competent, I want you to know that I want you to also solve my questions. They will be slightly more difficult than the questions you pose to me." This is a great way to end the entire job interview process and make sure you're never called back again. Seriously though, I hope everyone reading this recognizes how ridiculous it is. If you go into interviews thinking you can neg your interviewer, refuse parts of the interview, and they're going to love it so much that they'll offer you a job, you're mistaken.
- mdoms 5y agoExactly. I can answer every question on my list, and you'd think any interviewer could because we've all used our interview sheets again and again and seen every caliber of answer. If you waste my time by telling me up front you're going to ask your own questions back at me, I will end the interview and thank you for your time. Not because I can't answer your questions, but because that's not what I set aside this 90 minute block of time for and you know that. I'm cringing just thinking what it would be like working with someone who had the gall to pull that kind of nonsense.
- hackmiester 5y agoI don’t think the GP would want to work with you. That was the point of their comment.
- stefan_ 5y agoRight, it's not the cringe question, it's that you don't respect mah authority in asking me back a cringe question! I think the insane people are running the asylum now.
- maccolgan 5y ago>If you waste my time by telling me up front you're going to ask your own questions back at me I don't see why a 20 YOE candidate with predictable capability has no right to also likewise determine how experienced, qualified or intelligent team members on the interviewing side are...
- swayvil 5y agoThese people are offended that you would question the competency of the employer and the interviewers. They say that you need to adopt a more servile attitude.
- goodpoint 5y agoSpot on. And these are companies to avoid.
- 734129837261 5y agoYeah, it's a filter we actually got from management at one company. They were looking for specifically agreeable type of developers. It was a consultancy and they needed to put 5 more developers on one of their big clients, and the client was getting sick of the previous people we had there; they were constantly fighting back against their idiots of managers. Boss wants employees to write many hours, not have a weekly phone call from the client asking to replace another team member... Agreeable people also stick around longer, because they think loyalty pays, and agreeable people rarely negotiate a good salary.
- w0mbat 5y agoOMG the red tape at Apple is unbelievable, but this is the first time I've seen anyone mention it. On my first day at Microsoft, I checked in code. At Apple it took nearly two weeks to get granted separate access to the apps's sourcecode, secret OS version, secret Xcode version, secret new OS headers (for some reason this was a separate line item), upcoming hardware versions (which I never saw anyway). Once up and running as a senior engineer with tons of experience, I had no autonomy and wasn't allowed to do something as trivial as add a comment without a bug database number and two code reviews.
- P_I_Staker 5y agoThat actually sounds pretty par for the course in many big tech companies.
- w0mbat 5y agoNah. I've worked at other FAANG companies and I'm afraid that none had anything close to the Apple level of red tape. I have barely scratched the surface of describing it.
- ganbatekudasai 5y ago> wasn't allowed to do something as trivial as add a comment without a bug database number and two code reviews. I mean... how else? If this is iOS for example, this potentially goes out to in the order of hundreds of millions, or even a billion or so, user devices. If you want the due diligence process not to apply for a comment, where do you draw the line? (Not withstanding that the comment may be wrong, or have an effect anyway. Yes, weird things happen at scale.) Even if there were a class of code changes that were deemed not to need review and a "bug database number", with every build on every lever of the multi level builds, changes often need to be removed, quickly. Because they cause bad bugs, or because they collided with other changes, or for any other reason. You want to be able to remove that change, however innocuous it may have seemed, in the quickest and most efficient way possible. Sometimes across multiple builds. Without upsetting hundreds of other engineers that have made changes as well. For that, "random commit without metadata" does not cut it. But nobody is going to be upset if you simply add your comment change or whatever reasonable cleanup change to another change in the same project, in order to not have to open a new bug just for cleanup for example. It will then be reviewed, and have its fate tied in case of problems, with the other code. When I worked at another FAANG, it was exactly like that as well.
- P_I_Staker 5y agoThere are lots of un-googleable problems out there. These questions are meant to identify the people that will probably fail to solve any non-trivial programming challenge (and maybe even some of the trivial ones). I'm not really opinionated about whether or not you should do algorithmic stuff in the interview, but I don't agree with your reasoning here. I see chatter about how most problems can be solved with google and your CS teacher lied to you (usually on reddit, less so on HN). My experiences have not matched this. I'd estimate that a good 40-80% of my problems don't have a solution on google. It's pretty rarely an algorithmic problem though. If you're playing that game, are there reasons that you'd ever be copy pasting sorting algorithms from the internet? Why bubble? Don't most programming languages have libraries available to help (especially python)? I work in an area with very little sorting, but I can't imagine myself doing that in a higher level language, or even in C.
- 734129837261 5y agoMy experience with problems that can't be solved with a Google search is limited. I tend to use existing technologies and I stick with an architecture that has been around for long enough to have proper support online. Still, sometimes I run into limitations with regard to TypeScript, for example. If that happens I'll go over the problem with more experienced developers. It'll be a pair-programming thing for several reasons: two pairs of eyes and two brains see and think more than 1, and you both learn something new, and you both have a little more brainpower available because you want to look good. At least I do my best a little more ;) > If you're playing that game, are there reasons that you'd ever be copy pasting sorting algorithms from the internet? Why bubble? Don't most programming languages have libraries available to help (especially python)? I work in an area with very little sorting, but I can't imagine myself doing that in a higher level language, or even in C. It's a silly example, I don't care what algorithm we're talking about. And no, many languages lack any sort of built-in sorting solutions. JavaScript (front-end and Node.js), for example, requires external libraries for performant solutions.
- klipklop 5y agoIt's interesting how many people replied to this rushing to defend algorithmic hazing. Sure this is sort of a "then the whole class started clapping" type post, but there is some merit buried in here. Somebody with 20 years experience I would like to explore that they are not a bullshit artist and not subject them to worthless leetcode questions that some desperate 24 year old will cram, pretend they never saw the question before and spam out on a whiteboard.
- hazza_n_dazza 5y agoone of the things interviewers look for is great questions from the candidate. servile drones make fine code-monkeys. but if you want to put it all together, you'll need to show some attitude. pretentious? maybe, but efficiency is key. have you ever seen the old Letterman gag "don't call me Chief"? Letterman interviews people on the street calling them Chief, and the person to win the game must day "stop calling me chief".
- blitzar 5y ago> servile drones make fine code-monkeys. and quite often the desire is to have servile drones.
- passivate 5y agoIMO there is a difference between production code and whiteboard code. Nobody expects candidates to come up with ready-to-ship production code in 10 minutes. I don't care much for arguments about which interviewing style is better. If you find success using your method, I'm happy for you, and I only care about results. Asking someone to write code has never let me down. It has exposed a lot of charlatans who puff up their resume taking credit for their teams work, but when you ask them detailed questions they can't back-up their claimed technical prowess.
- 908B64B197 5y agoThis reads like a guy who got rejected from Apple and is now venting.
- novok 5y agoFunny thing about apple last time I interviewed there, everyone is an independent interview team. If you want to work at apple, you can, you just have to keep on interviewing and interviewing and interviewing and eventually you'll get a bite.
- 734129837261 5y agoDid not get rejected, and I loved working at Apple despite the red tape. The only reason I no longer work there is because I moved to a different continent :)
- vagab0nd 5y agoThat's a great way to turn the process into a zero sum game. I don't understand why people do it. I once had a phone interview at a startup. The interviewer showed up 20 minutes late. And the first thing he said was, "I was in a meeting and before you ask, I can't tell you anything about it because then I have to kill you". ??? I just hung up.
- LAC-Tech 5y agoIt was a joke. The joke being that they received top secret confidential information, like in a spy movie.
- ganbatekudasai 5y ago> I mean, I'd rather have developers on my team who Google "bubble sort python" and go for a tried and tested open-source solution. I think it's pretty well known that the question, or the actual question for which this bubble sort question is just an example, is usually more about how good you are at solving a particular problem. For example, I'd rather not have developers on my team who Google "bubble sort python" and go for a tried and tested open-source solution, because I want my developers to know that bubble sort is an O(n^2) toy algorithm mostly used as an example for an intentionally bad sorting algorithm.