Kernel and OS theory interview Questions

I suspect if I asked you the “What happens when an exception occurs in a
program?” you would fail it horribly, since what I did not ask was “What
happens when an exception occurs in a Windows program on an x86 processor?”

The what happens on a page fault is one I have responded to “At what level
of detail do you want this, and for what OS/processor are you referring or
is this just a stupid trick question?” sorry a lot of the time the “or …”
is correct. In fact I had one interviewer tell me that I did not know a
thing about page faults, then was at a standards conference a few weeks
later where on of that companies architects indicated my answer was correct
for everything but the one lamebrained project the interviewer had worked
on.

On you routine, which version of the C standard or is the C++ and do you
want the pure standards answer or should one include the rationale? Guess
what the answer can be different.


Don Burn (MVP, Windows DDK)
Windows 2k/XP/2k3 Filesystem and Driver Consulting
Website: http://www.windrvr.com
Blog: http://msmvps.com/blogs/WinDrvr
Remove StopSpam to reply

“the_el_vez” wrote in message news:xxxxx@ntdev…
> One really good question (IMHO) that I always ask is “What happens during
> a
> page fault?”. It is a completely open ended question yet it gives the
> person
> a chance to show a lot of areas of knowledge. If they are a kernel dev
> they
> will typically have a completely different answer than a file system guy -
> but you can really get a good grasp of what they know from questions like
> this. Another favorite of mine in this same spirit is “What happens when
> an
> exception occurs in a program?”. I have found that people tend to loosen
> up
> because it is not a specific question like “implement strcmp()” - it is
> more
> of a platform to show what you know. BTW - my favorite question is this:
>
> Is there a bug in this routine:
>
> void
> DerefP(
> void
> )
> {
> *p;
> };
>
> I have had hour long discussions over this code. It opens the door to
> discussions of synchronization, compilation portability, coding style,
> performance and on and on. This question is particularly good for finding
> out if people really grasp asynchrony and multithreading. It also is
> telling
> if a person has been exposed to software that directly talks to hardware.
> I
> have been the 3rd or 4th interviewer in an interview loop where the
> candidate had “done horribly” in the previous interviews where they were
> having him implement red-black trees on the whiteboard, and then come in
> and
> bowl me over with the answers to these kinds of questions. However I must
> admit, the first time I asked the DerefP question to a candidate in an
> interview - the response was: “This is the dumbest interview question I
> have
> ever been asked.”. :slight_smile:
>
> “Matt” wrote in message news:xxxxx@ntdev…
>> This question just popped into mind and has little relevance to my life,
>> but I’m still
>> curious (perhaps it could yield new avenues for me and others to study).
>> -----------------------------
>>
>> If you were looking to hire a developer and were a party to the interview
>> process,
>> what questions would you ask the interviewee regarding windows driver
>> development
>> along with OS theory questions?
>>
>> Of course the basics regarding paged vs non-paged pools, IRQL’s, and
>> context. But what
>> else, and specifically…
>>
>> I could careless about the type of driver (ndis, filesystem, wdm, NT…).
>> What are some of the
>> technical questions you guys have asked or been asked?
>>
>> Perhaps something along these lines would make a great article for Peter
>> to Pontificate about.
>>
>> Matt
>>
>> P.S. - I really would like to hear something else than C vs C++.
>>
>>
>>
>>
>>
>
>

> memory access optimization (tiling…)

Does not work :slight_smile:


Maxim Shatskih, Windows DDK MVP
StorageCraft Corporation
xxxxx@storagecraft.com
http://www.storagecraft.com

IRQL and everything related.

IoCompleteRequest and everything related.

Paged/nonpaged memory and everything related.

MDLs and everything related.

Practicall skills in writing multithreaded code.


Maxim Shatskih, Windows DDK MVP
StorageCraft Corporation
xxxxx@storagecraft.com
http://www.storagecraft.com

“Matt” wrote in message news:xxxxx@ntdev…
> This question just popped into mind and has little relevance to my life,
> but I’m still
> curious (perhaps it could yield new avenues for me and others to study).
> -----------------------------
>
> If you were looking to hire a developer and were a party to the
> interview process,
> what questions would you ask the interviewee regarding windows driver
> development
> along with OS theory questions?
>
> Of course the basics regarding paged vs non-paged pools, IRQL’s, and
> context. But what
> else, and specifically…
>
> I could careless about the type of driver (ndis, filesystem, wdm,
> NT…). What are some of the
> technical questions you guys have asked or been asked?
>
> Perhaps something along these lines would make a great article for Peter
> to Pontificate about.
>
> Matt
>
> P.S. - I really would like to hear something else than C vs C++.
>
>
>
>
>

>I suspect if I asked you the "What happens when an exception occurs in a

program?" you would fail it horribly, since what I did not ask was “What
happens when an exception occurs in a Windows program on an x86 processor?”

That is exactly the point. And I hope I wouldn’t fail it horribly on any
platform that Windows runs on. :slight_smile:

The what happens on a page fault is one I have responded to “At what level
of detail do you want this, and for what OS/processor are you referring or
is this just a stupid trick question?” sorry a lot of the time the “or
…” is correct. In fact I had one interviewer tell me that I did not
know a thing about page faults, then was at a standards conference a few
weeks later where on of that companies architects indicated my answer was
correct for everything but the one lamebrained project the interviewer had
worked on.

