Today I had my first on-site interview, set up via an IT staffing agency. The position was described to me as a contract position in Cleveland Ohio with a company looking for .NET developers with strong database skills. I checked out the company's website which looked nice enough and agreed to the interview. This morning, I made the almost-two-hour drive to meet with my interviewers "Van ***" and "Slick" (as I will call them), which was to be my first (and last) direct contact with this employer. Van *** was the head project manager and in charge of the current development team of approximately roughly twenty. Slick was one of the lead developers who would conduct much of the technical screening portion of the interview. After ten minutes of small talk... what the company does... why I am jobseeking... bleh bleh bleh... we started the technical screening.
Not surprisingly, the 45 minute technical screening consisted of roughly half database questions and half .NET questions. The database questions were pretty easy stuff... What's the difference between an inner join versus left join. Write a query (on paper) that joins two tables. What's the difference between primary keys, foreign keys, and indexes. Clustered vs non-clustered indexes? Advantages of stored procedures? Explain Cartesian product. Those are the few I remember. I thought most of the database questions were fairly good questions to ask. Slick's last question to me during the database part was "When can you start?" I was also feeling good about the way things were going at this point.
The .NET questions were of the same caliber... What is the advantage of the ViewState? What's the difference between app.config, web.config, and machine.config? (Doesn't this question kinda answer itself?) Have you used web services, windows services? C'mon guys, try harder than that.
We also went over several of the technologies on my resume that they were not familiar with... Subversion (never heard of it? bad sign #1), NHibernate in particular. I explained how Subversion's update/merge/commit paradigm differed from SourceSafe's check-in/check-out paradigm. I explain the basic concept of O/R mapping. We also talked about unit tests and automated builds and their current lack of said items. Ok that's bad but here's a great opportunity for me to come in and put boots to ass. Those are things they are looking into but haven't had time due to having too much work to do. They are currently looking to expand from 20 to 35 to handle the current workload. Once they have the people on board to support the workload, they will begin to add some more process improvement procedures such as automatic builds and unit tests.
The next big red flag was when Van *** explained that the company didn't allow the use of open source tools because they want to have a company to hold accountable (read: sue) when things go wrong. Wow. Let's see... Subversion, TortoiseSVN, VisualSVN (not OSS but dependent on it), KDiff3, NHibernate, NUnit, NAnt, RhinoMocks, CruiseControl.NET... all gone from my toolbox? And those are just the ones I know I use every day! There's another question to add to my list. I guess if you gave me Team Foundation Server and upped my salary another 30K I might take the job. Then the deal breaker...
Van *** says "...blah blah blah the main VB6 application..."
I ask "So is the project a migration of the VB6 application to .NET?"
Van *** replies "No we do not have time to do that with our current workload. You would be doing maintenance development on the application."
I respond with "I was under the impression that this was a .NET job. I guess the VB6 thing would be kind of a deal breaker for me, because I feel that is actually a step backwards for my career. But if you're in need of fifteen more developers, it sounds like you could specialize with some .NET developers and some VB devel..."
"No that is a deal breaker for us too. We need someone who is willing to do whatever it takes to get the job done. Thanks for your time." says Van *** as he stands up, opens his office door, and points with an outstretched hand.
I start "Are you sure? I think..."
Van *** injects "Thank you for your time."
As I stand up and am escorted out the front door, I bewilderedly say "Ok. Uh well thank you for your time. I'm sorry things didn't work out. Good luck."
I got in my car and began my 100 mile trek in the opposite direction, thinking "What the f*** just happened?" After taking a half day off from work, putting 200 miles on my car, and going through their interview process, I expected a little more professional courtesy at the end of the interview, even if I'm not the right man for the job. He could have entertained me for a few minutes with some shop talk before wrapping up in a friendly manner. (That's what I've always done when interviewing candidates that I wasn't gonna hire.) Instead he burned the bridge beyond repair. Not only will I never work there, but I will tell any of my peers who might happen to be looking in the Cleveland area to avoid this place.
The irony of the situation is that what they actually need is a full time developer who's job is process improvement and mentoring of their current staff. They need to commit a number of hours per week to augmenting their process with some automated builds, unit tests, some proper object orientation of the code base, and so on. In given time, maybe six months to a year, those twenty would be doing the work of thirty five or more. They are too busy working hard to start working smart. These are all things a person like myself could bring to the company, but if they treat other interviewees with the same disrespect with which I was treated today, then they will have a hard time finding such a person.
Update: PS: The profanity filter is blocking my nickname for him, which was a reference to his facial hair. Which is also a derogatory term for a lady who has relations with other ladies. Hah!
09-11-2007 6:59 PM