Skip to end of metadata
Go to start of metadata

You are viewing an old version of this page. View the current version.

Compare with Current View Page History

Version 1 Next »

How it worked:

  • I applied on WaterlooWorks
  • Their recruiter reached out via email, and scheduled two interviews each for 45 minutes

First Interview

  1. What’s an MMU?
  2. What’s the point of virtual addressing?
  3. What’s a process?
  4. What are the different memory sectors for a process?
  5. Dynamic Library vs Static Library?
  6. What’s the concept of trashing?
  7. What’s Latency vs Bandwidth?
  8. We have a DDR memory controller, with clock speed of 1.5GHz and a 64-bit address bus.
    1. What’s the information bandwidth?
    2. What’s the latency? Can we ask about latency?
  9. What are the different things we need to think about when handling multiple threads?
  10. What’s API compatibility and what’s ABI compatibility?
  11. What’s the UNIX call for linking a library?
  12. What are different ways of linking libraries?

Second Interview

  1. What are the steps in the compilation process? 
  2. What does a linker do? 
  3. What does a loader do? 
  4. What's the entry point to your program?
  5. What's the linker for gnu's C toolchain?
  6. What's the memory layout of a process?
  7. Is there any problems with the code snippet below? 
char *hello(void) {
	return "hello";
}

int main(void) {
	char* hi = hello();
	printf("%s\n", hi);
	return 0;
}




  • No labels