Ciena interview experience Real time questions & tips from candidates to crack your interview

UI/UX Engineer 2

Ciena
upvote
share-icon
5 rounds | 10 Coding problems

Interview preparation journey

expand-icon
Journey
I started preparing for data structure concepts and JavaScript three months before this interview. If you are in a front-end developer role, it's essential to focus on core JavaScript before jumping into any framework.
Application story
I got a call from the recruiter through Naukri.com. I updated my resume to include all my latest skills and projects. I used to update my profile daily.
Why selected/rejected for the role?
I was selected because I had the relevant skills for the role. Always try to tackle the given problem with full dedication and showcase your approach.
Preparation
Duration: 4 months
Topics: JavaScript, Data Structures, TypeScript, Angular, OOPS
Tip
Tip

Tip 1: Practice writing code by thinking through the solutions. Don't just memorize the solutions or practice verbally.

Tip 2: Focus on core JavaScript concepts before jumping into learning a framework directly.

Application process
Where: Naukri
Eligibility: No
Resume Tip
Resume tip

Tip 1: Make a single-page resume.

Tip 2: Add only the skills you feel confident about.

Interview rounds

01
Round
Medium
Online Coding Test
Duration90 minutes
Interview date1 Mar 2021
Coding problem2

It was an online round on the Codility platform with two problems to be attempted in 90 minutes. The problems were based on data structures—one on trees and one on graphs—and another on UI concepts.

1. Count Complete Binary Tree Nodes

Easy
10m average time
90% success
0/40
Asked in companies
FacebookDunzoLinkedIn

Given a complete binary tree, you are supposed to return the number of nodes in the given tree.

Problem approach

Step 1: The approach is to first traverse the tree. To see the maximum value in the given path, the pre-order traversal is used to traverse the given binary tree. 
Step 2: While traversing the tree, keep track of the maximum value of the node that we have seen so far. If the current node is greater or equal to the max value, then increment the count of the visible node and update the max value with the current node value.

function solution(T) {
if (!T) {
return 0;
}
let leftSubTreeVisibleNodes = getVisibleNodes(T.l, T.x);
let rightSubTreeVisibleNodes = getVisibleNodes(T.r, T.x);
return leftSubTreeVisibleNodes + rightSubTreeVisibleNodes + 1;
}

function getVisibleNodes(tree, prevMax) {
if (!tree) {
return 0;
}
// pass max value up to current node to check for visibility
let leftCount = getVisibleNodes(tree.l, Math.max(prevMax, tree.x));
let rightCount = getVisibleNodes(tree.r, Math.max(prevMax, tree.x));
if (tree.x >= prevMax) {
return leftCount + rightCount + 1;
} else {
return leftCount + rightCount;
}
}

Try solving now

2. Frontend Development

There is a list of elements in the UI with a comment count. Fetch the comments from an API and render them in an optimised manner.

02
Round
Easy
Video Call
Duration60 minutes
Interview date4 Mar 2021
Coding problem3

This round was majorly based on JS Core concepts and some DS problems.

1. JS Concepts

What is Prototypal Inheritance?
Explain Hoisting, Event Loop?
What is the difference between Shallow and Deep Copy? (Learn)

Problem approach

Tip 1: Focus on JS concepts and o/p questions.
Tip 2: Cross-check your solution thoroughly before discussing it with the interviewer.
Tip 3: Study theory as well as keep examples ready.

2. Middle Of Linked List

Easy
20m average time
80% success
0/40
Asked in companies
NoBrokerIBMHCL Technologies

Given a singly linked list of 'N' nodes. The objective is to determine the middle node of a singly linked list. However, if the list has an even number of nodes, we return the second middle node.

Problem approach

Step 1: Traverse the linked list using two-pointers. 
Step 2: Move one pointer by one and the other pointers by two. When the fast pointer reaches the end, the slow pointer will reach the middle of the linked list.

Try solving now

3. Add Linked Lists

Easy
20m average time
80% success
0/40
Asked in companies
Morgan StanleyQualcommIntuit

Given two numbers represented by linked lists. Your task is to find the sum list and return the head of the sum list.
The sum list is a linked list representation of the addition of two numbers.

Problem approach

Step 1: Calculate the sizes of the given two linked lists. 
Step 2: If sizes are the same, then calculate the sum using recursion. Hold all nodes in the recursion call stack till the rightmost node, calculate the sum of the rightmost nodes and forward carry to the left side. 
Step 3: If the size is not the same, then follow the below steps: 
a) Calculate the difference in sizes of two linked lists. Let the difference be diff 
b) Move different nodes ahead in the bigger linked list. Now use step 2 to calculate the sum of the smaller list and right sub-list (of the same size) of a larger list. Also, store the carry of this sum. 
c) Calculate the sum of the carry (calculated in the previous step) with the remaining left sub-list of a larger list. Nodes of this sum are added at the beginning of the sum list obtained in the previous step.

Try solving now
03
Round
Medium
Video Call
Duration60 minutes
Interview date9 Mar 2021
Coding problem2

This round was based on JS Concepts like Promises, and Is JS compiled or interpreted. Some TypeScript concepts like type vs inheritance were also asked. Designing classes was also discussed.

1. System Design

Show the usage of the interface in creating classes and what is the advantage of the same. Coding problem on the same as well.

Problem approach

We can use an interface for multiple similar classes having similar functionality. It helps us to define a contract and also we can assign instances of any class to that interface type item at runtime.

2. JS Question

Convert a callback approach to a promise-based approach.

Problem approach

Tip 1: Study the concept of promises and its advantage over callbacks.
Tip 2: Study promise APIs like all, any etc.

04
Round
Medium
Video Call
Duration60 minutes
Interview date12 Mar 2021
Coding problem2

This round was based on DS and JS.

1. Right View of a binary tree

Moderate
35m average time
65% success
0/80
Asked in companies
AdobeSAP LabsRazorpay

You have been given a Binary Tree of integers.
Your task is to print the Right view of it.
The right view of a Binary Tree is a set of nodes visible when the tree is viewed from the Right side and the nodes are printed from top to bottom order.

Problem approach

Step 1: Level order traversal is used. 
Step 2: Print the rightmost node of every level. So, do a level order traversal on the tree and print the last node at every level.

Try solving now

2. JS Question

Write a custom deep copy function in JS.

Problem approach

function deepCopy(obj) {
const copyObj = {}
for (const key in obj) {
if (typeof obj[key] === 'object') {
copyObj[key] = deepCopy(obj[key]);
} else {
copyObj[key] = obj[key];
}
}
return copyObj
}

05
Round
Easy
HR Round
Duration30 minutes
Interview date12 Mar 2021
Coding problem1

It was a discussion with the project manager

1. Basic HR Questions

Tell me about yourself
Why are you looking for a change?
What are your strengths?
Where do you see yourself in the upcoming 5 years?

Problem approach

Prepare for some behavioural questions as well.

Here's your problem of the day

Solving this problem will increase your chance to get selected in this company

Skill covered: Programming

What is recursion?

Choose another skill to practice
Similar interview experiences
company logo
SDE - 1
3 rounds | 3 problems
Interviewed by Ciena
0 views
0 comments
0 upvotes
company logo
UI Developer 2
5 rounds | 10 problems
Interviewed by Ciena
1464 views
0 comments
0 upvotes
company logo
Software Engineer
2 rounds | 6 problems
Interviewed by Ciena
1271 views
0 comments
0 upvotes
company logo
SDE - Intern
1 rounds | 3 problems
Interviewed by Amazon
3319 views
0 comments
0 upvotes