I didn’t ask what would happen on x86 or any particular platform on purpose.
I agree with your view (at least I am taking that this is your view from the
tone of your reply :slight_smile: ) that it is ridiculous to ask people interview
questions that are specific to an implementation or project that the
interviewee may have never seen or heard of.

On you routine, which version of the C standard or is the C++ and do you
want the pure standards answer or should one include the rationale? Guess
what the answer can be different.

Exactly the point.

I am definitely of the opinion that most of the interviews I have been on
the receiving end of - were completely useless at extracting my knowledge.
Of course - this assumes that I have some knowledge that can be extracted!
:smiley:

In my opinion - an interview is to find out what the person knows - not to
try to trick them or get them to cry. BTW - I never have anyone write code
in an interview - it is useless in my opinion as it is not even close to an
approximation of how the person would actually code something up if they
worked with you. I write all the code in the interviews. And I am ashamed to
admit that I have at least once - had a bug in my code that I wrote during
the interview that the candidate caught - and I have said to them
“Excellent - most people don’t catch that in the interview. Very
impressive!”. :smiley:

Thanks!

“Don Burn” wrote in message news:xxxxx@ntdev…
>I suspect if I asked you the “What happens when an exception occurs in a
>program?” you would fail it horribly, since what I did not ask was “What
>happens when an exception occurs in a Windows program on an x86 processor?”
>
> The what happens on a page fault is one I have responded to “At what level
> of detail do you want this, and for what OS/processor are you referring or
> is this just a stupid trick question?” sorry a lot of the time the “or
> …” is correct. In fact I had one interviewer tell me that I did not
> know a thing about page faults, then was at a standards conference a few
> weeks later where on of that companies architects indicated my answer was
> correct for everything but the one lamebrained project the interviewer had
> worked on.
>
> On you routine, which version of the C standard or is the C++ and do you
> want the pure standards answer or should one include the rationale? Guess
> what the answer can be different.
>
>
> –
> Don Burn (MVP, Windows DDK)
> Windows 2k/XP/2k3 Filesystem and Driver Consulting
> Website: http://www.windrvr.com
> Blog: http://msmvps.com/blogs/WinDrvr
> Remove StopSpam to reply
>
>
> “the_el_vez” wrote in message
> news:xxxxx@ntdev…
>> One really good question (IMHO) that I always ask is “What happens during
>> a
>> page fault?”. It is a completely open ended question yet it gives the
>> person
>> a chance to show a lot of areas of knowledge. If they are a kernel dev
>> they
>> will typically have a completely different answer than a file system
>> guy -
>> but you can really get a good grasp of what they know from questions like
>> this. Another favorite of mine in this same spirit is “What happens when
>> an
>> exception occurs in a program?”. I have found that people tend to loosen
>> up
>> because it is not a specific question like “implement strcmp()” - it is
>> more
>> of a platform to show what you know. BTW - my favorite question is this:
>>
>> Is there a bug in this routine:
>>
>> void
>> DerefP(
>> void
>> )
>> {
>> *p;
>> };
>>
>> I have had hour long discussions over this code. It opens the door to
>> discussions of synchronization, compilation portability, coding style,
>> performance and on and on. This question is particularly good for finding
>> out if people really grasp asynchrony and multithreading. It also is
>> telling
>> if a person has been exposed to software that directly talks to hardware.
>> I
>> have been the 3rd or 4th interviewer in an interview loop where the
>> candidate had “done horribly” in the previous interviews where they were
>> having him implement red-black trees on the whiteboard, and then come in
>> and
>> bowl me over with the answers to these kinds of questions. However I must
>> admit, the first time I asked the DerefP question to a candidate in an
>> interview - the response was: “This is the dumbest interview question I
>> have
>> ever been asked.”. :slight_smile:
>>
>> “Matt” wrote in message news:xxxxx@ntdev…
>>> This question just popped into mind and has little relevance to my life,
>>> but I’m still
>>> curious (perhaps it could yield new avenues for me and others to study).
>>> -----------------------------
>>>
>>> If you were looking to hire a developer and were a party to the
>>> interview process,
>>> what questions would you ask the interviewee regarding windows driver
>>> development
>>> along with OS theory questions?
>>>
>>> Of course the basics regarding paged vs non-paged pools, IRQL’s, and
>>> context. But what
>>> else, and specifically…
>>>
>>> I could careless about the type of driver (ndis, filesystem, wdm,
>>> NT…). What are some of the
>>> technical questions you guys have asked or been asked?
>>>
>>> Perhaps something along these lines would make a great article for Peter
>>> to Pontificate about.
>>>
>>> Matt
>>>
>>> P.S. - I really would like to hear something else than C vs C++.
>>>
>>>
>>>
>>>
>>>
>>
>>
>
>
>

Max,

But you don’t need IRQL if you are user space, you don’t use
IoCompleteRequest if you are WDF, you don’t wory about paged if you are user
space, you may not know MDL’s if you are WDF, and you can be an excellent
SCSI mini-port driver developer without knowing multi-threaded. Remember
the original question was to cover all classes of drivers, which to me says
you can’t ask technical questions.


Don Burn (MVP, Windows DDK)
Windows 2k/XP/2k3 Filesystem and Driver Consulting
Website: http://www.windrvr.com
Blog: http://msmvps.com/blogs/WinDrvr
Remove StopSpam to reply

