Tag Archives: Interview

What an idiot!

As DBAs we quite often run into others who aren’t as smart as us.  The dev is an idiot.  The .net guy is an idiot.  The users are idiots.  The manager is an idiot.  The VP, well don’t even get me started.  And other DBAs are really idiots.  At least that’s how it is in our heads anyway.  We fall into this cycle of calling everyone idiots for every little thing they do wrong.  The dev uses a wrong data type and it makes a few queries a lot slower, what an idiot, he should’ve known better.  A .net guy uses EF instead of putting it in an SP and it causes tons of blocking, what an idiot.  Another DBA tries to fix a DB that’s down and he does something that ends up making it worse… what an idiot.

It’s pretty easy to say everyone’s an idiot when we have the luxury of hindsight isn’t it?  Sure, I could have told you that every single one of those decisions was wrong and why.  But could I have told you before you did it and it went south?  Maybe, maybe not.  I’ve made plenty of mistakes in my career (and am dedicated to continuing) that in hindsight weren’t the best option, but was I an actual idiot for doing it?  Again maybe, maybe not.

I just think we jump on the idiot bandwagon too early and too often.  And I know I’m a big offender.  It doesn’t take much for me to start branding people left and right, but I also try to temper it with some reason.  Just because someone doesn’t have the same experiences I do doesn’t make them an actual idiot.  A dev chooses the wrong data type for a column.  Is he an idiot, or does he just not have the same experience with data types that I do?  I’d have to say it depends on what the mistake was.  Did he choose a varchar(25) for Address, or did he choose datetime?  Because one makes him less experienced with addresses and the other one makes him pretty close to an idiot. Well, what if he chose the bit data type for a SalaryAmount column? Well, I can only hope that he’s writing the table his own salary will be stored in.

I’ve seen plenty of things that seemed to be basic that I didn’t know. And that’s becuase there’s just so much to know it’s hard to quantify. That’s why I make sure I interview everyone I see for at least an hour before making a decision. I honestly believe you can’t judge the sum of someone’s experience in just a handful of questions. In fact, I’ve found plenty of guys who got the first 20 questions wrong and then we suddenly got to their area of expertise and they started blowing the questions out of the water.

So anyway, just give some of these guys a break and realize that they may not be complete idiots just because they don’t know something you don’t. That’s not to say there aren’t any real idiots out there. You guys know that I’ve definitely run into my fair share of them. But I’m trying harder to lighten up on them.

Part of the problem is the learning process we go through, which is next to none. Computers are hard. SQL is hard. .NET is hard. They’re all hard. And yet training is so poor. I’ve seen so much IT training I can’t even count, but the number of courses I’ve been in that actually taught the topic is very few. sure, the high level stuff gets taught, but the hows and whys of doing things is rarely covered. There are some guys out there who really take the time to break it down for you, but try to find one of them. One of the biggest reasons I never got into BI is because all the BI guys teach beginning BI like you’re already a BI expert. They explain BI terms with other BI terms and everyone just nods and smiles. But I guarantee you that most of them walk away without a good understanding of what was just said. .Net guys are big offenders in that area too. They explain .Net to you like you’ve been a coder for years and you’re just supposed to know what all this stuff is. So it’s no wonder that so few people really know their jobs well. They’re never taught what they need to know. So are they really idiots for not knowing something they weren’t taught? There are so many things that can go wrong with a system at any given time how can they be sure that the issue is being caused by a bad data type, or by one particular piece of code? There are of course ways to find out, but so many companies are in such a hurry to move on to the next project they never get a chance to dig into these issues. And again, were they really taught how?

So here we are in the middle of the learning revolution and there’s so little quality training to be had. You can go almost anywhere and learn how to perform the steps for a task, but where do you go to learn what you actually need to know? How do you learn that one thing is stupid over another thing, and that other thing exists for a reason, so when is it supposed to be used? I was talking to someone about this very topic just this morning.

So this whole thing was prompted by a training session I had with someone not long ago. Someone did something they shouldn’t have and when I corrected them they asked why. And when I gave my reason he said oh y, I never thought of that. And I could clearly see that he wasn’t an idiot, he just didn’t have the experience he needed. And since then he’s done it right and even did it the other way a couple times because the situation was different. See, I gave him the reasoning so now he can reason out for himself when to use one method over another. And that’s training that’s worthwhile.

