[Qualcomm] Fresher advice for Compiler Engineering interview? (C++, LLVM, Arch)
Hi everyone,
I'm a fresher (finishing my M.Tech) and I'm preparing for a Compiler Engineering interview at Qualcomm. I've mostly worked on building ML inference tools and benchmarking so far, so this will be my first time doing a pure compiler interview loop.
I collected some general insights:
- C/C++
- DSA
- Computer Architecture
- Compiler Internals (LLVM, SSA, optimizations)
I asked some Compilers Members from AMD, they told me:
- Get experience with c++ and oops concepts.
Understanding of llvm project
Os, computer architecture , dsa
2.basic tree questions for DSA (I think leetcode medium)
Topo sort using bfs/dfs, lowest common ancestor, diameter of a tree, minimum spanning tree
Compiler questions were mostly based on optimisation techniques taught in undergraduate courses.
There were a lot of C/C++ questions related to pointers, types, program layout, and OOPs concepts. And some computer architecture and digital logic questions as well.
LLVM (managerial) was mostly about my previous experience and how did I perform testing but not a lot of emphasis was given on it.
Since I am a fresher, I want to make sure I am studying the right things and not getting lost in the weeds. I have a few questions for anyone who has been through this or works in the field:
- LLVM depth: How deep do they expect a fresher to know LLVM? Should I focus heavily on writing custom optimization passes, or is understanding the general IR and backend enough?
- Computer Architecture: Do they usually ask general concepts (caches, memory layouts, pipelines), or do I need to study very specific ARM/RISC-V architecture details?
- DSA: Is it standard Leetcode-style questions, or do they focus more on compiler-heavy data structures like trees, graphs, and bit manipulation?
- Compiler Design : how deep should i prepare ?
Any general tips, things to avoid, or resources would be really helpful. Thanks!