Ciena On Campus || BPS delivery

ciena logo
ciena
bps deliveryRejected
November 18, 20250 reads

Summary

I recently interviewed for a BPS Delivery role at Ciena on campus, initially applying for a C++ developer position. The interview process, which concluded in a rejection, involved an online assessment followed by two in-person rounds covering data structures, algorithms, operating systems, project-specific questions, and C++ concepts.

Full Experience

My Interview Experience at Ciena

I recently gave the Ciena test for a BPS delivery role on-campus, which was advertised as a Java position, even though I had initially applied for a C++ developer role. This was a 6-month internship with a potential for a Pre-Placement Offer (PPO).

Online Assessment (OA)

The OA consisted of MCQs covering OS, OOPs, and Aptitude questions. I found this section to be fairly easy.

Round 1: Pen and Paper DSA Test

This round was a pen and paper Data Structures and Algorithms test, with 3 questions to be completed in 40 minutes. The questions were standard easy to medium level:

  1. Coin Change
  2. Spiral traversal of a matrix
  3. Array traversal while finding the power of 2 less than or equal to each element

Round 2: In-Person Interview

This was the in-person interview round, and I believe being interviewed last might have negatively impacted my chances. The interviewer started by asking me about my projects, specifically which one I was most familiar with. They delved into why I built it, and asked questions about authorization and authentication, API versioning, HTTP status codes (client-side and server-side responses), and how JWT tokens work.

Next, they moved onto DSA. They drew a tree on paper and asked for its DFS and BFS traversal. I wrote them down, but the interviewer claimed my DFS traversal was incorrect, though I'm unsure if they misread it. They also asked which data structures are used for DFS and BFS. A conceptual question followed: what would happen if a heap was implemented as a tree with many nodes instead of a binary tree?

Then we transitioned to Operating Systems. I was asked about the difference between thread and process scheduling and was asked to write code for threads and locks.

Following that, they inquired about my familiarity with SQL. Since I hadn't practiced in months, I admitted I wasn't very proficient. Despite this, they asked me about normalization and types of joins, but kindly said they wouldn't ask me to write queries given my admitted lack of practice.

Finally, they moved to C++ specific questions, covering topics like what dynamic_cast is, how to detect memory leaks in a C++ program, how to process a binary file in C++, and how to create a random number generator in C++. Some of these I knew but forgot due to pressure, and some I simply didn't know. The interview lasted around 1.5 hours.

Ultimately, I was rejected. I felt that since this was a Java role, and my interview was at the very end when they might have already found enough suitable candidates, I might have been treated somewhat unfairly. The interviewer seemed unsupportive; even when I gave correct answers, they would try to confuse me. If I struggled to understand a question and tried to repeat it to ensure we were on the same page, they would ask me to stop. Many times, they demanded a simple 'yes' or 'no' without wanting to hear my reasoning. It was a very bad interview experience, honestly making me feel like giving up on coding.

Interview Questions (13)

Q1
Coin Change Problem
Data Structures & AlgorithmsMedium

Solve the classic Coin Change problem to find the minimum number of coins needed to make a specific sum.

Q2
Spiral Matrix Traversal
Data Structures & AlgorithmsMedium

Implement the spiral traversal of a given matrix.

Q3
Array Traversal with Power of Two Condition
Data Structures & AlgorithmsEasy

Given an array, traverse it and for each element, find the largest power of 2 that is less than or equal to that element.

Q4
Project Discussion & Web Fundamentals
Other

Discuss your most familiar project, including the motivation behind building it. Expect questions on authorization, authentication, API versioning, HTTP status codes (client-side and server-side responses), and how JWT tokens function.

Q5
DFS and BFS Tree Traversal
Data Structures & AlgorithmsEasy

Given a tree (drawn on paper), perform Depth-First Search (DFS) and Breadth-First Search (BFS) traversals. Also, identify the data structures commonly used for DFS and BFS.

Q6
Heap with Many Nodes
Data Structures & AlgorithmsMedium

Discuss the implications if a heap were implemented using a tree with many nodes per level instead of a standard binary tree structure.

Q7
Thread vs. Process Scheduling
OtherMedium

Explain the key differences between thread scheduling and process scheduling in an operating system.

Q8
Code for Threads and Locks
OtherMedium

Write code demonstrating the use of threads and locks for synchronization.

Q9
SQL Normalization and Joins
OtherEasy

Explain database normalization (e.g., normal forms) and describe different types of SQL joins.

Q10
C++ Dynamic Cast
OtherMedium

Explain what 'dynamic_cast' is in C++ and its use cases.

Q11
C++ Memory Leak Detection
OtherHard

Describe methods or tools used to detect memory leaks in a C++ program.

Q12
C++ Binary File Processing
OtherMedium

Explain how to process a binary file in C++ (e.g., reading/writing binary data).

Q13
C++ Random Number Generator
OtherMedium

Describe how to create a random number generator in C++.

Discussion (0)

Share your thoughts and ask questions

Join the Discussion

Sign in with Google to share your thoughts and ask questions

No comments yet

Be the first to share your thoughts and start the discussion!