Skip to content

Instantly share code, notes, and snippets.

@aheze
Last active August 17, 2023 20:44
Show Gist options
  • Star 1 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save aheze/2ce4ba0ba3cbb240dba493330187984f to your computer and use it in GitHub Desktop.
Save aheze/2ce4ba0ba3cbb240dba493330187984f to your computer and use it in GitHub Desktop.
I just finished interning at Apple so I wrote this up. It's kind of long, but I hope it clears some stuff up about LeetCode and Big Tech. I also posted this on Substack [with images](https://aheze.substack.com/p/getting-a-job-at-apple-without-going) if it's easier to read. Here goes!
- Learning To Code
- Prior Job Experience
- How Apple Found Me
- The Interview Process
- The Internship
- Big Tech
- College
- Conclusion
### Learning To Code
I started coding back in 2019. I wanted to make apps, so I bought Angela Yu's [Udemy course](https://www.udemy.com/course/ios-13-app-development-bootcamp/) on iOS development. I checked out some books from the library — [Sams Teach Yourself iOS 9](https://www.amazon.com/Application-Development-Hours-Teach-Yourself/dp/0672337673) was really helpful, even though it was outdated and for iOS 9. I also bought Matt Neuburg's [iOS 11 Programming Fundamentals with Swift](http://iOS 11 Programming Fundamentals with Swift) as a reference, but it was extremely technical and so I set it aside.
I followed Angela's course for a couple months until I got halfway, then got straight to work building my own app. I called it **Find**.
Lots of people talk about getting stuck in "tutorial hell" — watching endless courses and tutorials while being unable to actually apply what they learned. I was able to avoid this by jumping right into the app dev process — I'd code until I didn't know what do and then search up a solution. I wasn't worried about efficiency or the "best way" to do something — you naturally learn this stuff after doing it for a while. Angela's course was useful for getting started, but to get a good grasp at what you're doing, you should be building projects.
Another thing that helped was Stack Overflow. It's been kind of dead ever since ChatGPT showed up (and also the community is not at all friendly for newbies), but I'd still recommend [making an account](https://stackoverflow.com/users/signup). You'll be able to ask questions, but more importantly, you can answer other people's questions. "Learn by teaching" as they say.
Anyway, it's 2023 now and Angela's course is outdated :( so I'd recommend starting with Paul Hudson's [100 Days of SwiftUI](https://www.hackingwithswift.com/100/swiftui) or [100 Days of Swift](https://www.hackingwithswift.com/100). But again, the tutorials are just for starting out — don't waste your time in tutorial hell and get right into building.
### Prior Job Experience
I didn't have much going for me besides my side projects. I worked at [Hyper](https://hyper.online/), a startup working on VTubers for iOS. I got the job via Twitter — Aaron (the founder) saw me posting my side projects and noticed that I liked anime in my bio.
Besides tech jobs I worked at Rubio's Coastal Grill and was a cashier at Marshalls.
### How Apple Found Me
Remember my Find app? Someone on the Photos team at Apple saw it and DM'd me on Twitter. [Link to screenshot](https://imgur.com/a/1D8QXJ5)
I had been posting about Find on Twitter for a while. Here's the [promo video](https://twitter.com/aheze0/status/1579305528018497536) that I posted for the v3 update. Here's an [animation](https://twitter.com/aheze0/status/1573753632549281792) I made for the onboarding screen and a [swift package](https://twitter.com/aheze0/status/1574616440941948928) that I published.
I think it's worth being active on Twitter — even after Musk's takeover, there's a lot of tech bros and industry people there. People will see your stuff and reach out to you. You'll get opportunities that you otherwise would have missed out on — for example, normally you need to be in college to apply to Apple, but I was able to get around that.
### The Interview Process
In November 2022 I went to Apple Park to talk with my would-be manager. We had lunch and walked around the campus.
We talked about what a role at Apple would look like, and decided an internship would be good (since I still wanted to go to college). I remember that my manager specifically pointed out that he didn't care about where I went to school or my GPA — he said something like "it only matters what you can do." That day I also met one of my future coworkers, who gave me some tips on improving Find's scrolling performance.
In February 2023 I went back to campus to meet the rest of the team. I talked with another manager about old age, college, and kids. It was really chill, but this was probably the behavioral assessment — they wanted to make sure I wasn't some complete weirdo.
There was no LeetCode or technical interview. I signed the offer letter in March.
Obviously, this wasn't your normal entry-level big tech interview process. I asked some other interns about their experiences — most people had a coding problem (one of my friends got two-sum, the first question on LeetCode) and the personality interview was more important. But I'm sure that at a higher position, for full-timers, there's plenty of people who get recruited and get fast-tracked in the process. There's nothing stopping you from taking shortcuts or a different pathway when applying for jobs. Do something different, like DM'ing the lead for the team you want to join. Make them *want* to hire you, and the interview turns into a free tour of HQ, lunch included.
### The Internship
Working at Apple was more work than I expected. I thought I'd be going in, having lunch, then leaving. I saw vlogs from people at Meta showing off the rock climbing wall and bowling alley that they had right in the office. My friend from Google was talking about how she had a couple meetings per day and the rest was just free time.
Well, not at Apple. I was there from 8 to 8, to catch the shuttle. Before my intern presentation I was working up until 12 (but that's on me and my bad time management). You had to pay for breakfast/lunch/dinner and even the gym ($18/month). The prices were fair, but it's not like the free food and stuff you get from the rest of big tech.
It was really fun. I was doing what I'd been doing for several years, but this time I was getting paid. I met some really cool interns and people from the design team who were absolutely cracked.
We had free corporate housing (got to be 18+ for this, so my friend actually had to live with his cousin) in this brand-new complex in Mountain View. The doors had smart locks on them that seemed cool, but were always broken. There was a hot tub on the roof complete with pool table and everything.
About the work, I was there from June 5th to August 11, so my time was relatively short and I had to cram to finish my stuff near the end. The corporate structure was definitely way different from what I was used to, but it's well managed and gets stuff done. If you get the chance, Apple's really worth checking out.
### Big Tech
When I browse this sub there's so many posts about LeetCode, DP (dynamic programming, not double penetration), FAANG, etc... there's people sharing tips on how to "crack the interview" and people saying "the best approach is repetition."
I feel like people are so fixated on LeetCode and all these other coding questions that they're forgetting that this is just one path to getting a job. There's plenty of other ways that aren't as hard and don't require hours grinding over some dumb problem. Is it really worth grinding so much? Studying the most advanced Data Structures and Algorithms that you'll easily learn just from building? And after getting the job, are you even going to use the stuff that you spent so much time practicing?
But it's true lots of companies now just use LeetCode as their main differentiator in hiring. We can thank Google for this flawed hiring process — asking the same boring, time-consuming questions that test for proficiency in a roundabout way. Is it a coincidence that Apple was the only Big Tech company that didn't do layoffs?
The LeetCode craze is a real problem in the field. Sometimes it feels like all the high-paying jobs require it, and as a result we see all these people burning themselves out over useless questions when they could be developing their skills organically.
Eventually I think Big Tech and the rest of the industry will move away from LeetCode and shift to project-based interviews. They might give you a take-home assignment and you can show them how applicable and relevant your skills are. But until then, I'd recommend working on cool side projects and doing stuff that matters. You'll become irresistible :)
### College
I'll be going to college in September, so I can't speak much on it yet. I just know that it's not necessary and even not applicable for some roles, like iOS dev. So don't stress if you didn't learn a thing.
[How do I fix my career? I'm a Software Engineer who learned northing during college](https://www.reddit.com/r/cscareerquestions/comments/15swcy4/how_do_i_fix_my_career_im_a_software_engineer_who/)
### Conclusion
So that's how I got my job at Apple without going to college or doing a single LeetCode question. But I'm not saying that you should drop out or stop doing LeetCode completely — you need college for stuff like ML research and you need LeetCode for backend. It's just that I see a lot of people just trying to get a job — any job — in tech, and they constrain themselves to a specific role or profile. That's definitely not the play in this horrible job market.
Thanks for reading!
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment