Jul 26, 2017

Walmart Labs Interview Experience (6 Years experience in Java Development Stack)

Posting on behalf of my friend.

I applied in Walmart Labs through employee referral, next day got call from HR and asked me to brief about my work and how much I am interested in relocating Bangalore. He informed they will schedule interview (Telephonic) next week.Whole interview process took one week to complete - 2 Telephonic followed by 5 F2F discussion.

2 Telephonic Technical Discussion


1st Webex/Telephonic discussion (DS Questions)

  1. Find one triplet such that indexes are in increasing order so as values at index.
     http://www.geeksforgeeks.org/find-a-sorted-subsequence-of-size-3-in-linear-time/
    Follow up question to Optimize using one array since we have to find only one triplet not all. 
  2. Find all nodes at distance k from a target node.
    http://www.geeksforgeeks.org/print-nodes-distance-k-given-node-binary-tree/

2nd Webex/Telephonic discussion (DS and Design Questions)

  1. Design a stack such that it provides push(), pop() and min( ) is in O(1). Use only Stack not any other Data structure.http://www.geeksforgeeks.org/design-and-implement-special-stack-data-structure/
  2. Design a app for "Restaurant table booking" :
    - Database Design (Various tables involved) and how they are related (UML/ER Diagram)-
    - What are APIs need to be exposed at high level
    - Flow of application
    - More stress on booking efficiently and
    - Handling various scenarios like how to maintain empty & vacant seats for multi-storage  building of Hotels with tables. 
Received feedback by next day and was asked to come for F2F discussion.They provided flight tickets. It was one day event. Started early morning 6:00 AM from Hyderabad and came back Hyderabad by 11:30 PM. I had 5 F2F technical discussions at Walmart Labs office in Bangalore. 

5 F2F Technical Discussion

1st F2F discussion (Java/DS/Projects) :
  1. Project detailed discussion - In depth discussion of project I was working and my contribution.
    - Why this and that ?
    - Some other way to do ?
  2. Java Wrapper Class related question. What is importance of Wrapper class in Java ?
  3. Immutable class in Java and what is its significant in java ?
  4. Singleton class discussion and sample code.
    - Lazy and Early Initialization of Singleton
    - Double Checked locking sample code.
    - Holder pattern to create Singleton instance 
  5. Files with multiple lines -  two words passed as input. Find min distance between them
  6. Binary tree horizontal distance based question- print all nodes in sorted order of hd. i.e: Nodes at Horizontal distance: -3 -2 -1 0 1 2 3 (Used TreeHashmap instead of HashMap)
    http://www.geeksforgeeks.org/print-binary-tree-vertical-order-set-2/
2nd F2F discussion (DS/Resume scanning) 
  1. Write sample code to generate all permutation of a given string.
    - Idea was to do iteration of all recursion and 
    makes sure no mugged up.
    http://www.geeksforgeeks.org/write-a-c-program-to-print-all-permutations-of-a-given-string/
  2. Find Longest palindrome in a string - Brute force solution to DP solution.
    http://www.geeksforgeeks.org/longest-palindrome-substring-set-1/
  3. Resume scanning understand where I have used which technologies
3rd F2F discussion (Java/DS) 
  1. Brief overview of  project I am working on and some questions related to it. I mentioned, I have written parser for SQL Server using javacc and it uses Tree DS for iteration of nodes. Next question from DS.  
  2. Find max sum at given level in given binary tree. (Level order traversal) 
  3. Find sum of all nodes at given Horizontal distance. Display in descending order(HD: 4 3 2 1 0 -1 -2 ...) 
  4. Regex implementation - match test or te*t or t?*t
    http://www.geeksforgeeks.org/wildcard-pattern-matching/
  5. Java memory model changes in Java 8 - metaspace concept. What's its benefit ?
    https://stackoverflow.com/questions/27131165/what-is-the-difference-between-permgen-and-metaspace
  6. What is Weak Reference - I was not good with answer for this question.
    https://docs.oracle.com/javase/7/docs/api/java/lang/ref/WeakReference.html
  7. What are other technology I have worked and where.
    - Spring AOP - Duck for me. Not worked with Spring 
  8. Design pattern I have used and where. Also what are DP I know. 
  9. Project which have done with good effort or some situation like this.
  10. Java provides some security mechanism to prevent attack via reflection- I could not answer properly. He was referring my blog, since I have written how to break singleton using Reflection. 
4th F2F discussion (Design / Problem solving) 
  1. Project discussion and my contribution to it.
  2. Design a inventory system.
    - High level system design considering scalability and performance.
    - Discussion of distributed cache and how it's used.
    - Significance of Load balancer and its usages.
    - Database design,
    - How to achieve database abstraction (Today Relational DB, tomorrow may be NOSQL). 
  3. How to handle large volume traffic request ? 
  4. Some questions related to thread dump and profiling. 
  5. A problem to solve - one XML is given with order nodes. Display sorted nodes based on id followed by order name.- I gave brute force solution.
    Restriction imposed : Not to use collection API for sort and No comprator. 
5th F2F discussion (Design / Distributed systems round/Abstract Questions) 
  1. Project where you have worked makes you feel proud and follow up question regarding effort and code lines.
  2. Design a multi-threaded system which handles failure request, failure requests are updated in database.
    - My solution was to find hashcode of time-stamp of record and distribute failed record to multiple threads, a thread pool is maintained for specified number of thread.
  3. Next question what about if multiple servers are in picture - how to send request to handle by multiple server thread pool .
    -I suggested to use a load balancer and does pull request - read record from db and send to multiple server so not same record sent to two server.
  4. What is Implicit and explicit locking. How manual works for threads? Interfaces and  Class used for implementing explicit locking. 
  5. Design of distributed locking.
    - I suggested file based locking mechanism, jvm to jvm communication.
    - He asked what about db based locking. Could not explain properly. 
  6. How to design a system such that - one type(kind/somePK) of data is always updated in sequence no dirty update.
    - I suggested map-reduce approach.
    - Time-stamp based approach.
Ahhhhh !!! Finally, Time to leave. Exhausted !!
Location: Hyderabad, Telangana, India