To me, a true idiot is someone who gets shown the way to do things right and still refuses to employ them. He is also someone who has been in his current career for many years and doesn’t even know the basics. I have very little patience for say a SQL dev who’s been doing it for 10yrs and doesn’t even know the basics of the data types. Because you can’t tell me that it’s never come up. I also don’t like DBAs with 10yrs behind them who can’t write a simple backup statement. Again, that’s a basic that you should know cold.

The new job problem

Ok, so you’re in an interview and their questions are finished and it’s time for them to answer yours.  So you start asking them different Qs about their shop.  You ask about servers, versions, support, team layout, upcoming projects, etc.  You cover all the bases and it all sounds pretty good.  You leave and an offer comes in a few days later and you accept. 

Fastforward to your 2nd week on the job and you’re starting to discover something.  All these people around you are idiots.  Not a single one of them really knows what’s going on and even worse you’ve heard a couple things that make you believe that all grand ideas the hiring manager had in your interview were just HIS grand ideas.  They’re things he’d really like to do.  As it turns out though, nobody else has neither the desire nor the skillset to make any of it happen. 

So what do you do now then?  You’ve saddled yourself to this new gig where you’re surrounded by morons and everything you came here for is now defunct and you know it.  Personally, I would probably start looking for another gig in a hurry.  The older I get the more I just can’t bear to work in those types of shops.  And I really wish that the interview process were such that you could tech screen the guys you’re supposed to be working with.  As it stands that kind of thing is presumptuous.  It would be considered pretty rude to come in and interview someone for their own job.  But what are you supposed to do?  Don’t you have the right to make sure you’re coming into a good shop too?  They don’t want to hire someone who’s an idiot, but certainly they can recognize that we don’t want to be put in that position either, right?  Well, I haven’t seen it yet, but I’m hoping that one day we can get to that point.

Unfortunately, I don’t have any answers other than to cut your losses and maybe get a little more clever about how you vet the next shop.  Maybe ask them Qs that are meant to see how they’re going to design something that they talked about and see if they know what they’re doing.  I’ve even flatout asked the hiring manager if the plans were just his or if there were an active project to make it happen.  You can also find out a little about their office politics by asking the right Qs, but you have to be sneaky.  Ask them about their top 5 support issues.  That’ll tell you a lot.  For example if one of their big issues is that they keep having unauthorized prod changes, then you know that they’ve got devs or end users in the DB.  So now you can ask them outright why those users have rights to prod.  Then you can ask what they’re doing to change it and what the roadblock is.  This can tell you a lot about the experience of the upper mgmt as well as the hiring mgr because based off of his answers you’ll know if he knows what he’s doing and if the company is too immature to keep their users under control. 

You can also ask them about their HADR.  Ask them what they’ve got in place and whether their happy with it.  Then you can ask what they’d do differently and why, etc.  This line of questioning can take you a long way in finding out things about the people you’re about to work with.  Maybe it’s a SQL group that’s pretty on the ball but when you ask why something is done the way it is you find out that the windows team is poor and blocks everything they try to do.

You can also ask the guy how he got started in the business and what his experience is.  I’ve asked hiring mgrs outright if they were technical or not.  The point is that while you can’t whip out your big list of Qs like if you were on the other side of the table, you can still find out quite a bit with a few well-placed questions.  The trick is to gear it toward something he said so it just sounds like you’re asking more info about the shop.  When what you’re really doing is finding out if these are the people you wanna work with.

Also, don’t fool yourself into thinking that if someone answers the Qs well that they’ll be good.  All the discussion boils down to is that they can at least talk the talk.  And I’ve met plenty of guys who can do that.  You get them in the interview and they say all the right things and really appear to know their job.  But when you get them in your shop they somehow can’t do the simplest things.  So this is no sure-fire way to vet your new team, but it’s all you’ve got. 

