Engaged Employer

4.5
Rating Trends
Recommend to a friend
Approve of CEO
Jeff Weiner
865 Ratings

## “Great culture, promotes work/life/health balance. ”

• Work/Life Balance
• Culture & Values
• Career Opportunities
• Comp & Benefits
• Senior Management

I have been working at LinkedIn full-time (Less than a year)

Recommends
Positive Outlook
Approves of CEO
Recommends
Positive Outlook
Approves of CEO

Pros

- 401k company match 50% of your contribution up to IRS limit. (as of 2015, this means \$9,000 free) - 100% healthcare, dental, vision, etc coverages - Free high quality breakfast, lunch, and dinner

Cons

Study well for your interviews folks! You'll enjoy it here.

53%
18%
28%

35%
33%
16%

3.1
Average

Hard

Average

Easy

## Software Engineer Interview

Declined Offer
Neutral Experience
Average Interview

Interview

// Question 1 /** * Returns a^b, as the standard mathematical exponentiation function */ public double pow(double a, int b) { // implementation here if(b == 0){ return a==0?Integer.MIN_VALUE:1; } if(b==1){ return a; } if(a==1){ return 1; } boolean isNegPower = false; if(b<0){ isNegPower = true; } double result = powHelper(a,Math.abs(b)); if(isNegative){ return 1/result; } return result; } private double powHelper(double a, int b){ if(b==1){ return a; } if(b&1){ return a*powHelper(a,b-1); } int result = powHelper(a,b/2) return result * result; } // Question 2 /* This class will be given a list of words (such as might be tokenized * from a paragraph of text), and will provide a method that takes two * words and returns the shortest distance (in words) between those two * words in the provided text. * Example: * WordDistanceFinder finder = new WordDistanceFinder(Arrays.asList("the", "quick", "brown", "fox", "quick")); * assert(finder.distance("fox","the") == 3); * assert(finder.distance("quick", "fox") == 1); */ public class WordDistanceFinder { Map<String,List<Integer>> wordToPos = new HashMap<>(); public WordDistanceFinder (List<String> words) { // implementation here for(int pos=0;pos<words.size();++pos){ String word = pos.get(pos); List<Integer> posList = wordToPos.get(word); if(posList==null){ posList = new ArrayList<Integer>(); } posList.add(pos); wordToPos.put(word,posList); } } public int distance (String wordOne, String wordTwo) { return findMin(wordToPos.get(wordOne),wordToPos.get(wordTwo)); } private int findMin(List<Integer> pos1, List<Integer> pos2){ if(pos1==null||pos2==null){ return -1; } int i=0,j=0; int min = Integer.MAX_VALUE; while(i<pos1.size()&&j<pos2.size()){ int currentMin = Math.abs(pos1.get(i)-pos2.get(j)) if(min>currentMin){ min = currentMin; } if(pos1.get(i)<pos2.get(j)){ ++i; }else{ ++j; } } return min; } } // Question 3 public interface TwoSum { /** * Stores @param input in an internal data structure. */ void store(int input); /** * Returns true if there is any pair of numbers in the internal data structure which * have sum @param val, and false otherwise. * For example, if the numbers 1, -2, 3, and 6 had been stored, * the method should return true for 4, -1, and 9, but false for 10, 5, and 0 */ boolean test(int val); } public class MyTwoSum implements TwoSum{ private List<Integer> list = new ArrayList<>(); void store(int input){ list.add(input); } boolean test(int val){ Set<Integer> elSeen = new HashSet<Integer>(); for(int el:list){ if(checkOverflow(val,el){ return false; } if(elSeen.contains(val-el)){ return true; } elSeen.add(el); } return false; } } bool checkOverflow(int val, int el){ int result = val-el; if(val<0&&el>0){ if(result>val){ return true; } } if(val>0&&el<0){ if(result<val){ return true; } } return false; }

Interview Questions