“Maxim S. Shatskih” wrote in message
news:xxxxx@ntdev…
> IRQL and everything related.
>
> IoCompleteRequest and everything related.
>
> Paged/nonpaged memory and everything related.
>
> MDLs and everything related.
>
> Practicall skills in writing multithreaded code.
>
> –
> Maxim Shatskih, Windows DDK MVP
> StorageCraft Corporation
> xxxxx@storagecraft.com
> http://www.storagecraft.com
>
> “Matt” wrote in message news:xxxxx@ntdev…
>> This question just popped into mind and has little relevance to my life,
>> but I’m still
>> curious (perhaps it could yield new avenues for me and others to study).
>> -----------------------------
>>
>> If you were looking to hire a developer and were a party to the
>> interview process,
>> what questions would you ask the interviewee regarding windows driver
>> development
>> along with OS theory questions?
>>
>> Of course the basics regarding paged vs non-paged pools, IRQL’s, and
>> context. But what
>> else, and specifically…
>>
>> I could careless about the type of driver (ndis, filesystem, wdm,
>> NT…). What are some of the
>> technical questions you guys have asked or been asked?
>>
>> Perhaps something along these lines would make a great article for Peter
>> to Pontificate about.
>>
>> Matt
>>
>> P.S. - I really would like to hear something else than C vs C++.
>>
>>
>>
>>
>>
>

Wow… good thing I started my own company. I wouldn’t want to have to answer MOST of these questions. Sheeeeiiiit… ESPECIALLY Jon’s.

Hey Jon: Is “I dunno, that looks silly, I don’t get it, what’s your point?” a good answer to your question about the DerefP function? :slight_smile:

P

Peter,

I wouldn’t want to have to answer MOST of these questions. Sheeeeiiiit…

Could not agree with you more…

I believe the most indicative form of interview is just to present the candidate with (not-so-easy) sample problem, ask him to propose various possible solutions with a thorough analysis of pros and cons of each solution, and give him a couple of days to do it (he should be allowed to do some research meanwhile) . I believe this is the most indicative thing ever - it indicates both knowledge and the ability to investigate things. I believe the latter is particularly important - probably even more important that the former…

Anton Bassov

Man - I feel like a real jerk now! Thanks Peter! :slight_smile:

I am on my way to the stationary store to buy apology cards for all the
people I have ever interviewed. :frowning:

In fairness - the interviews I do are for people that are joining the core
OS team at Microsoft. Does that get me off the hook a little? Probably not.
:frowning:

And by the way - “I dunno, that looks silly, I don’t get it, what’s your
point?” is a perfectly valid answer that is followed by a clarifying
comment: “This code is part of the firmware for a man-killing robot.”

wrote in message news:xxxxx@ntdev…
> Wow… good thing I started my own company. I wouldn’t want to have to
> answer MOST of these questions. Sheeeeiiiit… ESPECIALLY Jon’s.
>
> Hey Jon: Is “I dunno, that looks silly, I don’t get it, what’s your
> point?” a good answer to your question about the DerefP function? :slight_smile:
>
> P
>
>

You Jon? As IF.

People need to understand that the REAL skill in asking a question like Jon’s DerfP function is in guiding and evaluating the follow-up discussion. There IS no right/wrong answer or even expected reply. The idea, instead, is to try to probe how people think.

JM: Is there a bug in this function?
PGV: I dunno, that looks silly, I don’t get it, what’s your point?
JM: This code is part of the firmware for a man-killing robot
PGV: Good. Whatever. You make a lot of man-killing robots here in Redmond?
JM: Not many. But the consequences of getting the code wrong is pretty serious.
PGV: You in the habit of wasting perfectly good semi-colons?
JM: Well,ah… so which semi-colon am I wasting?
PGV: Your interview question and you don’t know? The one after the closing brace of the function.
JM: Oh that. Well, that’s a typo. Is that the only problem in this function?
PGV: Yeah. Except, if you’re gonna deref a global variable why’d you put it in a function.
JM: To make it cleaner. Is there a problem with that?
PGV: “Cleaner” for me always called for something that came in one of those spray bottles.

and on it goes. Jon and I could be having that discussion for a loooong time.

Like Jon alluded to, a problem like this is a gateway… just a tool to see how the dude thinks, and even their attitude. But I think it’s harder for the interviewer to do right than the person being interviewed. The interviewer REALLY needs to know what they’re doing, or they’ll be in the shit in no time.

Having said all that, I seriously doubt I could pass a Microsoft interview loop for a level 59 SDET.

Peter
OSR

I completely agree. I rarely, if ever, ask a driver or NT specific question. What’s the point? You are going to learn it on the job. Asking questions that indicate passion, intelligence, drive, and communication skills are way more important to me then explaining to me the state rules around pnp and power irps.

d

-----Original Message-----
From: xxxxx@lists.osr.com [mailto:xxxxx@lists.osr.com] On Behalf Of xxxxx@hotmail.com
Sent: Sunday, March 09, 2008 6:40 PM
To: Windows System Software Devs Interest List
Subject: RE:[ntdev] Kernel and OS theory interview Questions

Peter,

I wouldn’t want to have to answer MOST of these questions. Sheeeeiiiit…

Could not agree with you more…

