The interview consisted of a few distinct steps: online application, HR phone screen, technical phone screen, a meet and greet with the hiring manager, and in-person interview. I waited about a week to hear back on each step, and then the following step was scheduled out for another week or two after hearing back on the previous step.
The technical phone screen had a moderately difficult shared-computer-screen programming challenge. The meet and greet included a tour of the factory floor and a very light technical screen.
The in-person interview was structured into three one-hour sessions with four interviewers. In the first hour, I presented to all four interviewers on myself and a technical project that I had completed. This session included behavioral questions and technical questions focused on my work history. The other two hours were two-on-ones with two technical questions per hour, covering algorithms, design, etc. Difficulty was above average--but not far above average--compared to other technical interviews I had attended.
I heard back from my recruiter within about a week that I had been offered the job.