Read the non-compete contract.
There was a phone interview and an in-person interview.
The employees I talked to were respectful and pleasant. The programmers I talked to were nice, but awkward. They seemed pretty average in their technical expertise and weren't the kinds of people that were really passionate about new technologies or attending conferences and user groups. That's Ok (people need work-life balance after all). That just didn't work for my career goals.
The technology for the group I would have been working on would have taken an existing Winforms application and re-written it in a newer technology. This was church organization software. Some of the interviewers mentioned some refactoring work that was frustrating because of a lack of comments, so I assume there would have been some of that as well. I'd expect that from any company that's established. However, the external recruiter I talked to told me there would only new technologies. This was not true.
The offer was great for my years of experience: $100,000. I had multiple similar offers which were better and did not have such a general and long (2 years for some things) non-compete clause. The non-compete contract was a major negative from my perspective. There were restrictions on who you could work for and how you could apply for jobs after working there. It also states that you can't say anything negative about the company (I did not see a time limit on this section of the contract).
Technical Questions:
- List as many of the ASP.NET lifecycle functions as you can.
- How does the MVC pattern work in ASP.NET?
- What is a Common Table Expression in SQL? (CTE) They sometimes want you to write this out. Not so great of a question on the phone.
Most coders don't memorize function names when they work with a variety of libraries and technologies. This kind of test doesn't say much about the problem solving skills of a developer. Despite it's name, I don't think a CTE is very commonly used. There are plenty of alternatives in T-SQL.