EmbeddedRelated.com
Forums

Embedded software interview question collection

Started by Unknown September 12, 2006
<dreamguy007@hotmail.com> wrote in message 
news:1158111196.188520.159910@p79g2000cwp.googlegroups.com...
> Hi all, > > Lately I've been assigned to interview many candidates. Sometimes > it's > hard to ask questions that actually can reveal candidate's true > potential, skills, etc. > > I'm trying to collect some good interview questions for embedded > software engineer positions > Can anyone contribute? Thanks!
I would ask what they have done outside of work that is relevent. If someone is passionate about something then they will do it for fun as well as when they have to.
<dreamguy007@hotmail.com> wrote in message 
news:1158111196.188520.159910@p79g2000cwp.googlegroups.com...
> Hi all, > > Lately I've been assigned to interview many candidates. Sometimes it's > hard to ask questions that actually can reveal candidate's true > potential, skills, etc. > > I'm trying to collect some good interview questions for embedded > software engineer positions > Can anyone contribute? Thanks! >
Show the candidate "coax" on a sheet of paper and ask how many syllables it has. The correct answer is of course two. Peter
"Peter Dickerson" <first{dot}surname@tesco.net> wrote in message 
news:D6PNg.1072$2g5.990@newsfe7-win.ntli.net...
> "Steve at fivetrees" <steve@NOSPAMTAfivetrees.com> wrote in message > news:yeWdnRhvg58HJJrYnZ2dnUVZ8tadnZ2d@pipex.net... >> "Tim Wescott" <tim@seemywebsite.com> wrote in message >> news:bemdnaBBKJ-zA5rYnZ2dnUVZ_vKdnZ2d@web-ster.com... >> > dreamguy007@hotmail.com wrote: >> >> Hi all, >> >> >> >> Lately I've been assigned to interview many candidates. Sometimes >> >> it's >> >> hard to ask questions that actually can reveal candidate's true >> >> potential, skills, etc. >> >> >> >> I'm trying to collect some good interview questions for embedded >> >> software engineer positions >> >> Can anyone contribute? Thanks! >> >> >> > We would: >> > >> > * Ask them to calculate the number of pixels on the screen that >> > corresponded to some real-world distance. >> > >> > * Ask them to write said calculation in C (it was just one line -- at >> > least if we were going to hire them). >> > >> > * Ask them to rewrite said calculation without using floating point. >> >> Huh? Why would calculating the number of pixels on a screen involve > floating >> point? > > I took it that Tim was asking about distance on-screen, which I took could > be diagonal. In that case, assuming the screen was flat, the natural > solution would require a square root. Performing the calculation without > floating point would demonstrate some skills useful in low-end embedded > systems - how to get good enough answers. Of couse it might just be a > trick > question as in max(abs(x1-x2),abs(y1-y2))...
Ah, my bad. I missed the "that corresponded to..." bit. Oops. Steve http://www.fivetrees.com
Julian Gardner wrote:
> > Well ive been arguing with a company because they cant get to grips what > volatile really does and because of this the new piece of hardware they have > released witb an embedded processor does not work if the cache is switched > on!!!! > > I have tried for 2 years to get them to understand but they still screw the > design up. > > I now need to got through all my code and try to move every variable into a > seperate block of memory so there will be no memory corruption.
Off topic, but ... maybe it's because my brain hasn't clicked on yet, but what has the use of volatile got to do with cache? -- Michael N. Moran (h) 770 516 7918 5009 Old Field Ct. (c) 678 521 5460 Kennesaw, GA, USA 30144 http://mnmoran.org "So often times it happens, that we live our lives in chains and we never even know we have the key." The Eagles, "Already Gone" The Beatles were wrong: 1 & 1 & 1 is 1
"Michael N. Moran" <mike@mnmoran.org> wrote in message 
news:2CRNg.59500$e9.5509@bignews4.bellsouth.net...
> Julian Gardner wrote: >> >> Well ive been arguing with a company because they cant get to grips what >> volatile really does and because of this the new piece of hardware they >> have released witb an embedded processor does not work if the cache is >> switched on!!!! >> >> I have tried for 2 years to get them to understand but they still screw >> the design up. >> >> I now need to got through all my code and try to move every variable into >> a seperate block of memory so there will be no memory corruption. > > Off topic, but ... maybe it's because my brain hasn't clicked on yet, > but what has the use of volatile got to do with cache? >
volatile on a variable stops a compiler from doing optimisations like caching. This is useful if there is more than one thread using the variable because the actual variable and a cached copy would not match. Peter
In comp.arch.embedded,
Peter <meltyb@hotmail.com> wrote:
> > "Michael N. Moran" <mike@mnmoran.org> wrote in message > news:2CRNg.59500$e9.5509@bignews4.bellsouth.net... >> Julian Gardner wrote: >>> >>> Well ive been arguing with a company because they cant get to grips what >>> volatile really does and because of this the new piece of hardware they >>> have released witb an embedded processor does not work if the cache is >>> switched on!!!! >>> >>> I have tried for 2 years to get them to understand but they still screw >>> the design up. >>> >>> I now need to got through all my code and try to move every variable into >>> a seperate block of memory so there will be no memory corruption. >> >> Off topic, but ... maybe it's because my brain hasn't clicked on yet, >> but what has the use of volatile got to do with cache? >> > > volatile on a variable stops a compiler from doing optimisations like > caching. This is useful if there is more than one thread using the variable > because the actual variable and a cached copy would not match. >
And how would the compiler do this? Will it insert a complete cache flushing sequence after the variable update? On the other hand, if you only worry about different threads, you do not need to worry about the cache. All threads run on the same CPU (multi core excluded here ;-) and will therefore use the same cached value, no problem. You only need to worry about the cache if there is some kind of DMA at work. You might also run into problems with self modifying code using separate data and instruction caches. Use volatile for variables that get updated outside the normal execution flow (from an interupt or from another thread). This prevents the compiler from re-using a value read into a register, but this has nothing to do with caches. -- Stef (remove caps, dashes and .invalid from e-mail address to reply by mail)
"Michael N. Moran" wrote:
> Julian Gardner wrote: >> >> Well ive been arguing with a company because they cant get to >> grips what volatile really does and because of this the new piece >> of hardware they have released witb an embedded processor does >> not work if the cache is switched on!!!! >> >> I have tried for 2 years to get them to understand but they still >> screw the design up. >> >> I now need to got through all my code and try to move every >> variable into a seperate block of memory so there will be no >> memory corruption. > > Off topic, but ... maybe it's because my brain hasn't clicked on > yet, but what has the use of volatile got to do with cache?
Say the variable is really a hardware status bit, memory mapped. If declared volatile in the code there will be a memory access for each read. If the hardware diverts that read to the cached value, it will no longer reflect reality. So the system needs some means of automatically invalidating the cache. To me, this is a primary objection to using memory mapped i/o ports, which can easily be avoided with a separate i/o space. I don't know if this is the OPs problem, but it seems likely. -- "I was born lazy. I am no lazier now than I was forty years ago, but that is because I reached the limit forty years ago. You can't go beyond possibility." -- Mark Twain -- Posted via a free Usenet account from http://www.teranews.com

