Juniper Networks Interview Experience- SWE Intern (2023) (Selected)
In December 2022, I submitted my application with a referral, and I received confirmation of my interview at the end of January 2023. The interview process consisted of three rounds: first, a hiring manager round, followed by two technical rounds.
- Hiring Manager Round:
The introduction took place at the beginning of this 30-minute round. The interviewer was interested in my experience with my previous organization, specifically their products related to networks such as routers and switches. To assess my interest, the interviewer asked questions about my previous organization and the projects I worked on, including my role and responsibilities.
Few LP questions (similar ones):
1. Can you describe a time when you had to make a difficult decision that
affected your team or organization, and how did you arrive at that decision?
2. How do you identify and address performance issues or conflicts within your
team, and what steps do you take to foster a culture of accountability
and continuous improvement ?
Additionally, he provided information about the open role and his team’s ongoing projects.
Following this round, the university recruiter promptly scheduled my first technical round.
2. Technical Round 1:
The interviewer had been with the company for a decade, and the round with him lasted an hour. It began with my introduction, which took around 10 to 15 minutes. He then delved into my resume and posed various questions, such as inquiring about a particular project and asking about my role and reasons for certain actions. Afterward, we proceeded to Hackerrank, where he asked me to code a linked list, including basic operations such as insert, add, and delete from scratch.
During the discussion, he asked about concepts like a memory leak, dynamic allocation of memory in C++, and the differences between stack and heap memory. We also discussed when memory allocation occurs and how to deallocate memory.
Here are a few follow-ups questions:
1. How can you detect and diagnose a memory leak in a C++ program?
2. What are some common causes of memory leaks, and how can you prevent them?
3. Can you describe some tools or techniques for debugging and profiling
memory usage in C++?
4. Can you explain how stack memory and heap memory differ in terms of
memory management, performance, and scope?
5. What are some common stack-allocated data types in C++, and how are
they different from heap-allocated data types?
6. Can you describe some scenarios where you would use stack memory versus
heap memory in a C++ program?
Few concepts-only questions up on DSA ( not to code, just because he wants to check my basics, I showed the structure for every question on hackerrank):
1. Describe how to implement a graph traversal algorithm, such as
breadth-first search or depth-first search, and discuss their applications in solving problems such as shortest path or minimum spanning tree?
2. Can you walk me through how to design and implement a hash table data
structure, including collision resolution strategies and load factor management?
3. Explain how to implement a heap data structure, such as a binary
heap or a Fibonacci heap, and discuss their applications in sorting and priority queue operations?
4. Describe how to implement a trie data structure, and discuss its
advantages and disadvantages compared to other data structures for text processing and search?
Finally, after a few follow-up questions, they invited me for the second technical round.
3. Technical Round 2:
The interviewer was a senior software engineer and started with an introduction and she directly jumps to networks-related questions like:
1. Different OSI Layer ?
2. What happens at IP Link layer ?
3. What is ARP Protocol ?
4. TCP Protocol ?
5. what is uint8_t ?
She gave me a problem involving an IP address header that includes various components such as source, destination, offset, checksum, and body with bits. I was tasked with selecting the appropriate data structure to organize and construct the details of this header.
I use struct something like:
She said to use the appropriate datatype which is uint8_t, as we are playing with bits here.
Another problem she gave where 32 bits are given, I need to revere every eight bits from the last:
0x00000100 0x00000101 0x00000110 0x00001100
Output should be :- 12 6 5 4
I used the left shift operator from last for every 8-bit and make it in decimal.
Overall it went well and she look satisfied and wished me luck with the result.
Result: Selected !! Hurray !!