There are 3 parts. The phone screen, remote programming test, and final onsite. Phone screen is pretty straight forward background information, interests, simple programming question, etc... Now the remote programming test is the tedious part. It’s 3 hours. 2 hours coding + 1 hour of discussion and quite challenging for an entry level position. Although you are allowed to use online sources to complete it, it takes up a lot of time for just one step of the process. Then the third stage is the final onsite interview consisting of system design and software architecture questions. It’s a small company but the hiring process is quite rigorous and time consuming.