I would rather see a few questions about debugging. e.g. "What is a Read-Modify-Write problem and how can they be avoided?" "If you have a system in which there are 5 logical or physical processes with test points between each, and you know what the data should look like at each test point, given that the input data is correct, and the output from the system is incorrect, which test point would you validate first?" "What is the advantage of In Circuit Debugging over In Circuit Emulation?" "Given a system that fails consistently in actual operation but operates correctly as soon as it is attached to a test fixture, list some methods you might employ to find the problem." "The only tools you can have to debug a project are an LCD panel (parallel interface) or a single logic probe with pulse mode. Which would you select?" And a few others: "You are asked to recommend a microcontroller for a low quantity system that will be used in house only. Do you select a chip with all the required hardware on board, or "bit bang" the few interfaces needed via software and specify a lower cost chip with less onboard peripheral hardware? What if it was a high quantity system for sale to a large market segment?" "If you are hired as a contract programmer for the initial coding of a project that is expected to have a long life and possibly many revisions, would you choose to write the code in a commonly available language with which you are less familiar or with a little known language which you have used many times in the past?" (no right answer to that one, but it will be an interesting conversation) "During the development of a proprietary application in the workplace, you hit upon a unique way of solving a common programming problem which does not directly relate to the project. Will you A) publish the snippet B) Ask your boss if you can publish the snippet C) not mention the solution to anyone but use it again at this or other jobs in the future." -----Original Message----- From: piclist-bounces@MIT.EDU [mailto:piclist-bounces@MIT.EDU] On Behalf Of Vitaliy Sent: Thursday, October 18, 2007 22:05 To: piclist Subject: [EE] Test for embedded developer candidate Four years of going through resumes and conducting interviews convinced me that tests are the best and the most objective way to judge a candidate's qualifications. Here's an example that tests basic electronics knowlege: http://scantool.net/pub/electronics_test.pdf This particular one was put together back in 2004, right now I'm working on updating it to make it more relevant to what we do (feedback is welcome). I'm thinking about putting together a couple more tests, to test math and software development skills. While math test is easy to write, I'm having difficulty coming up with specific problems to evaluate programming skills. Joel Spolsky has this to say on the subject: http://www.joelonsoftware.com/articles/fog0000000073.html Specifically, he suggests the following exercises: 1. Reverse a string in place 2. Reverse a linked list 3. Count all the bits that are on in a byte 4. Binary search 5. Find the longest run in a string 6. atoi 7. itoa (great, because they have to use a stack or strrev) The exercises are followed up by a design problem (design a house or a trash can or ...) What do you think of those? In your opinion, what skills are essential for embedded developers? What sets them apart from desktop app programmers? Best regards, Vitaliy -- http://www.piclist.com PIC/SX FAQ & list archive View/change your membership options at http://mailman.mit.edu/mailman/listinfo/piclist -- http://www.piclist.com PIC/SX FAQ & list archive View/change your membership options at http://mailman.mit.edu/mailman/listinfo/piclist