I believe the most indicative form of interview is just to present the candidate with (not-so-easy) sample problem, ask him to propose various possible solutions with a thorough analysis of pros and cons of each solution, and give him a couple of days to do it (he should be allowed to do some research meanwhile) . I believe this is the most indicative thing ever - it indicates both knowledge and the ability to investigate things. I believe the latter is particularly important - probably even more important that the former…

Anton Bassov


NTDEV is sponsored by OSR

For our schedule of WDF, WDM, debugging and other seminars visit:
http://www.osr.com/seminars

To unsubscribe, visit the List Server section of OSR Online at http://www.osronline.com/page.cfm?name=ListServer

wrote in message news:xxxxx@ntdev…

> Having said all that, I seriously doubt I could pass a Microsoft
> interview loop for a level 59 SDET.
>
> Peter
> OSR
>
>

Probably not. Neither could I. Those interviews are sort of like the
weed-out classes I took in Biology in college that were intended to
get rid of all the people who’s mothers wanted them to be doctors.
The fundamental problem is that it’s difficult to take somebody who
might be applying for an entry-level test development position (which
is what Peter is referring to with “level 59 SDET”) and get much out
of them, mostly because they probably haven’t got any real experience
yet.

Whenever I interview somebody with more than a couple of years of
experience, I ask them much better questions than those. I usually
ask them to describe some technology that they’ve worked on. If I can
find something on their resume that I know about, that’s good, but not
required. After they convince me that they actually did what their
resume says they did, I ask them why the people who came before them
made the choices that they did.

I interviewed a guy a couple of years ago who had worked on an Itanium
port of something. He hated the architecture, which didn’t really
surprise me. What did surprise me is that he couldn’t think of one
reason that Intel had chosen to build a chip like that. While I
certainly don’t think that Itanium is the best possible design ever, I
expect somebody like him (he had more than a few years’ experience) to
be able to come up with something.

- Jake Oshins

> The what happens on a page fault is one I have responded to "At what level of detail do

you want this, and for what OS/processor are you referring or is this just a stupid trick question?"

Actually, the question is not as stupid as it seems to be at the first glance. There is one feature that is the same for all OSes regardless of processor they run on - the failing thread has to be put to sleep while page is being retrieved from the paging file, which means you cannot take page faults in context that is not allowed to yield execution. This applies to any OS that allows page faults in kernel. The absolutely logical consequence are the questions " Why does the failing thread have to be put to sleep" and “Why some context may be not allowed to yield execution”. Therefore, the question about page faults may be used as an introduction to a thorough discussion of kernel mechanics…

Anton Bassov

One live story…

Few years ago, when crisis fired, I receive good job (free lancer) in
one would known firm for writing NDIS driver.

The job was critical part for large project and very time limited,
because one guy took it and did nothing. The Manager was in panic and
told me, he want only very good NDIS experience man. He gave me 48 hours
for prototyping and describing how I may go forward and finish in the so
limited time.

I had good driver background, but no NDIS experience.
I called one my friend (who member of this forum too :)) and he lectured
me 3 hours about NDIS specific. Thank you a lot!

The next day I spent for understanding Project and preparing for
meeting.
I received this Project and till now my boss doesn’t understand that it
was my first NDIS… :slight_smile:

Short Resumes:

  1. Never fear
  2. Bit impudence may help
  3. My opinion, it is impossible to be experience in every driver type.
    If you have background in 2-3, it is not the problem write else too!

Regards,
MG.

I think there are a couple of practical, non technical issues with
asking questions like this, that have to deal with some of the less than
ideal aspects of human nature. The first is how open-minded and free
form an exchange like this is, in my opinion, depends very critically on
what sort of mood all involved are in. My experience has been that the
norm is something like an 8 hour day of maybe six interviews. Questions
like this are not my favorite, but if it were to show up during the
first interview, no worries. By the end of the day, however, I just
want whoever is sitting in front of me asking this to just go away,
because I’ve been through this process X times before during the other
interviews. Clearly, this is not a position that I can defend as
reasonable, but it is what is, and I don’t think that I’m alone, It
works the other way as well - interviewer’s who are tired tend get
awfully narrow on what are supposed to be open ended questions if they
happen to occur at say hour 7, or they have talked to previous
interviewers and formed part of their opinion already. Unless you’re
willing to take a half hearted response late in the day at face value as
an indication of poor attitude/lack of dedication/whatever and mark
accordingly, I think that this is a real problem, because I think
everyone can come up with very real circumstances, like, say, 3 AM with
a 6 AM deadline, where his or her reaction to a round about general
problem solving question would be something like please go away.

The other thing and related to the first issue that can make a question
like is very difficult is if interviewer and interviewee have different
native languages, which in my experience is common, and if this occurs a
few times over the course the day, everyone, despite the best
intentions, just gets really worn out, and the quality of the later
interviews may take a serious nosedive. If you’re discussing something
a little more structured, then it’s pretty easy to work out something,
but for something like this where you first have to communicate and
agree on what the question is that you will answer before you can answer
it, on an intricate subject, with language issues, this can just be
exhausting, especially if this process occurs more than once during the
day. I think people on both sides just lost patience with this toward
the end of a long day, and people get kind of pissed off if you blow of
their favorite question, which a question like this one usually is.

