Rubrik, Inc. interview experience Real time questions & tips from candidates to crack your interview

Frontend developer II

Rubrik, Inc.
upvote
share-icon
3 rounds | 5 Coding problems

Interview preparation journey

expand-icon
Journey
Interviewing with Rubrik was a rewarding experience. After my resume was shortlisted through Instahyre, an HR representative contacted me. During our initial call, she discussed my expectations and provided details about the company. The interview process consisted of three rounds. Unfortunately, I was rejected in the second-to-last round.
Application story
I initially applied through Instahyre by creating a resume using an Overleaf template and including all my relevant front-end skills and experience. A recruiter then contacted me regarding a Software Engineer (Frontend) position at Rubrik. I inquired about the role and the interview process, and they provided detailed information about the interview rounds.
Preparation
Duration: 2 months
Topics: JavaScript, System Design and Web Fundamentals.
Tip
Tip

Tip 1: Focus on improving your JavaScript proficiency and solve DSA problems using JavaScript.
Tip 2: Develop a strong understanding of asynchronous JavaScript.
Tip 3: Practice solving machine coding problems using React and Vanilla JS.

Application process
Where: Other
Eligibility: No criteria
Resume Tip
Resume tip

Tip 1: Highlight your most impactful projects, particularly those recognized within your previous organization.
Tip 2: Quantify the improvements and impact of your projects using specific statistics and metrics to demonstrate your value effectively.

Interview rounds

01
Round
Medium
Face to Face
Duration60 minutes
Interview date12 May 2022
Coding problem2

1. Curry Function Builder

Create a curry function that takes a single function as its argument and returns a new function. This returned function should accept one argument at a time and can be called multiple times until it receives the minimum number of arguments needed (based on how many arguments the original function requires). Once the required number of arguments has been provided, the original function should be called with those arguments.

Examples:

1. 
function add(a, b) {
 return a + b;
}

const curriedAdd = curry(add);
curriedAdd(3)(4); // 7

const alreadyAddedThree = curriedAdd(3);
alreadyAddedThree(4); // 7


2. 
function multiplyThreeNumbers(a, b, c) {
 return a * b * c;
}

const curriedMultiplyThreeNumbers = curry(multiplyThreeNumbers);
curriedMultiplyThreeNumbers(4)(5)(6); // 120

const containsFour = curriedMultiplyThreeNumbers(4);
const containsFourMulFive = containsFour(5);
containsFourMulFive(6); // 120

2. jsonStringify

Implement a function **`jsonStringify`**,  that converts a JavaScript value into a JSON string.

- Only JSON-serializable values (i.e. boolean, number, **`null`**, array, object) will be present in the input value.
- Ignore the optional parameters in the original API.

Examples:

jsonStringify({ foo: 'bar' }); // '{"foo":"bar"}'
jsonStringify({ foo: 'bar', bar: [1, 2, 3] }); // '{"foo":"bar","bar":[1,2,3]}'
jsonStringify({ foo: true, bar: false }); // '{"foo":true,"bar":false}'

02
Round
Hard
Face to Face
Duration60 minutes
Interview date18 May 2022
Coding problem2

1. BFS in Graph

Easy
10m average time
90% success
0/40
Asked in companies
Morgan StanleySamsung R&D InstituteRubrik, Inc.

Write a function that performs the breadth-first search (BFS) algorithm on a directed graph represented in adjacency list format, starting from a specified node.

BFS is used to traverse a graph or tree, beginning at the root node and exploring all neighbouring nodes at the current depth level before proceeding to nodes at the next level. The function should return an array containing the nodes of the graph in the order they were visited. While visiting neighbouring nodes can be done in any order, for this task, ensure that you visit each node's neighbours from left to right.

const graph1 = {
 A: ['B', 'C', 'D'],
 B: ['E', 'F'],
 C: ['G', 'H'],
 D: ['I', 'J'],
 E: ['D'],
 F: [],
 G: [],
 H: [],
 I: [],
 J: [],
};

const graph2 = {
 'A': ['B', 'C'],
 'B': ['D', 'E'],
 'C': ['F', 'G'],
 'D': [],
 'E': [],
 'F': [],
 'G': [],
};

Try solving now

2. Memoize Function Wrapper

Create a function called memoize(func) that takes a single function parameter, func, and returns a memoized version of that function. You can assume that func will only accept strings or numbers as its arguments.

03
Round
Hard
Face to Face
Duration90 minutes
Interview date25 May 2022
Coding problem1

1. System Design

Design a desktop email client that can send and receive email messages given an email provider service.


What are the core functionalities needed?

- Sending email messages to an SMTP server.
- Retrieving email messages from an IMAP server.
- Access email messages already on the device.

What operating systems does the app need to support?

The popular ones: are Windows, macOS, and Linux/Ubuntu.

What email services/accounts need to be supported?

We don't have to focus on that aspect for this question. Assume that the user can make authenticated requests to preconfigured SMTP/IMAP servers to send/retrieve emails successfully.

Many native desktop email clients like Apple Mail, Outlook, and Mailspring allow users to connect to multiple email services like iCloud Mail, Gmail, and Exchange to show emails from multiple services within the app. However, that is beyond the scope of this question.

Does the application need to work offline?

Yes, where possible. Outgoing email messages should be saved and sent out when the application goes online. Users should still be allowed to browse and search for emails on the device even if they are offline.

Should emails between the same sender and topic be threaded?
Threading of message conversations will be good but not required.

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
4 rounds | 8 problems
Interviewed by Amazon
8518 views
0 comments
0 upvotes
Analytics Consultant
3 rounds | 10 problems
Interviewed by ZS
907 views
0 comments
0 upvotes
company logo
SDE - Intern
1 rounds | 3 problems
Interviewed by Amazon
3320 views
0 comments
0 upvotes
company logo
SDE - 2
4 rounds | 6 problems
Interviewed by Expedia Group
2581 views
0 comments
0 upvotes
Companies with similar interview experiences
company logo
Frontend developer II
3 rounds | 5 problems
Interviewed by PhonePe
656 views
0 comments
0 upvotes