Spoke with the internal recruiter and had a phone call with one of the existing developers.
The phone interview was coding in google docs.
I was given a choice of what language to use, chose javascript given the questions (reverse an array, write a routine to validate JSON strings).
Was invited for an onsite interview.
Met with with 4 engineers for about 3 hours.
Again I was given the option of what language to use for white-boarding coding, chose Python due to the questions (given a list of words and a 7-digit number write a program to return permutations of those words based on the number).
Was asked various front-end questions (HTML, CSS, JS).
Genability seemed like a great bunch of guys.
After probing them about the position it became evident that I would be taking over the care and feeding of brownfield Java project(s).
The current maintainer did not have a CS degree and was not an experienced back-end Java developer. The build, release, runtime, deployment, development environment were based on end-of life OS/Java/Spring versions.
It was clear a lot of work would be needed to update their production environment/code-base/third-party libraries (architecture ?).
Was asked to do a programming challenge at home (small console project using their REST API, this time choose Java as the implementation language).
At his point things got weird.
My references were called (good sign).
The CEO was next.
At this point I cancelled the other interviews I had with other companies, since it seemed I had passed the technical filter.
Then the next (last ?) on-site visit with the CEO was re-scheduled twice delaying the process by over two weeks.
Clearly they were pursing other candidates while making me wait.
The day before the last on site with the CEO I received an email letting me know they were not going to make an offer.
Had to cancel a lease on a new 5K 27-inc IMac with 32 GB RAM which I had prepared to bring in when I started, not happy with the lack of professionalism by the company.