As others have said, the process involves at least (1) a phone screening in which you are asked to complete a coding exercise and to discuss your interests in and experience with software development generally and (2) a day-long on-site interview spree with various team members. The phone screening part of the process was great; the discussion with the interviewer was pleasant, and the coding exercise was at just the right level of difficulty for the position (there was, fortunately, no "FizzBuzz" here). The on-site portion of the process was less great, mostly due to details involving the particular position for which I (thought I) was applying and the way in which the on-site, two-hour-long coding session played out (so, my experience may not generalize, although some of the other responses here seem to suggest that it does).
Without getting into too many details, I can say this: for the on-site coding session, I was seemingly expected (unexpectedly!) to be proficient with certain niche tools and languages -- well, they were niche at the time -- that were neither mentioned on the job advertisement for the position nor mentioned at any other point during the interview process. Since I was *not* proficient with these things (and never made any pretense otherwise), the result was a very awkward coding session that was probably, for the most part, a waste of everyone's time. Since Opower expects so much of one's time during the interview process (and asks a decent amount of their own employees in this regard, as well), I would have liked for them to have been much more up-front about this. Because they were not, I was left with an overall negative impression of their interview process. (I should say that it's *possible* that part of this process was intended to test how well I was able to "roll" with unexpected challenges and to learn on the job. However, no real indication was given that this was the case, and, given that I was able to learn the aforementioned tools to some degree on-the-spot and complete some of the coding challenges, but still received no offer -- every other aspect of the interview process had gone very, very well -- I have some doubts that this is so. What's more, I know that the tools that they tested me on are tools that the company uses in production, so it still seems that it would have been sensible to mention them on the job advertisement, in any case.)