Another big point of this is to start you thinking in this direction.  You don’t have to just shut up and take what they give you.  Too often people are just so grateful to be offered something that they take the first offer they get no matter how bad the company is.  And then they sit there for years and put up with garbage every day.  But you don’t have to.  You’re (hopefully) a professional, which means you’re in demand.  You should be calling some of the shots.

Losing your job Sucks

I’ve blogged about this before, but some things are worth repeating from time to time.

Losing your job really sucks. And it doesn’t matter if you find out about it ahead of time by 2mos, 2wks, or not until they walk you out the door, you’re going to feel like a complete failure.  And I don’t know, maybe you should, maybe you shouldn’t, but if you don’t get a handle on it and soon you’re going to find yourself in the middle of a depression that’s hard to get out of.  And once you’re there you’ll be useless for finding a job until you get out of it because everyone can see you’re depressed and nobody wants to hire someone who’s a major downer.  You can take some steps to avoid it though, and here’s what I do.

The first thing I do is learn something new.  I pick a single topic of something I really want to learn and I do it.  It’s important that you only pick a single topic though.  The reason is because if you’re already feeling like a failure, choosing to bone-up on SQL in general is only going to make you more depressed because it’s going to remind you how small you really are compared to the product.  There’s just too much to do.  So you pick one small thing and do that.  You can tackle a single feature much easier.  Maybe it’s not even a SQL topic you’re interested in.  Maybe you’ve always wanted to get started with ASP.NET, or HTML, or JavaScript, or Powershell, etc.  Pick one of those instead.  Now, you certainly won’t learn any of those overnight either, but at least it’s a solid topic you can practice and get better at.  This is very important because it shows you that you’re not a loser and you are capable of doing something.  It also gives you new confidence because you’ve added something significant that you like to your skillset.  And if something in IT isn’t what you’re dying to do, then take this time to learn French cooking, or the harmonica, or whatever.

The 2nd thing I do is I start working out.  This too is essential.  There are a couple reasons for this.  First, it’s something tangible.  Unless you’re just completely paralyzed it’s impossible to not see improvement.  You jog to the end of the street and you’re completely winded.  Then the next day (or later that day) you jog to the end of the street and go and extra 10ft.  The next time you go even farther… and so on and so on.  Or you lift weights and see some improvement there.  Do something physical.  Do it every day and do it to exhaustion.  Why exhaustion?  Well, that’s the 2nd reason.

Physical activity works out mental frustration.  It’s hard to be stressed when you’re too tired to walk.  So by working out really hard every day you go a long way to relieve your stress.  And if you’re the type to hold things in, you’re more likely to open up and talk when you’re tired.  This is why parents who know this, make their kids get on a treadmill or do some good exercise when they come home really upset and refuse to talk.  After a good workout they start talking.  This is also more or less how truth serums work.  They relax you to the point where you don’t have the energy to lie.  Lying takes energy and effort and if you’re really relaxed, you tend to not be able to exert that kind of effort.

All of this should help you achieve the ultimate goal that I’ll state now.  Your ultimate goal is to shift your self-worth from your job to something else.  If you place all your worth on your job and you just lost your job, then where does that leave you?  Completely worthless, that’s where.  But if your job is just something else you do and you’re succeeding at plenty of other things, well then you’re not worthless.  You just don’t currently have a job.  The point is that your job shouldn’t define who you are.  Instead, focus on your career.  Whether or not you have a job currently, you’re still a DBA.  Individual jobs come and go, but your career stays constant.

I’ve lost jobs before.  I think almost everyone has.  It doesn’t necessarily mean you’re an idiot or you suck at what you do.  It may simply be that you weren’t right for that gig for whatever reason.  I’ve found that there are some shops that are so dysfunctional no sane person will ever be successful there.  Sometimes it’s a single person being enabled by the entire company, and sometimes it’s actually the entire company dynamic.  For whatever reason, you’re just not suited to that gig.  Ok, try to define what it is you can’t work with there and try to avoid that the next time.

So it may not be you who sucks at all.  Of course, it very well may be, and if that’s the case then improving your skills will be your 2nd priority.  Your first priority of course is to do what I said above and keep yourself out of the funk.  Because if you can’t do that then you’re not going anywhere.

Another Interview

