I was allowed to skip the phone interview and come directly for an on-site interview. The technical interview went great, no issues with whiteboarding code, ended up with extra time to ask questions of the interviewing engineers. Their internal culture seems solid, although slowly transitioning from process-oriented old enterprise stack to a more agile, startup-y process. The nontechnical culture interviews with the Director of Engineering and the PM went really well. I was expecting a slam-dunk, so I was surprised when the recruiter contacted me and said they wanted me to do a take-home coding exercise to clear up some issues around an area of professional growth I'd disclosed in the interview.
It struck me as super unprofessional to schedule a full day for an interview, only to be told that they needed more information. At every other company they do take-home exercises before on-site interviews. If engineers have questions about something said during an on-site interview, then the appropriate time to ask about it is... during the interview! Please don't wait and make a candidate do additional work after a full day of interviewing.
I didn't feel like I'd be professionally respected if my hiring was such a squeaker that it required a post-onsite take-home assignment, so I just put in a few hours' of work and submitted it -- wasn't surprised when they rejected me, just insulted that they'd put someone through so much extra effort when we could have resolved these issues with a conversation during the on-site interview.