It may not sound like it, but out of context, I like questions like
questions of this type, because they allow for creative thinking and
flexibility, but in the context of a long, hard, technical interview, I
think that the lesser angles of all of our natures conspire against them.

mm

xxxxx@osr.com wrote:

You Jon? As IF.

People need to understand that the REAL skill in asking a question like Jon’s DerfP function is in guiding and evaluating the follow-up discussion. There IS no right/wrong answer or even expected reply. The idea, instead, is to try to probe how people think.

JM: Is there a bug in this function?
PGV: I dunno, that looks silly, I don’t get it, what’s your point?
JM: This code is part of the firmware for a man-killing robot
PGV: Good. Whatever. You make a lot of man-killing robots here in Redmond?
JM: Not many. But the consequences of getting the code wrong is pretty serious.
PGV: You in the habit of wasting perfectly good semi-colons?
JM: Well,ah… so which semi-colon am I wasting?
PGV: Your interview question and you don’t know? The one after the closing brace of the function.
JM: Oh that. Well, that’s a typo. Is that the only problem in this function?
PGV: Yeah. Except, if you’re gonna deref a global variable why’d you put it in a function.
JM: To make it cleaner. Is there a problem with that?
PGV: “Cleaner” for me always called for something that came in one of those spray bottles.

and on it goes. Jon and I could be having that discussion for a loooong time.

Like Jon alluded to, a problem like this is a gateway… just a tool to see how the dude thinks, and even their attitude. But I think it’s harder for the interviewer to do right than the person being interviewed. The interviewer REALLY needs to know what they’re doing, or they’ll be in the shit in no time.

Having said all that, I seriously doubt I could pass a Microsoft interview loop for a level 59 SDET.

Peter
OSR

This is a fascinating discussion. As Peter is involved I wonder if it will
be Tony who has to step up and put an end to it?

On Mon, Mar 10, 2008 at 7:34 AM, Martin O’Brien
wrote:

> I think there are a couple of practical, non technical issues with
> asking questions like this, that have to deal with some of the less than
> ideal aspects of human nature. The first is how open-minded and free
> form an exchange like this is, in my opinion, depends very critically on
> what sort of mood all involved are in. My experience has been that the
> norm is something like an 8 hour day of maybe six interviews. Questions
> like this are not my favorite, but if it were to show up during the
> first interview, no worries. By the end of the day, however, I just
> want whoever is sitting in front of me asking this to just go away,
> because I’ve been through this process X times before during the other
> interviews. Clearly, this is not a position that I can defend as
> reasonable, but it is what is, and I don’t think that I’m alone, It
> works the other way as well - interviewer’s who are tired tend get
> awfully narrow on what are supposed to be open ended questions if they
> happen to occur at say hour 7, or they have talked to previous
> interviewers and formed part of their opinion already. Unless you’re
> willing to take a half hearted response late in the day at face value as
> an indication of poor attitude/lack of dedication/whatever and mark
> accordingly, I think that this is a real problem, because I think
> everyone can come up with very real circumstances, like, say, 3 AM with
> a 6 AM deadline, where his or her reaction to a round about general
> problem solving question would be something like please go away.
>
> The other thing and related to the first issue that can make a question
> like is very difficult is if interviewer and interviewee have different
> native languages, which in my experience is common, and if this occurs a
> few times over the course the day, everyone, despite the best
> intentions, just gets really worn out, and the quality of the later
> interviews may take a serious nosedive. If you’re discussing something
> a little more structured, then it’s pretty easy to work out something,
> but for something like this where you first have to communicate and
> agree on what the question is that you will answer before you can answer
> it, on an intricate subject, with language issues, this can just be
> exhausting, especially if this process occurs more than once during the
> day. I think people on both sides just lost patience with this toward
> the end of a long day, and people get kind of pissed off if you blow of
> their favorite question, which a question like this one usually is.
>
> It may not sound like it, but out of context, I like questions like
> questions of this type, because they allow for creative thinking and
> flexibility, but in the context of a long, hard, technical interview, I
> think that the lesser angles of all of our natures conspire against them.
>
> mm
>
>
>
>
>
>
>
>
> xxxxx@osr.com wrote:
> >


> >
> > You Jon? As IF.
> >
> > People need to understand that the REAL skill in asking a question like
> Jon’s DerfP function is in guiding and evaluating the follow-up discussion.
> There IS no right/wrong answer or even expected reply. The idea, instead,
> is to try to probe how people think.
> >
> > JM: Is there a bug in this function?
> > PGV: I dunno, that looks silly, I don’t get it, what’s your point?
> > JM: This code is part of the firmware for a man-killing robot
> > PGV: Good. Whatever. You make a lot of man-killing robots here in
> Redmond?
> > JM: Not many. But the consequences of getting the code wrong is
> pretty serious.
> > PGV: You in the habit of wasting perfectly good semi-colons?
> > JM: Well,ah… so which semi-colon am I wasting?
> > PGV: Your interview question and you don’t know? The one after the
> closing brace of the function.
> > JM: Oh that. Well, that’s a typo. Is that the only problem in
> this function?
> > PGV: Yeah. Except, if you’re gonna deref a global variable why’d
> you put it in a function.
> > JM: To make it cleaner. Is there a problem with that?
> > PGV: “Cleaner” for me always called for something that came in one
> of those spray bottles.
> >
> > and on it goes. Jon and I could be having that discussion for a loooong
> time.
> >
> > Like Jon alluded to, a problem like this is a gateway… just a tool to
> see how the dude thinks, and even their attitude. But I think it’s harder
> for the interviewer to do right than the person being interviewed. The
> interviewer REALLY needs to know what they’re doing, or they’ll be in the
> shit in no time.
> >
> > Having said all that, I seriously doubt I could pass a Microsoft
> interview loop for a level 59 SDET.
> >
> > Peter
> > OSR
> >
> >
>
> —
> NTDEV is sponsored by OSR
>
> For our schedule of WDF, WDM, debugging and other seminars visit:
> http://www.osr.com/seminars
>
> To unsubscribe, visit the List Server section of OSR Online at
> http://www.osronline.com/page.cfm?name=ListServer
>


