Not the easiest interview process, but if you're able to get medium problems on LeetCode down, you'll be fine.
(1) 30 minute interview with a recruiter. They really try to get to know you as people and even give you a texting phone number. It's really laid back.
(2) 1 hour code assessment with a developer. Half of the time was them going through resume-applicable questions as well as testing you on some technology they use (CI process, etc.) They use CoderPad, and they have you implement an algorithm problem on there. They select a custom variation of something available on LeetCode. Basically, you need to implement it entirely, or else you fail (it can be inefficient). Walk through on how to make it more efficient (just verbalize and if you have time, do it). I didn't get to finish my efficient implementation, but I told him what I'd do and told him my thought process when it comes to complexity. The interview ended on questions about databases (a SQL-querying question).
(3) 5 hour in-person interview:
---> Round 1: This was the bar-raiser. Basically, this guy can veto you out if he hates you. This is entirely on your resume, so they will drill you on that. The guy sees if you can think like the team, and he'll go through some projects and have you explain in-depth on what you did.
---> Round 2: This was a typical coding interview but with lunch. They have a laptop where you implement something on CoderPad, and you have a whiteboard behind you for you to explain something. Once I implemented it, he asked me how to optimize it for a specific use-case. I got stuck, so he gave me a hint, and I was able to nail it. Use the interviewer for help-- treat it more like a pair programming exercise and converse and bounce ideas off of him. Make sure to fully explain yourself, but be quick.
---> Round 3: This was another coding interview just like the last one. But there was a bit more background on my resume on this one. The problem was more like a hard puzzle. I didn't fully understand the problem, and I didn't clarify, yet I pushed onto implementation. Don't do this, since this was the main reason this guy didn't pass me.
---> Round 4: This was a System Designs question. Basically, how would you implement something like Mesos or Facebook messenger? I prepped up for this by using "Grokking the system design interview." But basically, show them your thought process and constantly run considerations and fixes by them. Think: implementation, scalability, bottlenecks, etc. Just be creative. Even if you think of some metric that might be useful to calculate load that's possible to come up with, run it by the interviewer. Just have a cool conversation.
---> Final Round: This was with the overall lead. He goes through your resume and really gets to know you behaviorally. He then gives you a fairly simple coding question. I did really well here.
They, then, have a huddle where they discuss the interview and give you an offer or not. Basically, I had one interviewer that was unsure, and everyone else liked me, so I got offered the job.
No background/drug test.