Ok, I just got out of another interview earlier today and there are a couple good ones in here.  It’s not anywhere near as good as the last one, but you’ve gotta admit that’s a tough act to follow.  So this girl was much more business-like and she was quite nice and honestly just trying to do her best.  She was quite shy and Asian so her english wasn’t the best.  So I’m forced to interpret her answers as best I can sometimes.  So I honestly can’t tell you exactly what she said for all of them, but I’m getting the gist as best I can from the different things she want through to try to reason it out.  I typically just landed on the last thing she said and took that as her answer.

Q:  What the difference between an SP and a trigger?

A:  A trigger is a special SP that stops when you run it after a certain time.  They can only run for a pre-determined time.

Me:  Oh yeah?  Ok, so how long can they run?

Her:  It depends on how big the server is.  It’s determined by the resources.

Q:  what’s the difference between datetime and smalldatetime?

A:  Smalldatetime is limited and datetime is much more range of time.

Q:  What does sp_ in front of an SP signify? 

A:  It just means that it’s an SP.  All SPs have to be named sp_ or the system won’t read them as SPs.

Q:  What are the 2 types of UDFs?

A:  Fixed and variable.

Me:  Ummm, ok.

Q:  What’s the difference between ‘Select Into’ and ‘Insert Into”?

A:  Insert puts data into a table… select into… (she struggles with the answer and half says a couple things.  She then fades out after saying about 3 things I couldn’t understand.  None of them sounded like an answer though.)

Q:  What’s the difference between varchar and nvarchar?

A:  International support.

Q:  What’s the difference between a clustered index and a non-clustered index?

A:  Cluster is a pair index.  It’s at the server level so when something is down it’s kind of like a backup.  Non-clustered  in the only one…(something I can’t understand)… you can rely on that one and only backups can support it.

 

I then told her to give me a question to ask her.  “I want you to pick the next one.  Give me a specific question to ask you.”

And after thinking for a minute or so she comes up with this:

“What does DML stand for?”

So I asked her that question, and after fudging around for over a minute she finally came up with the right answer.  She went through many variations before landing on the right answer though.

Ok guys, that’s it for this round.

The Dumbest man on Earth -char() vs varchar()

Wow, I didn’t realize I left this question out.

So here’s the question:

Q:  What’s the difference between char() and varchar()?

A:  With char() you can store the standard set of characters.  And with varchar() you can store the extended set… pretty much any character you can think of can be stored in varchar() whereas with char() you can only store the standard 50.  I think it’s 50.  Maybe it’s 53 or something.  I forget the exact number, but it’s about 50. 

So that’s when I asked him about the difference between char() and nchar() because that usually kicks them in line and they go, oh wait, y, so char() holds regular data and nchar() holds extended data.  So that means varchar() holds… and then whatever they come up with next.

But not this guy, no, he stuck to his guns and went with nchar() holding numeric character data.

You’ve gotta love someone who sticks to their guns no matter what!

The Dumbest man on Earth -Another Short Note

Sorry guys, but I keep remembering things.

When I announced to him that the tech screening was over, he sighed and I could see 10yrs leave his face.  Come to think of it, that’s why I decided not to call him out in front of everybody and tell him he didn’t know anything… because I felt so incredibly sorry for him.  It’s like kicking a puppy until he bleeds and then laughing at him for the way he licks himself clean.

But he did ask the other team to take it easy on him because he just had a huge beating of a SQL interview.  He said that he had no idea we were going to ask him so many master-level questions, and then asked the guy how the job ad matched up with what we’re clearly expecting.

I’ll say that this whole thing is entertaining from the angle that I didn’t take him on to raise.  I’m not responsible for his knowledge or his income.  He’s clearly managed to find work all these yrs, so he’s gotta be doing something… right?  So I’m sometimes torn when I have interviews like this because I want to help these people… but I didn’t take them on to raise.  It’s not my job to teach them everything they need to know.  And while we’re feeling sorry for him let’s all remember that he’s got more time in this industry than I do and he’s chosen to not pick up any books or read any articles.  He’s chosen that himself.  So y, it’s sad that he’s that pathetic, but he brought this on himself.  I bet even dog catchers read dog catching books.