Mark Roddy

Mark Roddy wrote:

Actually I find the discussion regarding English dialects a little more
fascinating. Since you are involved in that one, perhaps
James Thompson (or someone else from India) will have to step up and put
and end to it.

Matt

This is a fascinating discussion. As Peter is involved I wonder if it
will be Tony who has to step up and put an end to it?

On Mon, Mar 10, 2008 at 7:34 AM, Martin O’Brien
> wrote:
>
> I think there are a couple of practical, non technical issues with
> asking questions like this, that have to deal with some of the
> less than
> ideal aspects of human nature. The first is how open-minded and free
> form an exchange like this is, in my opinion, depends very
> critically on
> what sort of mood all involved are in. My experience has been
> that the
> norm is something like an 8 hour day of maybe six interviews.
> Questions
> like this are not my favorite, but if it were to show up during the
> first interview, no worries. By the end of the day, however, I just
> want whoever is sitting in front of me asking this to just go away,
> because I’ve been through this process X times before during the other
> interviews. Clearly, this is not a position that I can defend as
> reasonable, but it is what is, and I don’t think that I’m alone, It
> works the other way as well - interviewer’s who are tired tend get
> awfully narrow on what are supposed to be open ended questions if they
> happen to occur at say hour 7, or they have talked to previous
> interviewers and formed part of their opinion already. Unless you’re
> willing to take a half hearted response late in the day at face
> value as
> an indication of poor attitude/lack of dedication/whatever and mark
> accordingly, I think that this is a real problem, because I think
> everyone can come up with very real circumstances, like, say, 3 AM
> with
> a 6 AM deadline, where his or her reaction to a round about general
> problem solving question would be something like please go away.
>
> The other thing and related to the first issue that can make a
> question
> like is very difficult is if interviewer and interviewee have
> different
> native languages, which in my experience is common, and if this
> occurs a
> few times over the course the day, everyone, despite the best
> intentions, just gets really worn out, and the quality of the later
> interviews may take a serious nosedive. If you’re discussing
> something
> a little more structured, then it’s pretty easy to work out something,
> but for something like this where you first have to communicate and
> agree on what the question is that you will answer before you can
> answer
> it, on an intricate subject, with language issues, this can just be
> exhausting, especially if this process occurs more than once
> during the
> day. I think people on both sides just lost patience with this toward
> the end of a long day, and people get kind of pissed off if you
> blow of
> their favorite question, which a question like this one usually is.
>
> It may not sound like it, but out of context, I like questions like
> questions of this type, because they allow for creative thinking and
> flexibility, but in the context of a long, hard, technical
> interview, I
> think that the lesser angles of all of our natures conspire
> against them.
>
> mm
>
>
>
>
>
>
>
>
> xxxxx@osr.com mailto:xxxxx wrote:
> >


> >
> > You Jon? As IF.
> >
> > People need to understand that the REAL skill in asking a
> question like Jon’s DerfP function is in guiding and evaluating
> the follow-up discussion. There IS no right/wrong answer or even
> expected reply. The idea, instead, is to try to probe how people
> think.
> >
> > JM: Is there a bug in this function?
> > PGV: I dunno, that looks silly, I don’t get it, what’s your
> point?
> > JM: This code is part of the firmware for a man-killing robot
> > PGV: Good. Whatever. You make a lot of man-killing robots
> here in Redmond?
> > JM: Not many. But the consequences of getting the code
> wrong is pretty serious.
> > PGV: You in the habit of wasting perfectly good semi-colons?
> > JM: Well,ah… so which semi-colon am I wasting?
> > PGV: Your interview question and you don’t know? The one
> after the closing brace of the function.
> > JM: Oh that. Well, that’s a typo. Is that the only
> problem in this function?
> > PGV: Yeah. Except, if you’re gonna deref a global variable
> why’d you put it in a function.
> > JM: To make it cleaner. Is there a problem with that?
> > PGV: “Cleaner” for me always called for something that came
> in one of those spray bottles.
> >
> > and on it goes. Jon and I could be having that discussion for a
> loooong time.
> >
> > Like Jon alluded to, a problem like this is a gateway… just a
> tool to see how the dude thinks, and even their attitude. But I
> think it’s harder for the interviewer to do right than the person
> being interviewed. The interviewer REALLY needs to know what
> they’re doing, or they’ll be in the shit in no time.
> >
> > Having said all that, I seriously doubt I could pass a Microsoft
> interview loop for a level 59 SDET.
> >
> > Peter
> > OSR
> >
> >
>
> —
> NTDEV is sponsored by OSR
>
> For our schedule of WDF, WDM, debugging and other seminars visit:
> http://www.osr.com/seminars
>
> To unsubscribe, visit the List Server section of OSR Online at
> http://www.osronline.com/page.cfm?name=ListServer
>
>
>
>
> –
> Mark Roddy — NTDEV is sponsored by OSR For our schedule of WDF, WDM,
> debugging and other seminars visit: http://www.osr.com/seminars To
> unsubscribe, visit the List Server section of OSR Online at
> http://www.osronline.com/page.cfm?name=ListServer</mailto:xxxxx>

