About Me
Blog roll[ ];
-
16 years ago
-
Thursday, August 28, 2008
Interview redux
Friday, August 8, 2008
Interview
Just spent the whole day down in Hamilton for a job interview. Six others, all from the University of Auckland, travelled down. Took around one and a half hours each way. I wouldn't have been a pleasant journey if you didn't make sure your bladder was empty. If not, you'd be squirming to flush our your memory leak. Core dumps can be archived.
The first test was an IQ test which constisted mainly of words and number associations. Then there were different tests for people who were going for different positions: VHDL and software. For VHDL, the test was not timed. The software test, which I was originally given, came in three parts: Algorithms, Linux proficiency, and C code.
The algorithm part was not do-able at all. I didn't understand the significance of the big O notation, space, and amortise of the functions we had to write:
- For a singly linked list a with an unknown number of elements n, write a function called get_n that takes in the list and a number k that returns the (n - k)th element from the list.
- For a singly linked list a, write a function called check_linked that checks for cycles in the linked list and returns true if there are or false if not.
- For an array a with a known number of elements n, write a function that rotates the list at element k.
- Something about having a list of page tables that can be written to by Applications and asking how we could make sure they weren't being used by other Applications requesting the pages being written to in an efficient way.
- A question that was too long for me to remember. Something about managing a list of resources and figuring out the resource intensive ones. They noted that going through the whole list would be too inefficient so they proposed a relaxed algorithm which had something to do with n bins and sets.
- A router can delay the transmission of packets. There will be 24*60*60 = 86,400 different values for time. Find a way to reduce the number of values below 1000.
- What is wrong with this: x = x++; ?
- Find the bug in the internet checksum code. (Casting of addr inconsistently)
- In this source code, why is the assert always failing? (Passing of a pointer and allocating memory to it and asserting that the pointer is no longer a null reference)
- Explain why the outputs are like this? (int a[10] created and print outs of its size and each of its elements are made)
- What is another way to do the same: node_t->size ?
- What other ways are there to do a[2] without using the ++, += and comma operators?
- Write a recursive function that performs the factorial calculation.
- Complete the function for inserting an element into a linked list.
- Given this circuit, express it in VHDL. How can you increase the clock frequency of this circuit?
- Find 3 syntax and 1 functional error in the following VHDL code. Why will this VHDL code not be used when implementing on a Xilinx FPGA.
- What are the disadvantages to a logic element with 4 inputs to an LUT with a flip-flop at the output?
- What are the disadvantages of clocked memory resources?
- What is the metastability problem? How can you make a circuit more tolerant of metastable signals?
- Draw the output for the clock selector circuit. What is the problem with this circuit? Fix the problem identified and draw your circuit and expected output.