dreamguy007@hotmail.com wrote:

> Hi all, > > Lately I've been assigned to interview many candidates.
You can use the online testing at brainbench.com as the input filter for the bulk.
> Sometimes it's > hard to ask questions that actually can reveal candidate's true > potential, skills, etc.
Ask about the design challenges that he dealt with in the past, and the real accomplishments.
> I'm trying to collect some good interview questions for embedded > software engineer positions > Can anyone contribute? Thanks! >
"Can you please tell me what are you good at". Vladimir Vassilevsky DSP and Mixed Signal Design Consultant http://www.abvolt.com
Peter Dickerson wrote:

> "Steve at fivetrees" <steve@NOSPAMTAfivetrees.com> wrote in message > news:yeWdnRhvg58HJJrYnZ2dnUVZ8tadnZ2d@pipex.net... > >>"Tim Wescott" <tim@seemywebsite.com> wrote in message >>news:bemdnaBBKJ-zA5rYnZ2dnUVZ_vKdnZ2d@web-ster.com... >> >>>dreamguy007@hotmail.com wrote: >>> >>>>Hi all, >>>> >>>>Lately I've been assigned to interview many candidates. Sometimes it's >>>>hard to ask questions that actually can reveal candidate's true >>>>potential, skills, etc. >>>> >>>>I'm trying to collect some good interview questions for embedded >>>>software engineer positions >>>>Can anyone contribute? Thanks! >>>> >>> >>>We would: >>> >>>* Ask them to calculate the number of pixels on the screen that >>>corresponded to some real-world distance. >>> >>>* Ask them to write said calculation in C (it was just one line -- at >>>least if we were going to hire them). >>> >>>* Ask them to rewrite said calculation without using floating point. >> >>Huh? Why would calculating the number of pixels on a screen involve > > floating > >>point? > > > I took it that Tim was asking about distance on-screen, which I took could > be diagonal. In that case, assuming the screen was flat, the natural > solution would require a square root. Performing the calculation without > floating point would demonstrate some skills useful in low-end embedded > systems - how to get good enough answers. Of couse it might just be a trick > question as in max(abs(x1-x2),abs(y1-y2))... > > Well, that was my interpretation anyway. > > Peter > >
No square roots -- it's more like you need distance_on_screen = distance_out_there * scale_factor, and the scaling factor isn't an integer. Besides, you could always do integer square roots. -- Tim Wescott Wescott Design Services http://www.wescottdesign.com Posting from Google? See http://cfaj.freeshell.org/google/ "Applied Control Theory for Embedded Systems" came out in April. See details at http://www.wescottdesign.com/actfes/actfes.html
Vladimir Vassilevsky wrote:

> > > dreamguy007@hotmail.com wrote: > >> Hi all, >> >> Lately I've been assigned to interview many candidates. > > > You can use the online testing at brainbench.com as the input filter for > the bulk.
Interesting. I didn't see one that really pertained to embedded systems, but one could do some generic stuff.
> >> Sometimes it's >> hard to ask questions that actually can reveal candidate's true >> potential, skills, etc. > > > Ask about the design challenges that he dealt with in the past, and the > real accomplishments. >
No, don't. I've been there. Everyone is prepared to talk about design challenges and accomplishments. Ask them to choose some project that they feel proud about, and give a 45 minute chalk talk (you may have to explain what 'chalk' is to the 20-somethings). We* would ask them to give it as if we were engineers new on the team, or visiting firemen, or whatever. In the course of the chalk talk look for design challenges they overcame, and accomplishments that they made. If they can't talk about the project that they're most proud about and make it clear what they've done personally then chances are they haven't really done anything. Note that you will have to make some judgments about personality, but you can usually tell the difference between 'modest' and 'didn't do anything'.
> >> I'm trying to collect some good interview questions for embedded >> software engineer positions >> Can anyone contribute? Thanks! >> > > "Can you please tell me what are you good at". >
I always liked "Can you please tell me what you're bad at". I finally ended up starting my answer with "Answering contrived, trendy interview questions". Once again, this is a canned interview question that folks will have canned answers to. It's not a bad question to ask, but it's easy to fake the answer. For a while we were interviewing candidates, and for some reason _everyone_ was bringing a physical sample of their work. We had EEs bringing circuit boards they'd designed, software guys bringing sheafs of paper. I'm sure that the mechanical engineers had to deal with dripping hydraulic cylinders. Come to think of it, I'm glad I wasn't interviewing for an engineer to develop sewage treatment equipment... * I say "we" because this came out of a several-year long push at a previous employer years ago. I was one of a few lead software engineers that did a lot of interviewing. While I contributed to what was asked, I was not the main developer of the interview strategy. I thought it was really keen, however, and would certainly do it again should I ever have to interview someone. -- Tim Wescott Wescott Design Services http://www.wescottdesign.com Posting from Google? See http://cfaj.freeshell.org/google/ "Applied Control Theory for Embedded Systems" came out in April. See details at http://www.wescottdesign.com/actfes/actfes.html