Jon,

Sorry, if I came off harsh on this, everytime I have had these
questions asked it was from a weenie “that knew” that the X86 way was the
only way that anyone would build a processor. The best one on this was a
senior architect at a major chip firm who told me that I was wrong “No one
ever built a 1’s complement computer and if they did integer exceptions
would not have resulted in a negative zero” Of course the guy was probably
in diapers when much of the computer technology was invented.


Don Burn (MVP, Windows DDK)
Windows 2k/XP/2k3 Filesystem and Driver Consulting
Website: http://www.windrvr.com
Blog: http://msmvps.com/blogs/WinDrvr
Remove StopSpam to reply

“the_el_vez” wrote in message news:xxxxx@ntdev…
> >I suspect if I asked you the “What happens when an exception occurs in a
> >program?” you would fail it horribly, since what I did not ask was “What
> >happens when an exception occurs in a Windows program on an x86
> >processor?”
>
> That is exactly the point. And I hope I wouldn’t fail it horribly on any
> platform that Windows runs on. :slight_smile:
>
>
>> The what happens on a page fault is one I have responded to “At what
>> level of detail do you want this, and for what OS/processor are you
>> referring or is this just a stupid trick question?” sorry a lot of the
>> time the “or …” is correct. In fact I had one interviewer tell me
>> that I did not know a thing about page faults, then was at a standards
>> conference a few weeks later where on of that companies architects
>> indicated my answer was correct for everything but the one lamebrained
>> project the interviewer had worked on.
>
> I didn’t ask what would happen on x86 or any particular platform on
> purpose. I agree with your view (at least I am taking that this is your
> view from the tone of your reply :slight_smile: ) that it is ridiculous to ask people
> interview questions that are specific to an implementation or project that
> the interviewee may have never seen or heard of.
>
>
>> On you routine, which version of the C standard or is the C++ and do you
>> want the pure standards answer or should one include the rationale?
>> Guess what the answer can be different.
>
> Exactly the point.
>
>
> I am definitely of the opinion that most of the interviews I have been on
> the receiving end of - were completely useless at extracting my knowledge.
> Of course - this assumes that I have some knowledge that can be extracted!
> :smiley:
>
> In my opinion - an interview is to find out what the person knows - not to
> try to trick them or get them to cry. BTW - I never have anyone write code
> in an interview - it is useless in my opinion as it is not even close to
> an approximation of how the person would actually code something up if
> they worked with you. I write all the code in the interviews. And I am
> ashamed to admit that I have at least once - had a bug in my code that I
> wrote during the interview that the candidate caught - and I have said to
> them “Excellent - most people don’t catch that in the interview. Very
> impressive!”. :smiley:
>
> Thanks!
>
>
> “Don Burn” wrote in message news:xxxxx@ntdev…
>>I suspect if I asked you the “What happens when an exception occurs in a
>>program?” you would fail it horribly, since what I did not ask was “What
>>happens when an exception occurs in a Windows program on an x86
>>processor?”
>>
>> The what happens on a page fault is one I have responded to “At what
>> level of detail do you want this, and for what OS/processor are you
>> referring or is this just a stupid trick question?” sorry a lot of the
>> time the “or …” is correct. In fact I had one interviewer tell me
>> that I did not know a thing about page faults, then was at a standards
>> conference a few weeks later where on of that companies architects
>> indicated my answer was correct for everything but the one lamebrained
>> project the interviewer had worked on.
>>
>> On you routine, which version of the C standard or is the C++ and do you
>> want the pure standards answer or should one include the rationale?
>> Guess what the answer can be different.
>>
>>
>> –
>> Don Burn (MVP, Windows DDK)
>> Windows 2k/XP/2k3 Filesystem and Driver Consulting
>> Website: http://www.windrvr.com
>> Blog: http://msmvps.com/blogs/WinDrvr
>> Remove StopSpam to reply
>>
>>
>> “the_el_vez” wrote in message
>> news:xxxxx@ntdev…
>>> One really good question (IMHO) that I always ask is “What happens
>>> during a
>>> page fault?”. It is a completely open ended question yet it gives the
>>> person
>>> a chance to show a lot of areas of knowledge. If they are a kernel dev
>>> they
>>> will typically have a completely different answer than a file system
>>> guy -
>>> but you can really get a good grasp of what they know from questions
>>> like
>>> this. Another favorite of mine in this same spirit is “What happens when
>>> an
>>> exception occurs in a program?”. I have found that people tend to loosen
>>> up
>>> because it is not a specific question like “implement strcmp()” - it is
>>> more
>>> of a platform to show what you know. BTW - my favorite question is this:
>>>
>>> Is there a bug in this routine:
>>>
>>> void
>>> DerefP(
>>> void
>>> )
>>> {
>>> *p;
>>> };
>>>
>>> I have had hour long discussions over this code. It opens the door to
>>> discussions of synchronization, compilation portability, coding style,
>>> performance and on and on. This question is particularly good for
>>> finding
>>> out if people really grasp asynchrony and multithreading. It also is
>>> telling
>>> if a person has been exposed to software that directly talks to
>>> hardware. I
>>> have been the 3rd or 4th interviewer in an interview loop where the
>>> candidate had “done horribly” in the previous interviews where they were
>>> having him implement red-black trees on the whiteboard, and then come in
>>> and
>>> bowl me over with the answers to these kinds of questions. However I
>>> must
>>> admit, the first time I asked the DerefP question to a candidate in an
>>> interview - the response was: “This is the dumbest interview question I
>>> have
>>> ever been asked.”. :slight_smile:
>>>
>>> “Matt” wrote in message news:xxxxx@ntdev…
>>>> This question just popped into mind and has little relevance to my
>>>> life, but I’m still
>>>> curious (perhaps it could yield new avenues for me and others to
>>>> study).
>>>> -----------------------------
>>>>
>>>> If you were looking to hire a developer and were a party to the
>>>> interview process,
>>>> what questions would you ask the interviewee regarding windows driver
>>>> development
>>>> along with OS theory questions?
>>>>
>>>> Of course the basics regarding paged vs non-paged pools, IRQL’s, and
>>>> context. But what
>>>> else, and specifically…
>>>>
>>>> I could careless about the type of driver (ndis, filesystem, wdm,
>>>> NT…). What are some of the
>>>> technical questions you guys have asked or been asked?
>>>>
>>>> Perhaps something along these lines would make a great article for
>>>> Peter to Pontificate about.
>>>>
>>>> Matt
>>>>
>>>> P.S. - I really would like to hear something else than C vs C++.
>>>>
>>>>
>>>>
>>>>
>>>>
>>>
>>>
>>
>>
>>
>
>

