I applied through a recruiter. The process took 2 days. I interviewed at Smith Micro (Pittsburgh, PA) in Nov 2017
Interview
Firstly you would be contacted by a recruiter. If your profile matches the company needs, then you would get another call from one of the senior level developer (probably from the same team you are applying for). If that one pass well, then you would get for an on site interview. There you should have 1 hour session with a (most likely) 2 developers, who would ask you mostly basic technical questions: about some common Java structures, some basic algorithm problem and some database modeling and querying based on that model. After that you should have again 1 hour (or less) session with a manager, which should be less technically and more personality questions, expectations and similar stuff.