The big question is, does someone like that deserve our ridicule or our pity?  I say both really.

The Dumbest man on Earth -Follow-up

Since everyone is so interested, I thought I’d give some further observations about our favorite candidate.

1.  He was visibly shaking throughout the entire interview.

2.  He claimed that had he known there would be so many sql questions he would have studied.  He said he’d only need a couple days.  Frankly, I was VERY tempted to give it to him just out of morbid curiosity.

3.  He said that he had been concentrating on Access the past few months and that’s why he couldn’t remember any of the SQL Sever stuff.  But when I started quizzing him on Access he bombed that too.  And I only know enough about Access to barely get by.

4.  His nervous laughter wasn’t just time consuming, it was loud and annoying.  Everyone go ahead and ask Jen how much I adore loud obnoxious laughing when I’m trying to talk.

5.  He was actually pre-screened by the team doing the hiring.  I’ve since then heard that the guy who did the screening was very embarrassed that this guy turned out to be such a loser.

6.  The guy actually said he was sorry for being so disappointing.  I told him I rarely come into these things with any expectations so it’s impossible to be disappointed.  However, I did tell him I was quite pleased what what I got out of our discussion.

7.  I managed to hear a couple of the questions by the hiring manager as I was leaving and he was basically telling them that he would do whatever they wanted and was divorcing himself from any independent thought.  He wanted a job so badly.  Can you believe he’s a contractor?

8.  I knew this was going to be fun when I saw his resume claim that he had done SQL Server on VMS.

9.  One of the things I didn’t tell in the main post was that with a little prompting he WAS able to tell me the 4 basic steps to creating a cursor.  Funny isn’t it?  The only thing he got right was about how to use a cursor.  Run away very fast.

10.  After he blew the char() vs varchar() question so badly, I asked him the question about char() vs nchar().  Again the answer was I’m not sure where you’re going with that.  nchar()?  What is that, like a numeric Char()?

I’m sure there’s more in my brain somewhere, but that’ll do for now.

The dumbest man on Earth

This is one of the most incredible interviews I’ve had to date. It has plenty of very unique answers and lots of good old-fashioned awkward pause. I’m torn about how much to write down because it really gets kinda long after a while, but I’m likely to put a good deal of it though cause I know some of you will want to hang in there. So without further ado I’ll get to some Q/A.

Oh wait, I suppose I should explain the position first. I’m interviewing candidates for a group downstairs. They’re looking for a SQL guy to help them write reports, and support their current data processes and help support their new SSIS pkgs and do some SSRS stuff. He doesn’t have to know everything, but it would be nice if he had a working knowledge and could be taught. This guy has been doing this for many yrs and has a resume the size of mine. So he’s very experienced.

Q: What does sp_ in front of an sp signify?

A: It means it’s a system procedure supplied by MS.

Me: OK, and what does it do.

Him: Nothing, it just means that MS created it and gave it to you because they thought it was be useful.

Me: And can you create your own?

Him: Well of course. You can create as many as you like.

Me: So does that make them system SPs then?

Him: They’re SPs that were supplied by MS.

Me: Yeah, I got that part. How are they all supplied by MS if I can create my own? Will MS add mine to the product since I created them as system SPs?

Him: Yes. Any SP you add with sp_ will be uploaded to MS and will be included in a service pack.

Me: I don’t think I could have explained that any better myself.

Q: What are the 2 types of UDFs?

A: I didn’t know there were 2 types of UDF.

Me: Ok then.

(Now this one just boggles the mind)

Q: What’s the difference between delete and truncate?

A: I know there’s a difference but I can’t think of it. No wait, I remember. Delete deletes all the data in a table and truncate leaves space at the end.

Me: Pardon? Did you say that truncate leaves space at the end? Then end of what?

Him: Yeah, truncate leaves space but delete gets rid of all the data.

Me: Ok, so what if you only want to get rid of a few rows?

Him: That’s what you call a partial delete and you have to do that inside a transaction.

Me: Moving on…

Q: What are 2 types of cursors?

A: I know there are different types I just don’t know what they are.

(Actually one of the brighter things he’s said.)

