tl;dr: three phone interviews (generic, technical, follow up) and an on-site eight hour interview broken into eight sections (meet manager, technical, riddles (yes, riddles), technical follow up, technical (in different area), HR, social (lunch), and operations director one-on-one). It's thorough for a reason.
The process is, if nothing else, thorough. This can be very frustrating, especially if you are looking for a job on a timeline. However, given my last interview process, I'm glad this was thorough.
The first step is to submit a resume, which you should hear back about in about two weeks. You'll either get a 'rejection' letter or an invitation for an interview (I received the latter). About two days later I had my first generic phone interview where the interviewer gets to know the interviewee to see if they are a good fit. It ends in a riddle. If this goes well (it did), you go to a technical interview.
After this, depending on you did (I did well enough, but the questions were a bit tough (experience with Linux, difference between GIS tools, how to check is a server is connected to the internet / operational, difference between http/https) and very generic questions (what is our product, what is the point, why use it, etc). This is, however, open-resource, so you can go on the internet or whatever you'd like.
After this (probably three weeks since my first application), I got another check-in call from the first interviewer asking me how she thought it went and asking a lot of the same questions as my first interview (for consistency, perhaps?). After this, another week went by and I was invited for an on-site eight hour interview, compartmentalized into different areas, about 1/3 technical, 1/3 general (i.e. meet manager, talk to HR, get an idea of how things work), and 1/3 unusual (an hour of riddles (so much fun), social (lunch with coworkers), and meeting with Operations Director).
After another week or two you find out if you're hired!