Showing posts with label interview questions and answers. Show all posts
Showing posts with label interview questions and answers. Show all posts

Product Manager Q&A

What is the best way to interface with customers? 

  • Face to face meetings
  1. I believe face to face meetings are the best if you have the luxury to meet your customers. During your f2f meetings, you can see how your customers are using your product and you will be able to gain some valuable insights. 
  2. For ex: If you have a business product then ask for customers for the flow diagrams that include your product in the flow. Ask them about any client proposals that they are working on and have worked on. Study those as nuggets of information can be found there. As a data PM, it is always useful to read these plans to understand how and where your products are used.

  • Phone calls
  1. If f2f meetings are not possible then go with phone call. Try to schedule a regular phone call with your customers to understand the pain points. 
  2. Ask them directly: Is there something you would like us to improve for you. What works best for you? What needs to be improved? Most often they have their answers ready.

  • Emails
  1. In come cases, just the emailing works. If this is the case then make them a priority and respond them within reasonable times. Sooner the better.! This shows them they you care about delivering a quality product. 
  2. If they are requesting a feature from you and you know its going to take time, try to be open about the timelines. Ask them if there is anything they would like you to do while the much needed feature is in process. This softens the customers a bit and they are open for negotiation. 

---------------------------------------------------------------------------------------------------------------------


What's the best way to work with the executives?

  1. Executives are busy people and they appreciate brevity. What is important to you might not be important to them. So we always have to be mindful of their time. 
  2. They care a lot about strategy than tactics. They care about business and product goals more than day to day execution. 
  3. Any suggestions that move the needle in direction of business goals will gain their attention. So to make any interaction valuable with them, focus on strategy and tell them on how you can help them better achieve the goals.
  4. While talking to them its important to talk about revenue generation, strategy, important KPIs that relate back to strategy, product metrics that are helping achieve the KPIs.
  5. While working on a problem, they are looking for solutions and which solution will work best for them. They usually care less about day to day execution but its best to have that information handy when asked! 
  6. Don't provide wrong answers to them. If you don't know, tell them you will get back to them after looking into it.
To summarize while working with executives:
  1. Talk about:
    1. Strategy
    2. KPIs
    3. Business and Product Goals
    4. Solutions to existing problems. 
  2. Avoid talking about: 
    1. Tactics
    2. Only problems
    3. Wrong answers

---------------------------------------------------------------------------------------------------


What's your approach to hiring? 

Hiring the best is always the motto of any organization but other dimension to hiring is 'How well this person will solve the business problem at hand'. Here are few common dimensions to consider while hiring: 
  • Business goals
  1. Let's say my team is really swamped and they could use some help then I will hire someone with specific skills set. I will work with the team manager to identify a specific skill-set that will benefit the team. And if I know exactly what projects we have to deliver and if we get a person with the exact skill set then I will go ahead with that person.
  2. However if I am hiring for an long term business goals then I will hire someone with determination and eagerness to learn. Someone who might not have demonstrated bigger professional achievements but is willing to explore and take on challenges.  I will look for someone who has done some projects on the side that explains their motivation to try new things and new challenges.

  • Cultural fit
  1. Every organization is different. I will conduct cultural fit interview based on situation. If company is fast paced then I will pick a candidate who likes such an environment. 
  2. If company is stable and not looking for much innovation then will pick a candidate accordingly.

  • Love for company's product offering
  1. It best to see if they are interested in company's product offering. If someone hates the company's product then there is no point hiring them. Their work will reflect it in the product. If they are not doing it with love then why affect quality of the product. 


----------------------------------------------------------------------------------------------------------------------------

How do you know an industry is ripe for disruption?

These points can provide some insights into it. But they are just the pointers, you will have to do some research to strengthen your insights. 
  1. Power is consolidated
  2. Consumers are using outdated Technology
  3. Business pratices aren't changing despite -ve feedback
  4. The research backs you up
  5. Reference: Link
----------------------------------------------------------------------------------------------------------------------------


In 2 mins, describe what a PM does. 

  1. A PM is a person who works tirelessly with different departments to constantly fill in the gaps that arise while product development, research, testing, legal, operations, resourcing teams etc. 
  2. PM works with the Legal team to fill gaps between technical teams and Legal fine prints. 
  3. Works with procurement teams to ensure appropriate deals/tools/resources are procured for the product to be delivered in time.
  4. Works with Engineering to translate business requirements to technical requirements. 
  5. Works with Executives to keep them aware of progress and assures them their business goals and key KPIs are achieved. 


Find a string using binary search