Q: What’s the difference between Select Into and Insert Into?

A: Well, I don’t even know where you’re going with that. They’re 2 different statements and they do 2 different things. Yeah, I just don’t know where you’re going with that. It has to be somewhere though. Ok, let me think. A select statement is a query that you use to select data. And an insert you use to put data into a table. But you can use a select with an insert so I guess that makes them the same thing, so I don’t know where you’re going with that. Yeah, I just don’t know. Are you asking me if they’re different, because they’re not. Since you can use a select with an insert that makes them the same thing. Yeah, that’s right.

Me: I think you’ve misunderstood. There’s a select into statement, and there’s an insert into statement. They’re 2 different statements. I’m asking what each one does.

Him: But they’re the same thing aren’t they? Well, I mean except that one selects data and the other inserts it, but you can use them together so doesn’t that make them the same thing?

Me: Well, they both insert data, except the select into creates the table and the insert doesn’t. That’s not the only…

Him: Yeah, I know that. That’s what I was trying to say. Yeah, the select statement creates the table and the insert statement inserts data into it. Yep, that’s right.

Me: Well, that’s not entirely what I said, but let’s move on.

Him: Yeah, it’s close enough. I think we’re talking about the same thing. I’m still not sure where you were going with that though.

Q: What’s the difference between an SP and a trigger?

A: Again, I’m not sure where you’re going with this because a trigger calls an SP so that’s the difference. So a trigger is what calls an SP and the SP is what gets called. That’s the difference.

Me: Ok then. You don’t get any more succinct than that.

Q: What’s the difference between datetime and smalldatetime?

A: I’m not entirely sure what the difference is. I think that datetime only stores small dates and smalldatetime stores larger dates. No, that’s backwards. Datetime stores big dates like anything after say the 15th every month and smalldatetime stores dates from 1 to 14. Yeah, that’s right.

Me: So you’re telling me that I have to have 2 separate cols in my table for each half of the month?

Him: Well yeah. That’s why normalization is such a big deal because if you don’t create your tables properly you’ll be in big trouble because everything’ll be slow.

Me: I honestly don’t know what to say. I’ve never heard that explained in such a clear-minded fashion before. And to tie it back into normalization… just excellent.

(This is my gimme question, right? He’s done so poorly until now I really wanted him to get one.)

Q: What’s the difference between a clustered and a nonclustered index?

A: This is one of those interview questions and I don’t know where you’re going with this one either. I don’t understand this, this is one of those interview questions. This is one of those interview questions…

Me: I’m sorry, you keep saying this is an interview question, what do you mean by that?

Him: Well, this is one of those questions that they ask in every interview. And if you search for interview questions on the internet you usually come up with this one.

Me: So are you telling me that it’s purely an academic question then?

Him: No, I’m just saying that it’s a question you hear in every interview.

Me: Well, this is an interview so why don’t you answer it.

Him: Ok, well a clustered index is a global index. It’s open to everybody. And a nonclustered index is only available to certain people.

Me: I’m afraid I don’t understand.

Him: You don’t have to give permissions for a clustered index; it’s global. Everyone can see it. But for a nonclustered index you need to maintain security for it. It’s part of the MS security model.

Me: So what is it about a nonclustered index that makes you need to lock down security?

Him: I don’t know their reasoning. I just know that’s how it works.

Me: So what’s stored in a nonclustered index that makes you have to lock it down then? What info are you hiding from the general public?

Him: I’ve always wondered that. I don’t know. I just know that it makes the data more secure. That’s what all the documentation says anyway. So I don’t know where you’re going with this because this is just an interview question.

Me: Do yourself a favor and don’t say that again. I get it you think the question’s worthless.

Him: No, it’s not worthless, it’s just that it…

Me: Let’s move on before we get to the end of that sentence.

Q: Explain when you would use the ‘Having’ clause.

A: Well, ‘HAVING’ is not my forte. But it’s used when you can’t use the ‘where’ clause in the right place.

Me: When you can’t use the ‘where’ clause in the right place? I’m not sure what you mean.

Him: There are times when you can’t put the ‘where’ clause where it ordinarily goes so you have to use having.

