0. Phone screen with recruiter. Very friendly, honest, listened well.
1. Met with the Director of Engineering for coffee, 45 - 60 minutes. Learned more about the stack, the company mission, the general engineering philosophy, the kind of engineers they were looking for and why.
2. Came in for on-site interview. Due to the nature of their work (cybersecurity, digital identity, etc.), you have to be escorted throughout the offices by an employee for security reasons. Don't worry--it's not intrusive or overbearing. Mostly, it's nice to have someone show you around, introduce you to folks, and help you find the restrooms and breakroom. The on-site was pretty standard:
One hour with a panel of three product owners and project managers. We talked about where the company has been, where it's going, where I might be able to help, what they liked and didn't like about working there, what was going well and what needed improving, how the etc.
One-hour design problem with three engineers--very open-ended and collaborative, with folks even jumping up to help sketch on the whiteboard. A few minutes at the end for questions.
One-hour coding problem with three engineers--also very collaborative and friendly, more of a conversation than a test; they were fine with giving small hints when I explained my goal and what I had tried so far but got a little stuck. A few minutes in the beginning to talk through the frameworks and tools I was familiar with, any interesting challenges I had solved recently, my goals as an engineer, some non-coding technical questions to gauge my knowledge...that sort of thing.
3. They got back to me the next day! The recruiter first asked for my impressions of the experience. Then he debriefed me on the team's opinions, told me which team I was most likely to join, and extended the offer!
4. A little back-and-forth with HR, the Engineering Director, and Chief Product Officer, mediated mostly through the recruiter. He was able to arrange another 30-minute phone chat between me and the Engineering Director, in which I asked some culture and fit questions. He also connected me to the HR team, who helped me better understand the benefits package and clarify some language in the offer.
5. Background check. They outsource this to a third party that runs a credit check, verifies your employment history, verifies your education (literally, did you graduate from the college you said you graduated from?), looks for a criminal record, and all that.
A nice detail: For the on-site, I arrived straight from work and hadn't had a chance to eat lunch. When I walked in, the person who greeted me noticed that I was carrying a sandwich. She asked if I was hungry, and I said yes. So then she told the Chief Product Officer that they would be starting the interviews about 15 minutes later than planned because I needed to have lunch. Then she and a coworker sat with me in the breakroom, chatting casually and joking around with other folks who wandered in while I ate my sandwich. It was such a small, kind gesture, but it really put me at ease and gave me the energy (and nourishment!) to do my best the rest of the afternoon.
A note on the recruiter: he was professional, straightforward, prompt, and empathetic throughout. He communicated constantly, did not make compensation-related discussions feel weird, encouraged me and cheered me on throughout the entire process. I felt I had a constant ally; I learned more about the Austin job market for software engineers; I was able to give and receive feedback freely, and I knew that everything would turn out okay, offer or no offer.