Description: 

  1. Binary search searches either the left side or right side of the array depending on the search element. 
  2. The elements in the input array are always sequential. 
  3. Middle element is looked up if the element to be searched ‘x’ is < then mid element then left hand side of the array is searched. 
  4. If ‘x’ is > then mid element then the right hand side of the array is searched. 
  5. If mid element is ‘x’ then it is outputted
  6. This occurs recursively until the element is either found or array is exhausted. 




Algorithm:
Step 1: Declare and initialize a string array ‘s’ with the given sorted set of elements.
(Binary search works only on a sorted collection).
      0          1            2           3            4            5           6           7     
“at”
“”
“ball”
“”
“cat”
“”
“dog”
“”


Step 2: Declare and initialize a string variable ‘search’ with the target string value “dog” to
be searched for.
search = “dog”


Step 3: Declare and initialize ‘high’ and ‘low’ integer variables according to the length of the
given string array.
int low = 0
int high = 7


Step 4: Declare and initialize a variable ‘flag’ to find whether the target string is found or not.


Step 5: Using while loop, repeat step 6, step 7 and step 8 till the condition fails.


Step 6: Find the middle value, If it is an empty string then increment the middle value to the
next non-empty string.


Step 7: Compare the middle value with the given string using
targetString.compare(currentMiddleValue) method. This method,
1. returns 0(zero) if the target string is matched with the current middle value.
2. returns 1 if the target is greater than the current middle value
3. returns -1 if the target is less than the current middle value.


Step 8: If the compare() method’s return value is,
0 => Print “String found” and the index value. Then set the flag to 1 and break the loop.
1 => Set the low to the value next to the middle one. (Right part of the array)
-1=> Set the high to the value before to the middle one. (Left part of the array)


Step 9: Finally check whether the flag value is equal to 0, If the condition is true then print
“String not found” to the console.


Iteration 1: (step 5)
search = “dog”, low = 0, high = 7, flag = 0
0 < 7   -> Condition true
mid = (0+7)/2 (step 6)
mid = 7/2
mid = 3


    0           1           2           3           4           5           6           7
“at”
“”
“ball”
“”
“cat”
“”
“dog”
“”
(Left part)              mid               (Right part)


s[3] = “”
“”.empty() == true   -> Condition true
mid = 4 (Incremented by one)


    0           1           2           3           4           5           6           7
“at”
“”
“ball”
“”
cat
“”
“dog”
“”
          (Left part)               mid         (Right part)


s[4] = “cat”
i = “dog”.compare(“cat”) (step 7)
i = 1 (“dog” is greater than “cat”)
IF : 1==0   -> Condition false (step 8)
IF : 1==1   -> Condition true
Low = 5   (Right part)
IF : 1==-1   -> Condition false


Iteration 2: (step 5)
search = “dog”, low = 5, high = 7, flag = 0
5 < 7   -> Condition true
mid = (5+7)/2 (step 6)
mid = 12/2
mid = 6


    5           6           7
“”
dog
“”
  (Left)      mid     (Right)


s[6] = “dog”
“dog”.empty() == true   -> Condition false


i = “dog”.compare(“dog”) (step 7)
i = 0 (“dog” is equal “dog”)
IF : 0==0   -> Condition true (step 8)
Print “String found” to the console.
Print “Location: 7” to the console.
Set flag=1
Then break
Terminate the loop.


IF : flag = 1 (step 9)
1 == 0   -> Condition false.


Implementation:
//Searching the set of strings using binary search
#include <iostream>
#include <conio.h>
#include <stdio.h>
#include <string>


using namespace std;


int main()
{
string s[10];
s[0] = "at";
s[1] = "";
s[2] = "ball";
s[3] = "";
s[4] = "cat";
s[5] = "";
s[6] = "dog";
s[7] = "";


string search = "dog";
int i;


int high = 7, low = 0,mid, flag = 0;


while(low <high)
{
mid = (low + high)/2;


//If the string is empty then go to the next non-empty string
if(s[mid].empty() == true)
mid++;


//Compare. 0 for true, -1 for smaller first char, 1 for bigger first char
i = search.compare(s[mid]);


//Found the string
if(i==0)
{
cout<<"String found\n";
cout<<"Location: "<<mid+1<<endl;
flag = 1;
break;
}
if(i==1)
{
//If the target is bigger than the current then go to the right part of the array
low = mid + 1;
}
if(i==-1)
{
//If the target is smaller than the current then go to the left part of the array
high = mid -1;
}
}
if(flag == 0)
cout<<"String not found";


getch();
return 0;
}


Output:
String found
Location: 7


Algorithm Complexity:
O(log n)


 

NoSQL

NoSQL Data models: key-value  Aggregate model.  key or id is used to get the data.  Lookup is based on the key.   document Aggre...