I was contacted by a recruiter a few weeks after submitting my resume online. We had a brief discussion where she tried to get a general feel whether it would be a good idea to bring me in, basically asking about my previous role and asking a couple of general JS concept questions to see if I could at least talk the talk.
Next, I had a remote coding session, coding up some JS/HTML/CSS. This was pretty simple, an despite making some mistakes, they went ahead and took me in for an on-site.
The on-site was 4-5hrs of back-to-back interviews where I met with members of the team for which I would be working, and additionally the engineering director. There were some questions similar to the remote coding session, a very simple algorithm question (pretty much as easy as you could get, despite me still fumbling with it since I am terrible with remembering algorithms), a high-level architectural discussion about building a widget API based on a visual design I presented from my portfolio (I thought this was cool since it was on-the-fly), and a visual/UX whiteboard challenge (another favorite).
Everyone was really nice and they all made me feel comfortable even if I struggled. I think that they may have overlooked some of my mistakes since I had just held a key front-end/UX role at a startup prior to applying, and they must have appreciated my experience. It was great that they were willing to look at the larger picture and could really understand the value I was bringing to the table.
I was extended an offer a few days later, and the compensation package was competitive and within my acceptable range. After struggling to choose between competing offers, I asked to meet the team again over lunch to get a better feel for the people. By the end, I felt that I knew I wanted to work there since I felt very comfortable and compatible with the team members.
In the end, I went with my other offer, but I felt that the whole process with CarGurus was extremely professional and they made me feel valued throughout my time. They were also friendly and casual enough so that I felt I could be myself and would be welcome on the team.