Live data from Hacker News

Getting a job at Apple without going to college or doing LeetCode

aheze.substack.com

261–270 of 399 posts

Re: Getting a job at Apple without going to college or doing LeetCode

#261

> Some teams might ask you to do LeetCode, but in my case, I didn’t even have a technical interview I'm a bit surprised and in denial about this. Maybe this was exceptional hiring practice during the COVID craze which has also resulted in most of the recent layoffs? I say that simply because I've personally and of everyone I know, have never encountered an interview that didn't involve that.

Apple is an incredibly heterogeneous company and conditions from interview practices to tech stacks vary incredibly from team to team.

Re: Getting a job at Apple without going to college or doing LeetCode

#262
post #255

Earlier quoted context omitted.

>downright offensive at worst People are so easily offended these days. Having said that, if you work for a company and you get fired and blacklisted, you still don't eat. If you work for a wage, you HAVE to work for somebody or you starve. If you work for somebody, that somebody has a lot of sway over how your life looks. Better be good at kissin' ass. Also, if you don't think the US healthcare industry will take ev…

You’re a wage slave when you work for yourself too, probably even more so. You can’t even completely take a week or two off in most cases. Your work eats your entire life.

>You’re a wage slave when you work for yourself too, probably even more so.

It certainly can be like that especially early on. Hopefully you would grow enough to hire good people to manage the business. If you work for somebody though, that will never happen.

Re: Getting a job at Apple without going to college or doing LeetCode

#263

Earlier quoted context omitted.

Using the word "wageslave" to describe 300k TC office workers is out of touch at best and downright offensive at worst.

ah, yes. The American Dream of living in a 50 year old shitbox fixer that costs $2M in the suburbs of Cupertino. If you can make that much remote out in Nebraska then sure, fine. There are people doing a lot worse. But when doing much better looks like that, what even is the point?

people choose to live in bay area not because its housing situation, but despite of it.

mainly because cutting edge R&D type technology has been developed in the area and alternatives to SV have not developed yet. its not even pay - I would say bay area pay is bad, because of cost of living & taxation.

But opportunities for growth are unmatched in bay area

Re: Getting a job at Apple without going to college or doing LeetCode

#264

Earlier quoted context omitted.

You don't know how to transform the string "12345" to "12346" in a mainstream PL? I don't think "valid applicant" and "doesn't really grok strings/types" are compatible, outside of intern/maybe junior positions. The filter works.

Eh… You’re given `99999`. Increment it. A naive approach would turn this into `9999:`. Making this work is a bit complicated and involves memory reallocation if you’re in a C-like language and you need to increase the length of the string in order to increment it. You’ll probably want a system where the caller passes a buffer of sufficient size to use for rewriting the string, in case you overflow. Make sure to have…

Ironically, you just answered the "difficult" interview question in a few lines of casual commenting.

If you're not allowed to use atoi and itoa, it's still not all that difficult to do in C. Incrementing ASCII characters and handling carries is really trivial.

I'd be kind of worried if I was hiring a C developer who didn't know the basic things you described above. I'm not sure why you think those are esoteric concepts that we shouldn't expect developers to know.

Re: Getting a job at Apple without going to college or doing LeetCode

#265

The problem is that "leetcode" is a definitely a thing that exists in "FAANG" interviews. The biggest stumbling block with leetcode is that you shouldn't be programming like that in real life. "make a linked list" no, just use a library like everyone else. "Implement addition in python but with string inputs", "no you can't use the built in x" All of that "clever" shit should be filtered out at PR/MR/diff review time…

You do know we hire people who have to _write_ these libraries, and they can't just defer to something else with no consideration to time or space constraints. None of the questions are designed to be brainteasers or 'gotchas' but to get you to start discussing the problem and show your depth of knowledge/expertise.

If I ask you a question along the lines of "write me a function to tell if two number ranges intersect" and your solution is to grab a library instead of writing a simple predicate...then perhaps the role is not a good fit.

"Use a library for everything" is how we ended up with left-pad on npm.

Re: Getting a job at Apple without going to college or doing LeetCode

#266

Earlier quoted context omitted.

I'm happy for you that you've found a job where the things Leetcode emphasizes has merit and importance and value in your day to day work. Everyone who's on the other side of the Leetcode debate from you wants the exact same thing - an interview process that is representative of the actual day-to-day work. As a Web developer, inverting a binary tree is not a thing an employer has ever asked me to do.

Yes. You, me and the GP commenter seem to all be vigorously agreeing with one another. Job interviews should be based on what the role entails. If that includes data structures and algorithms, so be it. If not, leave them out! As the GP commenter said: > It really depends on what you're working on. ... It's all context. I brought it up because many (most) commenters in this thread seem to be claiming that this knowle…

> many (most) commenters in this thread seem to be claiming that this knowledge and skill is never useful.

Those commenters are making generalizations because many (most) jobs in the industry do not find that knowledge and skill useful. Certainly specialized edge positions exist.

Re: Getting a job at Apple without going to college or doing LeetCode

#267

Earlier quoted context omitted.

It seems fairly straightforward to just ask verbal questions? For example, if the position is mostly coding C then just get them to explain how some X interacts with some Y and how that interacts with some Z. Maybe with a copy of of K&R and get them to point to page so and so. Do that a few times, maybe use a whiteboard, and I think any experienced C developer will be able to tell who's faking it and who really under…

