The interview process was brutal but I had a really positive experience. I was told I could choose any programming language (many would suggest to use Python). I knew the role I applied to was primarily C programming so I decided to do everything in C.
The first round is a 45min technical screen. Equivalent of an easy level leetcode question.
The second round is the virtual on-site/on-site interview. Five or sic one hour long technical interviews, all one-on-one with team members of the team you are applying or an adjacent team.
The third round is a short one-on-one with a higher up manager in the org you are applying (i.e. the hiring manager's manager). Based on some discussions with friends who work at Apple and the recruiter, it seems if you pass the second round, you probably got the job. The manager asked my about some specifics of projects I worked on, a difficult bug I resolved, and why I want to work at Apple.
I suggest buying leetcode premium and studying all questions that Apple is known to ask.