I was initially contacted by a recruiter who asked if I'd be interested in working at Pure. I was wary about moving from Madison, WI to the Bay Area; I'd been in Madison for years and intended (at the time) to stay there. When the recruiter heard I was interviewing at Google (hopefully for the Madison, WI office) he convinced me to interview at Pure as well while I was in the Bay Area. He described the interview process: an online quiz, a phone screen, and an afternoon of in-person interviews. It's probably worth mentioning that, since I had just finished my degree, Pure would be the first interview I had done in more than a decade. Since my goal at the time was Google, though, I wasn't worried; I think that helped quite a bit.
Before I go into detail, a quick summary. I found the interviews harder but more interesting than the other companies I spoke with; Google in particular to name-drop. There was less "do you have searches memorized" and more "how would you handle this situation". Very nice to see.
The online quiz was interesting for its breadth; it asked questions about systems, compilers, and architecture. Not to go into painful detail, but it should be straightforward for anyone with a good grounding in computer science (not necessarily just programming). For example, can a CPU correctly represent 1/10 as a floating point value, or is there inherent rounding error?
The phone screen was somewhat stressful since it touched on an area that I wasn't expert in - virtual methods and handling multiple inheritance. Multiple other reviews have already gone over the questions, so I won't rehash them again. My advice is to think about whether casting a pointer (from child class to parent class) keeps its value the same or not; this isn't something people normally think about but will get you on the right track. One amusing note - I passed the interview, but the interviewer ended with "I think we can end here". I thought I'd washed out - and at the phone screen! Then he went on to say he was looking forward to meeting me in person.
The in-person interview came the afternoon after a long morning of travel, but the folks at Pure were very helpful in working out my schedule - with multiple plane delays. My first session was with the CTO and his infamous buddy bitmap question. I didn't find it that bad; while he was hard to read and not exactly friendly, he's no worse than my adviser in grad school was. I was used to not having my hand held, after all. More advice: think about corner cases, how you can push information forward through an algorithm to avoid having to calculate it again, and understand the costs of executing code at an assembler/hardware level.
The remaining interviewers were a lot less stressful, and I was happy to see that they were focusing less on algorithms (I got enough 'implement a DFS!' the next day at Google) and more about underlying knowledge (how can you can screwed by concurrency) and the ability to work with people. I ended up in a very nice extensibility vs. security discussion that arose from co-designing a callback interface.
Overall I found the interview much more interesting than any of the others I had later. I was a little concerned about moving my family to the Bay Area and joining a startup, but the folks at Pure worked with me to allay those concerns.
I was called two days later (at the airport) by the CTO to let me know they were planning on making me an offer, and were very flexible in waiting until I had heard back from the other companies I interviewed with (which took a lot longer).