Not the point you’re making but in a C shop, if I interview and somebody pulls out K&R in 2023, they’re not getting hired. I get the wider point you’re making, and yes, a chat can help. Elsewhere in a reply to this I talk about how I personally like to do that, but the problem is, a significant number of people can talk about coding but can’t actually code. I once interviewed somebody who had passed 3 previous calls.…

A Zed Shaw's Learn C the Hard Way fan, I see.

Re: Getting a job at Apple without going to college or doing LeetCode

#268
post #75

The problem is that "leetcode" is a definitely a thing that exists in "FAANG" interviews. The biggest stumbling block with leetcode is that you shouldn't be programming like that in real life. "make a linked list" no, just use a library like everyone else. "Implement addition in python but with string inputs", "no you can't use the built in x" All of that "clever" shit should be filtered out at PR/MR/diff review time…

I'm not going to defend "leetcode grinding" and its pathologies but TBF this is problematic: > "make a linked list" no, just use a library like everyone else. > "Implement addition in python but with string inputs", "no you can't use the built in x" All of that "clever" shit should be filtered out at PR/MR/diff review time. Sure, those statements (just use an existing library) are what you'll do in practice especiall…

> Sure, those statements (just use an existing library) are what you'll do in practice especially as a beginner.

I think it's really not about "beginner" vs. "expert", but moreso about the specificity of your role. If you're tasked with making general cloud services, it's probably fine. As your role gets closer to core systems/algorithms engineering, obviously that changes.

> But there is value in asking these kinds of questions.

There is value knowing, but the dynamic of an interview make things like this harder to ask/harder to answer.

> One is "do you know what's going on under the hood?" On another post I just saw a comment in which someone advocated counting the number of occurrences of something in a list by filtering it and then getting the length of the result. This is almost certainly a terrible solution as it allocates memory (which has to be freed) in what can be done in a single quick pass.

In the real world the validity of this solution depends on its input and use. Also in the real world, especially if you're not on one of the above-mentioned specialist teams, it's usually more important to be readable and maintainable instead of just purely performance oriented. So a single pass solution that's harder to grasp at a glance becomes less desirable than multiple passes as long as your performance requirements can afford it.

> By asking you such a question the interviewer can learn if you have some idea of the tradeoffs and why something might be a good or bad idea.

Totally, but the issue becomes "Can you figure out an algorithm on a whiteboard", instead of the (as you've already agreed) correct path of "Can you work through tradeoffs of one implementation vs. another". I think this question could pretty easily be presented in a way that isn't a quiz and also allows the programmer to demonstrate their problemsolving ability without seeming adversarial.

Re: Getting a job at Apple without going to college or doing LeetCode

#269

Do Apple attract the best software engineers? If I were a talented hardware engineer, chip designer, hardware designer - I'd want to work at Apple because Apple attracts the best people in these fields. I imagine that Google, Microsoft, Meta, Amazon get the lion share of the best software engineers. No one has ever said Apple services, like the iCloud and Apple Music backend, or Siri, are quality piece of software en…

Apple has pockets of excellence. It used to be most of the company, something about how Jobs ran it, inspired people much overqualified to apply, and not even for very high salaries. At NeXT infamously a PhD (EDIT: in comp-sci, or physics?) worked as a janitor as he simply wanted to be around Jobs and cool smart people. Currently entropy is getting to Apple in many ways. iTunes and Apple Music didn't use to be medioc…

Hasn't iTunes been mediocre since the mid-2000s?

Re: Getting a job at Apple without going to college or doing LeetCode

#270
post #38

Earlier quoted context omitted.

My understanding is that they use it to filter candidates a bit. FAANG positions get loads of applicants, so they have to find efficient ways of thinning the herd a bit. The correlation between people who are willing to grind leetcode and who turn out to be good engineers is high enough that it's worth it for them to keep as a tool to sort the massive pile of applicants they get. Of course, hiring someone purely on h…

> The correlation between people who are willing to grind leetcode and who turn out to be good engineers is high enough that it's worth it for them to keep as a tool to sort the massive pile of applicants they get. One "subtlety" this misses is that leetcode-style trivia tests only work for those who are willing _and able_ to grind leetcode etc. There are many who have the aptitude and experience but have e.g. childr…

> One "subtlety" this misses is that leetcode-style trivia tests only work for those who are willing _and able_ to grind leetcode etc.

As a parent of young children, I think this is greatly exaggerated.

If you're a skilled developer with several years of experience then you shouldn't have "grind" leetcode for 10s of hours per week for months on end. It's trivial enough to do a few problems per week on a break or during some down time.

I think too many people refuse to even start because the difficulty has been exaggerated to the extreme. When I was mentoring college grads some of them would grind leetcode for months and months and even delay their interviews, then walk away dumbfounded when their interviewers didn't ask them anything resembling a Leetcode Hard. Many of them got questions that were basically Leetcode Easy questions.

They had all been convinced by the internet that they needed to grind Leetcode until they were miserable, but it's not really true unless maybe you're starting with almost zero knowledge of algorithms and data structures.

Post reply on HN