Smooth, transparent & practical.
There was a take home exercise which involved DFS based problem solving. About 3 hours, you must write unit tests as well. In order to move to onsite stage, all your test cases must pass.
Onsite stage comprises of 5 rounds, 1hr each including a lunch interview with the hiring manager. All interviewers were extremely friendly and easy going from the onset of the interview & happily answered any questions that I had.
1st round: Mostly involving a system design problem white-boarding. Involved concepts like real-time systems, HBase concepts & data modeling, Hbase vs Redis.
2nd round: Another system design round involving different concepts. Included Kafka, distributed systems, CAP theorem, Caching principles, Redis/In-memory DB.
3rd round: Lunch interview, manager happily answered all my questions about the team, Salesforce culture, growth opportunities, etc.
4th round: Coding and some CI/CD concepts. Some conceptual knowledge questions around Jenkins based deployment and then moved to coding question. LRU cache design, followed by rundown of the algorithm using some test cases to test cache eviction, cache hit and miss scenarios. Another follow up was alternative solution to the one I offered.
5th round: Last interview with a Data Scientist, which started with conceptual questions around Machine Learning algorithms, differences between supervised and un-supervised learning. Algorithms such as Naive Bayesian and K-means clustering were asked, followed by writing the code for K-means clustering algorithm. Followed by asking me run down the code with an example and explain how cluster centers are re-computed and when does the algorithm stop. After this, I was given a use-case and asked to design a system around it which involved training and deploying ML models.