Shibu LijackShibu Lijack May 16, 2020 • 7 min read (1351 words)How I prepared for LinkedIn interview

How I prepared for LinkedIn interview

I'm a huge fan of Ember.js and it was my dream to work for a company like LinkedIn (the biggest Ember powerhouse). When I cleared the LinkedIn interviews, a lot of friends and acquaintances reached out to me for tips and guidance for their upcoming interviews. While talking to them, I noticed this general misconception that you need to be at the red coder level to crack such interviews.

Fun fact: I'm not a red coder. In fact, competitive programming is not my strongest suit. And yet, I got in.

However, it was definitely not a walk in the park too. In this post, I'll shed some light on how I prepared for the interviews. Do keep in mind that I applied for the position of UI engineer and so this post is tailor-made for Front-end interviews.

PREREQUISITE

1. Resume

One of the most overlooked elements during an interview preparation is building a quality resume. When I say quality, it does not refer to a fancy one-page design, but it's the content that matters.

  • Be crisp and clear.
  • Highlight facts and figures.
  • Try to include only work experience, achievements, education and skills most relevant to the employer.
  • Finally, proofread your resume to ensure there are no spelling or grammar errors (I caught a few embarassing mistakes while proofreading mine).

2. Identifying interview modules

The world of frontend development is so vast that one could get lost in the sea of information while preparing. So it's important to identify the core modules of an interview.

2.1. Data structure & Algorithms:

This module includes problems that involve extensive whiteboard coding with moderate algorithmic and data structure complexity. You won’t be given all the information you need to solve the problem. Instead, you’ll need to ask clarifying questions to identify use cases, edge/corner cases, etc.

What the interviewers are looking for is to get a sense of how you approach a problem.

2.2. Javascript:

This module includes language specific questions, and in the case of Frontend interviews, it's Javascript. You may be tested on specifics of the language like prototypal inheritance, scoping, hoisting or specifics of DOM and Event APIs. You could also be asked to implement a library to solve a particular problem.

What the interviewers are looking for is to guage your expertise on vanila JS concepts, and not framework specific knowledge.

2.3. Design & architecture:

Not to be confused with the system design round of backend interviews, you may be asked to design an app that has a heavy client component and to also look at the client/server relationship. You should be able to speak about things like security around data transport between client/server as well as ways to optimize client performance.

What the interviewers want to learn here is that you can explain why you chose the technologies you chose and that you understand these technologies; the pros and cons; what the tradeoffs are.

Tip: Don't use the latest buzz words just for the sake of using buzz words.

3. Company knowledge

Reading about the company and preparing specifically for it, is usually ignored by many candidates. But guess what, it is one of those sections that can really set you apart from others. You may or may not be directly asked questions about it but this is going to help you prepare so much better. For instance,

I came to know that accessibility is a big priority for LinkedIn and hence focused on learning the nuances of accessibility-first development approach.


PREPARATION

1. Leetcode

LeetCode is an amazing platform that helped me to enhance my skills, expand my knowledge and prepare for data structure and algorithms related interview problems. Not only I could learn the suggested solutions for programming questions, but I could also view the solutions provided by hundreds of Leetcoders with better time and space complexity, and this changed the way I approached problem solving.

Disclaimer: My initial opinion was that competitive coding is not necessary for an UI interview but once I started seeing the patterns, I realised how important it is to think in terms of performance and optimal solutions.

Although the premium account is a little expensive, it's definitely worth the money. But if you're just getting to know about Leetcode or if you're new to online programming platforms, I'd recommend you to try the free problems first before opting for the premium plan. Leetcode premium has 4 notable sections:

  • Easy
  • Medium
  • Hard
  • Company specific

Each category again has multiple sub categories:

  • Arrays
  • Strings
  • Linked List
  • Trees
  • Graphs
  • Backtracking
  • Searching/Sorting

I started with the Easy problems, narrowing the scope to Arrays at first and then gradually moved to other sub categories. Every day, I practiced atleast 2 problems and if time permits, I checked out the "similar questions" section in Leetcode and tried to solve them too. The key is to time box the problem solving duration. I allocated one hour during mornings and 2 hours during nights on weekdays. Fortunately for me, I could apply the learnings at my day job and that helped a lot.

Weekends was when I felt really productive with Leetcode. In a marathon-like approach, I paced my weekends with 8 hours per day preparation. For me, the key was to take 30 minutes break between every sprint and also change things up a bit (like watching this YouTube video) when I felt fatigued. But again, fortunately for me, I have an understanding family and my wife makes sure that I don't have any distractions or chores during the weekend.

Tip: Although it might be tempting to solve only the company-specific problems, I wouldn't recommend it, as there might be a lot of medium/hard problems which could soon become overwhelming and demotivating. Even if you're under a short timeline which would allow you to solve only the company-specific problems, sort them by difficulty and then work your way up.

2. Javascript

There's no one-stop shop for all the JS needs. I'll list down the various resources which helped me with Javascript.

  1. MDN web docs – One of the best resources for developers, by developers. Make sure you check out the intermediate and advance sections.
  2. javascript.info – Excellent resource with sample problems and solutions. Make sure you skim through Part 2 and Part 3 that cover how to manage the browser page: add elements, manipulate their size and position, dynamically create interfaces and interact with the visitor.
  3. You Don't Know JS – This is a series of books diving deep into the core mechanisms of the JavaScript language. Extremely detailed and informative.

3. Design

When it comes to system design, I relied on popular YouTube channels like this video series by Gaurav Sen, but they're more aligned with backend development. Some of the alternate resources that I found very useful are:

  1. WAI-ARIA Authoring Practices – This is a guide for understanding how to use WAI-ARIA 1.1 to create an accessible components and applications. It demonstrates how to make common rich internet application patterns and widgets accessible by applying WAI-ARIA roles, states, and properties and implementing keyboard support.
  2. Learning JavaScript Design Patterns by Addy Osmani – This book explores applying both classical and modern design patterns to the JavaScript programming language. Once you've understood the concepts mentioned here, your approach to programming will change forever. Strongly recommended.

Personal note: I understand that all these resources might seem daunting, so take one step at a time. Honestly, when I first started preparing, I never thought I'd be able to cover all these topics. But with some discipline and sheer determination, I was able to accomplish my goals in a span of 3 months. The rate of knowledge consumption might be different for you, some of you might hustle through this quicker, whereas some might take a bit more time, but if perserverance prevails, you'd definitely get there.

If I can do it, you can too! All the very best!

#personal #interview
arrow_backArticles