Went through all four steps of the hiring process but ultimately did not get an offer. No hard feelings; there appears to be a fairly competitive pool of talented candidates for this role. Following is my detailed experience, which may or may not be the same process you may go through.
1) An initial phone screen - covering a basic overview of the company and the position, as well as some discussion of resume and qualifications.
2) HackerRank coding challenge - 75 minutes to work on a couple of algorithm-developing puzzles (with limited choices of programming languages)
3) Technical phone interview with screensharing app -
>One (1) focus area that you feel most comfortable with. Options include:
Object-Oriented Design – software design, advanced object-oriented programming concepts
Control Systems – classical control, modern control, and non-linear systems
Signals Processing – concepts such as: aliasing, convolution, and transforms
Embedded Systems – real-time operating systems, scheduling, and general operating system concepts
>Programming concepts: programming constructs, data structures, OOP.
>Any two (2) of the following four (4) choices in programming languages:
C/C++,MATLAB or Python, Java, JavaScript and Web Concepts
>Math – problem-solving and application of: (discrete math, computation, and algorithm theory etc.) OR (calculus, differential equations, and linear algebra etc.)
4) On site interview - Almost a day long affair. Began with technical whiteboard interview, followed by behavioral interview with hiring manager. Lunch with other app support engineers where you can ask more questions, followed by mini-tour of the place. Ended with final behavioral and job-related discussion with HR.