Me postulé en línea. El proceso tomó 4 semanas. Acudí a una entrevista en Cisco (San Jose, CA) en may 2010
Entrevista
1. Define Storage Classes and explain application domain.
register - tell to the compiler for use a CPU register for fast aceess for that variable.
auto - it's a variable created and initialized when it is defined. It is not visible outside of the block.
static - defined inside of the function retain its value between calls. Always is initialized with 0. Defined as global in a file is visible on for the functions from that file.
extern - the definition of the variable is in another file.
2. Define the Storage Qualifiers
const - define a variable that can not change its value along the program execution.
volatile - define a variable that can be changed indirectly. An example can be a counter register that is updated by hardware.
mutuable - a member of a structure or object can be changed even if the structure, for example is declared const:
Ex: struct complex {mutuable int x; int y;};
const complex Mycomplex = {1, 2};
Mycomplex.x = 3; /* correct */
3. Give an example for a variable "const" and "volatile". Is it possible?
Yes, a status register for a microcontroller.
4. Detect if a linked list is circular.
Need to use 2 pointers, one incrementing by 1 and another by 2. If the list is circular, then pointer that is incremented by 2 elements will pass over the first pointer.
5. Have you any remarks?
#define res(a) a*a
Using in this form the result will not be like we expect. Thinking that "a" is replaced with (2+3), then we will obtain 2+3*2+3 = 11 instead (2+3)*(2+3) = 25.
Use always #define res(a) (a)*(a)
6. Define a "dangling" pointer
Dangling pointer is obtained by using the address of an object which was freed.
7. Any difference between "const int*ptr" and int *const ptr" ?
Yes, it's a major difference. First define a constant data and second define a constant pointer.
8. What is the declaration and definition of a variable?
The definition contains the implementation for a method or variable declaration. This is just an example.
9. Give a solution for a stack overflow situation.
func_call() {
funct_call();
}
Every time the above function is called the return address is stored onto the stack. Calling in this infinite loop will cause a stack overflow.
10. Give 4 examples for an infinite loop.
a. while (1) {}
b. for (;;) {}
c. do {}while{1};
d. label:
goto label;
Preguntas de entrevista [1]
Pregunta 1
What are the difference between DES and RSA algorithm?
They care about your skills, rather than your background. They have a template which they provide and you got to fill that, everyone is provided a unique number. You are instructed not to disclose any of your personal details in the due course of your interview.
The interview process was two rounds. The first round was a behavioral interview. Straightforward questions, like tell me about the most technically challenging project you have worked on. The second round was a system design interview.
3 technical rounds of 35-45 mins each for a 5 years experience JS fullstack.
1. Project currently working on + design patterns employed and resume based questions in details to check the depth.
2. System design interview - asked me to mention an approach to design a microservice for retail client. Followed up by questions on why I've chosen a particular tech stack and questions on how to tackle certain situations in real word on such services (inventory + payments etc).
3. DS based test - question was bit easy.