ShareChat SDE-1(React Native) Interview Experience.

Shubham Patwa
4 min readMay 14, 2022

My never ending craving for working in startups was one of the main reasons why I’d fantasized ShareChat as a dream company to work for. Others obviously include the good tech team, the app’s popularity and the decent pay scale.

When I saw there’s an opening for React Native role at ShareChat, the very first thing I did was I started making connections with the folks working at ShareChat. Texted them that I’m interested in the role & why I’m a suitable candidate. And eventually got the referral.

Round-1 (Screening Round)

This was a half an hour interview, mostly focused on the requirements of the role and where I fit into it.

We discussed about the work I’d done in my Org so far. Some questions were around the things that I’d mentioned in my resume, like CodePush, Deep Linking, etc.

Round-2 (JS deep dive + React Native)

The interview started with introduction. He then asked me to open any JS editor/compiler and started bombarding JS questions. I’ve mentioned below the questions that I can recall:

1) The first question seemed like a childish one. But gosh! I couldn’t answer it. He asked me the output of this statement.

const temp = 1 + '1' - '5' * 4 - '9';

I couldn’t figure out the answer. Since I didn’t know how “-” & “*” operator behaved with strings in JS. All I knew was, if we use a “+” operator with a string it would perform concatenation.

Did you guess the answer yet? If your answer isn’t -18, see the explanation below:

2) Add custom methods to Array.prototype, like swapping array elements and few other array operations.

Other questions were:

Data types in JS.
Explain hoisting & closure.
let, const, var difference.
Explain Higher Order Functions.
Explain this in arrow vs non-arrow function with examples.

Regarding “this” keyword, I tried to explain him using below example. I did mess up a bit, but eventually was able to satisfy him with my explanation.
Here’s a great article on the same that you can refer.

Further, he asked me to explain the event loop. I explained it quite well since I’d read few articles & had watched this wonderful video on it.
He then asked me the output of the following:

setTimeout(() => console.log(1),0);
console.log(2);
setTimeout(() => console.log(3), 2);
Promise.resolve(true).then(() => console.log(4));
console.log(5);

The JS part took around 35-40 minutes and then we moved on to React Native. He asked few questions which included:

use of useCallback vs useMemo hook
CodePush in RN

He then quickly moved on to some coding in React Native and asked me to make a custom switch component.
I asked few questions about the implementation he wanted and then ended up coding the switch component which resembles the below CodeSandbox.

Round 3: (Projects + RN deep dive)

The interview started and she introduced herself as the React Native lead at ShareChat. I gave my introduction and then discussion started regarding my work experience in React Native and Mobile Application development in general.

I explained one of my projects where I with the help of a senior member had reduced the App’s startup time significantly by lazy loading components which were not required at time of startup.
Then discussion went around RAM bundling and how RN app is loaded into memory.

We discussed about Redux, its usage and alternatives. She also asked about the ways to optimise app performance.

She seemed interested in asking questions related to native modules and more around writing native bridge APIs. As I hadn’t worked on this part, this went as a negative point for me.

The discussion lasted for around 30–35 minutes and then we moved on to coding part.
She asked me to implement a component having a list of data and a header. The header should be visible once user scrolls down to some fixed vertical offset and should be hidden otherwise.
She also asked to animate the header. I used LayoutAnimation as it happens to be easy to implement.

I’ve added the CodeSandbox link for the implementation below:

While coding I did forget the props of FlatList, she insisted that I could google it. Also, I took a bit time to debug an error (trust me debugging on CodeSandbox is tough, and that too when someone is watching :( )

The very next day, received call from HR informing that they’ll not be moving ahead with my candidacy. I was a bit surprised as my rounds went fine.

I asked about the feedbacks and she shared that:
1) I seemed nervous and not so confident on my answers.
2) I did not have prior working experience in native Android. (They needed someone having experience working in Brownfield React Native app, so that when required, one could understand and write the Android native code as well.)

Contemplation:

  1. I should have revised the topics more.
  2. I should have shown some confidence in my Android skills. (I had done some basic native Android projects in college, but I wasn’t very confident about it since I’d not worked on it for about a year.)

I hope my experience of not getting the treasure, guide someone possess their treasure.

Marvel fans can relate 😎

Thank you!

--

--

Shubham Patwa

Professionally into Frontend. Personally, there’s no end.