| Job Summary: | Real-time embedded firmware development for high-capacity optical modems. Using dedicated Arm processors and both bare-metal and real time OS based processors. |
|---|---|
| Job Responsibilities: | Firmware coop working on embedded real-time DSP and control systems. The work will involve programming and testing the embedded control system for Infinera’s state of the art Optical Modem ASIC. Tasks may include matlab simulation, hardware modelling in C++, real time firmware coding and test, real time database api development. digital asic simulation. |
| Required Skills: | The student should have experience with C and C++. An ideal candidate will also have experience using matlab. Course work covering, DSP, control theory and communications theory is an asset. |
Questions
Behavioural
- What do you know about Infinera? Why Infinera?
- Telecommunications
- What is the hardest problem you have solved? Biggest achievement?
- Tell me about a time you wish you’d handled a situation differently with a colleague.
- How have you handled a difficult situation with a coworker?
Theory
Summary
- C, C++ features (static, volatile)
- Semaphores, deadlocks, mutexes
- Kernel level processing
- Networking issues and protocol
C/C++
- Explain overriding vs overwriting
- What is
static? What isvolatile? When would you use each? - Static member functions
- How does polymorphism work?
- How would you debug some issue (like memory corruption)
Transmission
- Difference between SPI/UART/I2C
RTOS
- Why would you use an RTOS? When would you not?
- Difference between mutexes and semaphores?
- Polling vs interrupts? When to use each?
OSes
- Do you know gRPC? gRPC
- What does single threaded mean to you?
- Explain all processes that happen in kernel level in any OS
- How does user page and kernel page communicate with each other?
- How would you design a system for packets exchange?
Algorithms
Summary:
- Arrays
- Binary search
- 2 pointer search
- Sliding window
- Kadane algorithm
- Strings
- Reverse string
- Linked lists
- Reverse singly linked list (Done)
- Reverse doubly linked list
- Merge 2 sorted linked lists
- Add, delete, search element of linked list
- Find middle of linked list
- Find last nth element of list
- Detect cycle in list
- Stacks and queues
- Stack (FIFO) using arrays
- Stack using linked list
- Queue using linked list
- Queue using arrays
- Circular buffer
- Bit manipulation
- atoi, itoa, itob
- Add in binary
- Two’s complement
- Endianness swap
- Extras
- BTs
- Hash tables
- DFS/BFS
- Sorting