Actually, there exist operating systems that *don’t* sleep the thread on
a page fault (in the sense of putting it in an inactive dispatcher queue
anyway), but instead execute the paging *in* the faulting thread,
returning control to the location where the fault occurred once the page
is in memory. Heck, I wrote one once (a relatively trivial OS, admittedly).

Such OS’s usually do this so as to account for processor and disk access
quotas on a per-thread basis including page fault overhead. Also so that
it doesn’t matter whether you’re in a context where the thread can
“yield” or not (if it yields during the paging code, the paging sure
won’t be very efficient, though, so most often the thread priority is
elevated in such cases :-).

xxxxx@hotmail.com wrote:

> The what happens on a page fault is one I have responded to “At what level of detail do
> you want this, and for what OS/processor are you referring or is this just a stupid trick question?”

Actually, the question is not as stupid as it seems to be at the first glance. There is one feature that is the same for all OSes regardless of processor they run on - the failing thread has to be put to sleep while page is being retrieved from the paging file, which means you cannot take page faults in context that is not allowed to yield execution. This applies to any OS that allows page faults in kernel. The absolutely logical consequence are the questions " Why does the failing thread have to be put to sleep" and “Why some context may be not allowed to yield execution”. Therefore, the question about page faults may be used as an introduction to a thorough discussion of kernel mechanics…

Anton Bassov


Ray
(If you want to reply to me off list, please remove “spamblock.” from my
email address)

Martin O’Brien wrote:

Don makes a number of good points here, especially about how HR
screens out who you want. I have found them to dump good people for
far sillier reasons like “people skills.” I would also concur that
general OS questions are worthless.

It’s a tricky problem. If I were hiring a consultant for a specific
task, then I’d want to be pretty specific in my questions. For example,
I’ve done a lot of drivers, but I’ve never played in the NDIS world.
When someone calls me about an NDIS job, I always tell them that I could
probably get the job done, but it would be a better use of their dollars
to find someone who didn’t have to climb a big learning curve first.

But if I were hiring an employee for the long term, I’d much rather know
that they had a good general computing background, good debugging and
reverse engineering skills, and evidence that they are able and willing
to learn. Driver specifics can be taught. Common sense cannot.


Tim Roberts, xxxxx@probo.com
Providenza & Boekelheide, Inc.

I agree with you Tim about what is desirable; debugging, in particular,
was the only thing I suggested testing, because it is an invariant,
because, these days, if you don’t know WinDbg then you can’t write
drivers. I’m just not sure how to translate those wishes in to
questions, especially in written form, especially when it may not be you
administering the test/interview.

It is indeed a tricky problem.

mm

Tim Roberts wrote:

Martin O’Brien wrote:
> Don makes a number of good points here, especially about how HR
> screens out who you want. I have found them to dump good people for
> far sillier reasons like “people skills.” I would also concur that
> general OS questions are worthless.

It’s a tricky problem. If I were hiring a consultant for a specific
task, then I’d want to be pretty specific in my questions. For example,
I’ve done a lot of drivers, but I’ve never played in the NDIS world.
When someone calls me about an NDIS job, I always tell them that I could
probably get the job done, but it would be a better use of their dollars
to find someone who didn’t have to climb a big learning curve first.

But if I were hiring an employee for the long term, I’d much rather know
that they had a good general computing background, good debugging and
reverse engineering skills, and evidence that they are able and willing
to learn. Driver specifics can be taught. Common sense cannot.