Me: Can you name one of those times? Give me an example?

Him: Not really. That kind of thing is hard to nail down really. It’s random to begin with.

Me: Wait, what’s random?

Him: When you have to use ‘Having’. It doesn’t happen all the time.

Me: I can see how that would be hard to define something that keeps changing like that. Have you thought about asking MS to make that more stable so people know when to use it?

Him: No, I always figured it was something they couldn’t do or they would have.

Me: Would you be surprised to know that it has been stabilized?

Him: Really? When did they do that? In this last version? Cause I haven’t played with the new one yet.

Me: No, they stabilized it about 25-30yrs ago. I can’t watch you struggle through this anymore. Would you like me to give you the well-kept secret of the ‘having’?

Him: Sure.

Me: ‘Having’ is like a where clause for a ‘group by’. So if you get a result back from a ‘group by’, say you’re counting how many of each value is in a table with something like Select CustID, count(*) as CT from orders group by CustID, then that’s a result you’re getting back from a ‘group by’. You can see how many orders each customer has had. But if you want to see only customers who have had more than 100 orders, then you would add ‘having count(*) > 100’ and you’ll now only see the ones who have had more than 100 orders. So it’s really kind of a ‘where’ clause for a group by. It doesn’t move. It’s not mysterious. And there’s no secret potions or incantations you have to apply to make it work from one day to the next.

Him: Wow, yeah that makes a lot more sense. See, this is why I need to work here because I feel I could really learn from someone like you.

Me: And furthermore… I’m pretty pissed off that you would even waste my time like this. You’re clearly a complete idiot. In the 20+yrs you’ve been doing this you’ve clearly never once opened a single book. I mean, what the hell kind of moron thinks that this shit is all voodoo that nobody can understand? Computers are solid and predictable and you’re an idiot. I mean, seriously, did you really think that SPs you create get uploaded to MS and included in service packs?

Him: Well I always…

Me: Shut up. I don’t even want to know the answer. I’m afraid some of your stupid will get on me and I’ll step into the street in front of a car. I suggest you do something more suited to your intellect. Just remember, when the buzzer goes off, it’s time to pull the fries.

Ok, I made the part in blue up. I was actually very nice to him. But it sure felt good to say all that here.

So ok, that was my interview yesterday. All of these stupid answers are not only completely real, but they were compounded by his nervous laughter. So for every answer there were a couple senseless jokes and about 30-45secs of him laughing at them.

And I don’t know about you guys, but all of the stupidity aside, I find the bit about some of those being interview questions particularly puzzling and somewhat offensive. That’s implying that these questions are useless and have no place in your day to day life.

So there you go… that’s the interview as best as I can recount it. I was taking some notes while he was talking, but I didn’t do some of them justice. Hell, just not being able to convey his laughing all the time really makes you miss an essential part of the experience. And I’m doing more interviews for this group so there’ll be more coming.

Whatever, I’m done.

Well, since I hear everyone is enjoying these today, I just finished my last phone screening and here are the nuggets I’ve discovered this time.  Man you just learn so much interviewing.  If any of you really cared for me though you’d shoot me right in the ass.

Q:  What’s a bookmark lookup? (his resume says he’s a query tuning expert)

A:  If there’s no PK on the table, SQL will keep a bookmark table that tells it what the PK should be and it uses that to lookup the data.

Q:  Say you have a prod server with the DB on D:\ and you need to restore it to a dev server that has no D:\.  But it does have an E:\… how would you restore that DB to E:\ instead of D:\?

A:  You have to restore it to the full recovery mode.

Q:  What is IsAlive vs LooksAlive? (he’s also a big clustering guy)

A:  LooksAlive mode when you want to hide the cluster from hackers so you put it in LooksAlive mode and IsAlive mode is when you have an internal box and you want to allow it to be seen from the network. (I’m so far beyond speechless I don’t even know what to do with myself.  Now I know why VanGough ripped off his ear.)

Q:  When would you use log shipping vs mirroring?

A:  Log shipping is what you use when you want to run it in full mode and mirroring is the same thing only you do it in simple mode…

Somebody make it stop!! The voices are getting so LOUD!!!