This was the best interview process I've ever experienced.
It began with a 30 minute phone call with an HR representative. She explained the role, the project I'd be working on, and the career growth opportunities available in the future. We reviewed my experience and she determined that I was a good to move forward, at which point she clearly laid out the interview stages to follow as well as the exact values they were looking for in a candidate. The interviewer made me feel comfortable and gave me clear feedback before hanging up and I felt great after the call.
The next interview was a 30 minute phone call with the manager of the team I would be joining. She explained the role, team structure and project in more depth, she outlined what her management style is like, and we discussed my previous experience in greater detail. Once again, she provided clear feedback about how the call had gone and let me know I'd be proceeding to the next round and what to expect (including how I'd be evaluated).
The next round was an 1.5 hour onsite pair programming interview with two Sr. developers from the team I'd be joining. It was so great. Rather than a surprise test, the assignment was to bring in any project I wanted (they offered examples of good choices) and work through it on my own laptop together with the team. I was told that the goal was to not only my abilities, but how I solve problems and respond to feedback from team members. (I chose one of my open source projects with a similar tech stack to ecobee's, chose a task that included most of the stack, and spent LOTS of time planning the steps we'd follow during the interview.) The session felt informal and the interviewers were collaborative and encouraging while also offering helpful suggestions and asking really useful questions at key moments (generally about how to make the code more resilient). It never felt like they wanted me to fail and I learned great stuff from both of the devs (both were great and smart). We had 15 minutes to spare at the end, so both devs offered to answer any questions I might have. Like every other round, this was a surprisingly pleasant experience and I felt great afterwards.
Immediately after the pair programming, I met with the same manager I'd spoken to on the phone as well as the Director of Web Development. This was a free-flowing discussion of ecobee and its values that felt comfortable and informal. I wasn't asked any direct questions, so I think the goal of this round was to get a sense of how I responded to ecobee's values and whether I would be a good culture fit. I was given a chance to ask questions and both gave very useful answers. Yet again, both people were lovely to spend time with and I felt good afterwards.
Following the final interview round, the HR representative I'd spoken to on the phone took 5 minutes to ask how things had gone, explain all of the next steps (including a clear timeline), and answer any questions I had.
As promised, I heard back from them the following day by email, a day later by phone, and the day after that the process was complete.
Compared to the typical developer interviews (which generally include a fair number of "gotcha" questions and abstract whiteboarding puzzles), every round felt sane way to evaluate my experience and how I would fit into the team and their daily work. If you want to restore your faith in the hiring process, apply to work at ecobee. 😉