edit: At the company I am leaving, currently the process is:
- After initial email, first call with CEO to assess match, culture, etc - Interview with me for an hour. We do 2 small coding challenges (your own editor, you chose the language, get information before hand, etc).
If 2nd interview goes well, we put an offer, if it doesn't, we give an option of them doing a small take home (4h max, but we hope no-one does more than 2h) if they want to continue with the process. If this goes well, offer, if it doesn't, we may have another call to let them 'explain' their code and solutions. At this point, is either an offer or a no.
Yes, technically it can be 4 interviews, but they are mostly to give more 'opportunities' to folks that may not be as good in a type of interview vs another type.