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. There was less "do you have searches memorized?" and more "how would you handle this situation?" It was 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 a child class to a parent class) keeps its value the same or not; this isn't something people normally think about, but it 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 get 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).
The infamous buddy bitmap question.
Specifically, the ability to whiteboard some code and then determine whether it works or not, given a number of boundary cases and other corner conditions.
The following metrics were computed from 37 interview experiences for the Pure Storage Software Engineer role in Mountain View, California.
Pure Storage's interview process for their Software Engineer roles in Mountain View, California is very selective, failing most engineers who go through it.
Candidates reported having very good feelings for Pure Storage's Software Engineer interview process in Mountain View, California.