• // Question 1 /** * Returns a^b, as the standard mathematical exponentiation function */ public double pow(double a, int b) { // implementation here if(b == 0){ return a==0?Integer.MIN_VALUE:1; } if(b==1){ return a; } if(a==1){ return 1; } boolean isNegPower = false; if(b&lt;0){ isNegPower = true; } double result = powHelper(a,Math.abs(b)); if(isNegative){ return 1/result; } return result; } private double powHelper(double a, int b){ if(b==1){ return a; } if(b&1){ return a*powHelper(a,b-1); } int result = powHelper(a,b/2) return result * result; } // Question 2 /* This class will be given a list of words (such as might be tokenized * from a paragraph of text), and will provide a method that takes two * words and returns the shortest distance (in words) between those two * words in the provided text. * Example: * WordDistanceFinder finder = new WordDistanceFinder(Arrays.asList("the", "quick", "brown", "fox", "quick")); * assert(finder.distance("fox","the") == 3); * assert(finder.distance("quick", "fox") == 1); */ public class WordDistanceFinder { Map&lt;String,List&lt;Integer&gt;&gt; wordToPos = new HashMap&lt;&gt;(); public WordDistanceFinder (List&lt;String&gt; words) { // implementation here for(int pos=0;pos&lt;words.size();++pos){ String word = pos.get(pos); List&lt;Integer&gt; posList = wordToPos.get(word); if(posList==null){ posList = new ArrayList&lt;Integer&gt;(); } posList.add(pos); wordToPos.put(word,posList); } } public int distance (String wordOne, String wordTwo) { return findMin(wordToPos.get(wordOne),wordToPos.get(wordTwo)); } private int findMin(List&lt;Integer&gt; pos1, List&lt;Integer&gt; pos2){ if(pos1==null||pos2==null){ return -1; } int i=0,j=0; int min = Integer.MAX_VALUE; while(i&lt;pos1.size()&&j&lt;pos2.size()){ int currentMin = Math.abs(pos1.get(i)-pos2.get(j)) if(min&gt;currentMin){ min = currentMin; } if(pos1.get(i)&lt;pos2.get(j)){ ++i; }else{ ++j; } } return min; } } // Question 3 public interface TwoSum { /** * Stores @param input in an internal data structure. */ void store(int input); /** * Returns true if there is any pair of numbers in the internal data structure which * have sum @param val, and false otherwise. * For example, if the numbers 1, -2, 3, and 6 had been stored, * the method should return true for 4, -1, and 9, but false for 10, 5, and 0 */ boolean test(int val); } public class MyTwoSum implements TwoSum{ private List&lt;Integer&gt; list = new ArrayList&lt;&gt;(); void store(int input){ list.add(input); } boolean test(int val){ Set&lt;Integer&gt; elSeen = new HashSet&lt;Integer&gt;(); for(int el:list){ if(checkOverflow(val,el){ return false; } if(elSeen.contains(val-el)){ return true; } elSeen.add(el); } return false; } } bool checkOverflow(int val, int el){ int result = val-el; if(val&lt;0&&el&gt;0){ if(result&gt;val){ return true; } } if(val&gt;0&&el&lt;0){ if(result&lt;val){ return true; } } return false; }   Answer Question

Employees' Choice -50 Best Places to work , Glassdoor, 2013
Glassdoor’s Employees’ Choice Award - Top 50 Large Companies , Glassdoor, 2014

Unlock Profile
Size 5000+ Employees
Founded 2003
Type Company - Public (LNKD)
Industry Information Technology
Revenue \$2 to \$5 billion (USD) per year
Competitors

Feeling a bit disconnected to the business world? LinkedIn wants to help. The firm operates an online professional network designed to help members find jobs, connect with other professoinals, and locate business opportunities. The site has grown to reach more than 259 million users in some 200 countries since its launch in 2003. LinkedIn is free to join; it offers a paid premium membership with additional tools, and sells advertising. It additionally earns revenue through its job listing service, which allows companies to post job openings and search for candidates on ... More