Amazon LPS Flashcards
(64 cards)
When you’re working with a large number of customers, it’s tricky to deliver excellent service to them all. How do you go about prioritizing your customers’ needs?
Prioritization goes into multiple steps:
- Understanding the value its driving to our customer (Number of hours saved, increase in visitors or conversion as a result of this feature, increase in the number of PR coverage)
- Engineering Effort required to build those features.
- Plot these in a graph with 4 quadrants
Game changer - High impact , high effort
Hidden treasure: - high impact, but low effort
Low customer impact, high engineering effort - wasted effort
Low impact and low effort is low hanging effort
Do tie it back into the company vision and quarterly goals (increased users, increased revenue, increased retention) and urgency see whether to change the company goals or shelve the idea for later.
How do you build a product that solves customer need?
We think of our customer needs in many different dimensions:
- Understand the customer pain point deeply - this is done through interviews with different personas. For instance, when we developed the reporting tool, I’ve been part of these interviews myself. What is very important here is to interview at least a couple of people in each persona - this is because the need could be very different. In our case, we had PR managers, CMOs, Head of Analytics, CCO - all using the product, but each of them had a different requirement.
- One of the core tenets of our design and product culture overall was “Simplistic elegance” - what that meant to me in particular was to try to see if there is convergence in those different ideas and needs that each persona has. If there is, try to converge your solution to solve for those use cases, if there isn’t - try to simplify your design to accommodate those use cases.
- An example of this was in the types of coverage our customers wanted to see. We had some customers that wanted to see all of their coverage and some other customers that would want to see only highly relevant content and wouldn’t like to see bare mentions of their company name. We converged the ideas from our different customers into a product that we designed from ground up to bring in only the coverage that was relevant to the company. We provided various knobs for the customer to be able to filter out content that was not relevant to them. This was all available for admins to change, but for the customer, we made it very simple - they just needed to let us know keywords and company name, and the system would auto-generate those searches for them
Give me an example of a time when you did not meet a client’s expectation. What happened, and how did you attempt to rectify the situation?
The one that comes to my mind is one with a project called Power of Voice. We deal with news content at our company. The idea behind this project was to rank/score each article and build a model that gives an overall score and compares the score with their competitor. The issue we faced was that the customer was the most technical we’ve had since the beginning of company and so had a lot of questions about the workings of the model. This is tricky because it’s a highly technical model that has to be described only in a long white-paper, at the same time, it was proprietary to us. The action I took was to get on the customer call with them, the customer usually in cases like this feel like their voice is being heard. In the call, I would explain to them why our current model was producing the results that it was. After discussions with Product and our CEO, we decided to shift some priorities to move the 2nd iteration of the modeling up in priority. Since this was a big impact product change, I was involved in it from start to finish helping identify some sample candidates for improvement, presented it to the team and then turned them around. They were extremely happy with the results and it showed in the feedback they gave to their CMO who decided to do a multi year renewal of our SaaS application.
Who was your most difficult customer?
The one that comes to my mind is one with a project called Power of Voice. We deal with news content at our company. The idea behind this project was to rank/score each article and build a model that gives an overall score and compares the score with their competitor. The issue we faced was that the customer was the most technical we’ve had since the beginning of company and so had a lot of questions about the workings of the model. This is tricky because it’s a highly technical model that has to be described only in a long white-paper, at the same time, it was proprietary to us. The action I took was to get on the customer call with them, the customer usually in cases like this feel like their voice is being heard. In the call, I would explain to them why our current model was producing the results that it was. After discussions with Product and our CEO, we decided to shift some priorities to move the 2nd iteration of the modeling up in priority. Since this was a big impact product change, I was involved in it from start to finish helping identify some sample candidates for improvement, presented it to the team and then turned them around. They were extremely happy with the results and it showed in the feedback they gave to their CMO who decided to do a multi year renewal of our SaaS application.
What was an example situation when you delved deep to understand customer need to solve their problem?
At Onclusive, we were building a product that is industry first, i.e. measurement to show what’s working and what’s not working. There was no measurement standard in the industry. So a lot of decisions were based on intuition initially until we got the first few customers. When we landed our first customer a lot of our product iteration were a direct result of close interaction with our initial customers. We knew that there was a clear need for a product like ours, what we needed to do was to prove the value. And it turns out, our initial customers also were always tasked to do this, and took often took days to create those reports to prove the value. They needed an easy way to take different types of data in one platform and report them to higher ups - often the CXOs and the board. Our interactions with those initial customers provided us the confidence to move forward with our idea of building a reporting suite. We were the first in the industry to build a full blown reporting suite specific to the PR vertical. You can think of it as a Data Viz tool for PR. The product was widely used, but the real success was when we started noticing AirPR reports appearing on customer blogs, showcasing the results of their PR efforts. Further, it became quite useful internally as well - whenever our Sales team used to demo the product they would use the tool to make reports with pre baked in data. This immediately impressed our customers and got the initial buy in.
Tell me about a time when you had to leave a task unfinished.
Around mid last year or so, the number of customers started to increase quite a bit. Some context about our business, when we sign up a customer, there is quite a bit of analytics integration to be done. There is a lot of back and forth between the customer and us initially to get the required details and then setting up to do on our side to ensure that its a successful start, otherwise there is general dissatisfaction in the engagement because the buyer is waiting for the training, however, is unable to start because analytics integration isn’t complete. We embarked on a task to automate this, started building a workflow type internal tool that will go through a state machine, keep track of the inputs from customers, track completion of steps and send reminders. We scoped this project to be 2 month project for a team of 4 engineers (2 backend and 2 frontend), we were one month into the project at which point we had to shelve it. The issue was that, priorities changed. We had a even bigger problem of churn - and there were some very severe product areas that needed to be addressed. It was a failed project because the product never got reinvigorated, however, we were able to get a few learnings from it since we designed it as a separate app with newer version of the technology stack.
Other project that you can talk about is Insights
• Tell me about a time when you had to work on a project with unclear responsibilities.
Sometimes, we come out of executive meetings when our CEO would say this needs to be tackled by engineering and product - but since there were 3 execs in this department it wasn’t clear who it was being directed to. The particular case that I remember very distinctly is when we were planning a very big RFP. The RFP was very extensive and for a big name company - it involved few engineering work, Answers to a bunch of questions which needed detailed explanations and were cross functional. This was over the holiday break. I personally was super stoked about this opportunity to present at this big company and took it upon myself to create a spreadsheet with those questions and added couple of columns for primary and secondary owners for each question. I took a good chunk of those questions since as a founder I have a lot of context for many of those questions, and then gave some to my chief architect and vp product.
Tell me about a time when you owned up some responsibilities to get a project done
As we were scaling the company, we had to overcome different challenges, one such was the our churn was on the rise, and we did a lot of analysis and narrowed it down to a few different reasons. One of them was that our customer success team was bottlenecked by a lot of operational work to setup customers rather than focusing on strategy and insights - which is what we found to be key drivers for renewal. I setup various sessions with the operations/customer success team along with product to understand their pain points, help product narrow down the 80/20 of improvements that we can deliver for them in 20% of the time. We worked through to write up those tasks, prioritize them and added that to our sprint to be tackled. The Customer success team clearly showed their appreciation through difference means, its pretty clear when they do that. But we did end up drawing up estimated savings of 3 hours per week per customer success rep from those initial changes.
Tell the story of the last time you had to apologize to someone.
The story that comes to my is one where we were working on the rollout of a new feature and going through several internal trainings for that feature. Before one such demo, late in the day, the Project Manager in the team asked me what was the best way to go about deploying the current version of the system for the demo tomorrow. Some context in this is that we we rerun numbers in an environment, the pitch had to be changed since the pitch was focused on certain articles and data numbers being present. We had actually created a new environment just to demo this feature, and we also have staging environment where we can push code. I told the Project Manager to use the staging environment since the new environment was being used by the sales team. However, neither I nor the project manager communicated this to the PM. Unfortunately, just before the internal demo, someone ran a migration on staging that brought it down. I tend to make sure that the product owner is communicated when these decisions are made, apologized for it, but we continued our way.
Tell me about a time when you gave a simple solution to a complex problem.
We learned that one of the key drivers for reducing churn was to make using our platform a process in the customer organization. This came out to be a common theme among the customers that adored us. We wanted to figure out low engineering effort, high impact projects that will help us achieve this. I came up with two innovative ideas that really helped us move the needle. We already had a reporting interface and reports that could be made. And we had an email system, so a natural but interesting next step was schedulable reports. This ensured that the customer could schedule this report at a frequency that was convenient to them. We had email open tracking, and we found that we had high open rates in those emails compared to our normal emails, but not necessarily higher click rates. This led us to believe that this feature helped with another aspect - which is making our company well known across the org.
Tell me about a time when you invented and simplified a nagging problem for developers.
One of the issues we faced as a team was that we had multiple environments that we were all pushing to with little to no visibility as to who was using a particular environment when. A senior dev brought up this issue to me and said he had some ideas on how to solve this - a service that keeps track of who is currently using which environment with the ability for different members to claim an env for some Time. I immediately jumped on it, provided a few of my ideas, specifically - I asked him to include a slack integration. I also said I was ready to sponsor it (provided credits on Heroku) and told him to add it as a 20% time as part of his sprint. Out of his own enthusiasm he spent a weekend and built it end to end and did a demo for the team. To this date, the team uses the tool to claim different environments before using it. Afterwards he specifically expressed his admiration for my sponsorship of the project and his satisfaction at seeing it being used regularly.
Tell me about a time when one of your innovations was mis-understood by the team
One of the features we wanted to build in our product was a search tool that was simple to use but at the same time had complex functionality. Me, our Chief Architect and our CEO essentially invented what we called the Visual Search - a search that was in the middle. There was significant resistance within the company around this because they believed that our customers were used “Google” like search and will not appreciate this interface. Over time, we found that once customers learned the UI, they were hooked on to its methodology and would become power users of the product. Our future efforts revolved around getting people over the initial hump/resistance to trying.
One of the technical debt items that existed in the product was the duplication of backfill jobs on each change made by the customer, this caused a lot of load in our system and we would often have to wake up or put attention to alleviate the load. After lots of back and forth with some of my senior engineers, we came up with a. Solution that we eventually implemented as well. However, to actually get this change into the product, we had to change the workflow for the Operations team a little bit - it was actually making their lives easier - but they were reticent to change. Got on various different calls with different members of their team to explain the pros of going with this approach, convicted them and made the switch at the decided upon date. Things went much more smoothly since both for engineering as well as Customer success.
The idea was to build a system that handled backfilling data, running specific jobs on all the data in parallel with different settings changed for a customer. We went through a big exercise to set up the backfill manager as the system that will manage system changes.
However, there was one change that was admin facing - which could be automated by just using backfill manager as well
- This will ultimately benefit the customer - because they’ll see fewer bad articles in the platform
- It will help us be more efficient with our resources because rather than doing backfills on every change, it auto backfills data
- Visibility, etc etc.
We demoed it to the CSM team, while at first they were supportive, they came back and said they aren’t comfortable going with this solution
- It changed their workflow
- There was uncertainity over when and what changes were effected by the backfills
I responded by explaining to them why this is critical and explained how this should have been designed this way from the beginning.
I had them put together a spreadsheet of their concerns, and answered each one of them.
In this exercise, i had them direct me to the MVP, because while there is a lot of additions that we can implement in the tool, we need to get this delivered to achieve those benefits
Tell me about a time when your judgement was right and saved the company a lot of trouble
Due to experience of having seen various production systems, it helps make judgement calls on unknown things that haven’t been decided yet. One simple example is that we were planning to change the domain name of the website from airpr.com to onclusive.com. This means updating the records for our email provider, updating CNAMES in our dns provider etc etc. The marketing team obviously wanted a smooth roll out and they considered sending a one shot email to everyone informing them of the switch over. However, I advised and argued against that even though that might seem better for the immediate user. I pushed hard for a phased roll out where we can turn on few customers at a time and see how they behave. Lo and behold during the migration process, we had a customer complain of service disruption. We could isolate this to that customer, reach out to Cisco domain blacklists and remove our site from there. We turned it back on and then it work. We did the same with email providers, gave them a lot of notice and then went ahead with the switch
Tell me about a time when you were wrong.
When we were working on this product called Intelligent contacts, there were many market factors that led us to speed up the release of the product. A specific feature in this product was recommendations which showed other authors for each each author being viewed. After reviewing a few different authors, I concluded that the product met the non functional requirement of query latency and gave the go ahead for a beta release. However, when users played around with us, they found inconsistent response times. Some authors would return fast response while others wouldn’t. The good part was this was just a beta, however I ensured that going forward I would check other areas as well such as performance monitoring tools before making a decision.
Tell me about a time when you had to work with incomplete data or information.
In a startup, we often have incomplete data - the most obvious one was when working on the problem of connecting visitors back to PR
• Tell me about a time when you influenced a change by only asking questions.
In the past year, we once had a release that went particularly wrong. What happened was after we rolled out the release, in the upcoming days we found that all articles were getting tagged with certain tags when only a few had to be. This went through unit testing, regression testing, etc. I called for a retrospective and merely played the role of asking questions. I had everyone give ideas/suggestions for what we could have done to prevent this. Each person came up with ideas, its surprising sometimes how when you call on people to give thoughts, they come up with highly refined thoughts. One such was to do a canary release, instead of a full rollout - which we embraced since. I stated what the issue was and opened it for brainstorming solutions…
First set of discussions lead us to identify the root of the problem.
blacklist and whitelist were being managed in the same table with a flag - which violated the single responsibility principle in some ways
- regression testing wasn’t done on production data
- we don’t really have production type data on our local
- print publication tags, broadcast tags and domain tags were maintained in the same table but each of them had different constructs.
Kept going deeper and found that the bigger issue was that we couldn’t do a canary release, we just didn’t have good ways to do that.
Tell me about a time when you solved a problem through just superior knowledge or observation.
Due to experience of having seen various production systems, it helps make judgement calls on unknown things that haven’t been decided yet. One simple example is that we were planning to change the domain name of the website from airpr.com to onclusive.com. This means updating the records for our email provider, updating CNAMES in our dns provider etc etc. The marketing team obviously wanted a smooth roll out and they considered sending a one shot email to everyone informing them of the switch over. However, I advised and argued against that even though that might seem better for the immediate user. I pushed hard for a phased roll out where we can turn on few customers at a time and see how they behave. Lo and behold during the migration process, we had a customer complain of service disruption. We could isolate this to that customer, reach out to Cisco domain blacklists and remove our site from there. We turned it back on and then it work. We did the same with email providers, gave them a lot of notice and then went ahead with the switch
Tell me about a time when you mentored someone.
I’m a big fan of Kim Scott’s book - Radical Candor. One of my personal successes is when I turned around an engineer who wasn’t performing. The specific shortcomings that I noticed was
- His unwillingness to go the extra mile to understand what the underlying issue is, often would fix the symptoms rather than the cause.
- His inability to learn to dive into more complex parts of the codebase and understand and make changes in an intelligent way.
However, he was very personable, everyone liked being around him and would improved culture overall in the company. I setup weekly 1:1s where would review his progress on each of those items. The biggest issue as it turns out for him was that he had come from an environment where this wasn’t the norm and things were handed out to him. A lot of it was reminding him of how startups operate and how he needs to step up. Fortunately, he was someone that was very keen to learn. I encouraged him by giving him tasks that needed pairing with senior engineers and also had the company pay for some training material online. It took him few months, but he started showing improvements and inclination towards support engineering. We placed him in that role and his personable character helped him earn respect from his colleagues in that department and his engineering background helped him tackle the harder tasks in the support engineering team. (Became the go to guy there)
Tell me about a time when you made a wrong hire. When did you figure it out and what did you do?
I’m a big fan of Kim Scott’s book - Radical Candor. One of my personal successes is when I turned around an engineer who wasn’t performing. The specific shortcomings that I noticed was
- His unwillingness to go the extra mile to understand what the underlying issue is, often would fix the symptoms rather than the cause.
- His inability to learn to dive into more complex parts of the codebase and understand and make changes in an intelligent way.
However, he was very personable, everyone liked being around him and would improved culture overall in the company. I setup weekly 1:1s where would review his progress on each of those items. The biggest issue as it turns out for him was that he had come from an environment where this wasn’t the norm and things were handed out to him. A lot of it was reminding him of how startups operate and how he needs to step up. Fortunately, he was someone that was very keen to learn. I encouraged him by giving him tasks that needed pairing with senior engineers and also had the company pay for some training material online. It took him few months, but he started showing improvements and inclination towards support engineering. We placed him in that role and his personable character helped him earn respect from his colleagues in that department and his engineering background helped him tackle the harder tasks in the support engineering team. (Became the go to guy there)
• Tell me about a time when you couldn’t meet your own expectations on a project.
When we were working on this product called Intelligent contacts, there were many market factors that led us to speed up the release of the product. A specific feature in this product was recommendations which showed other authors for each each author being viewed. After reviewing a few different authors, I concluded that the product met the non functional requirement of query latency and gave the go ahead for a beta release. However, when users played around with us, they found inconsistent response times. Some authors would return fast response while others wouldn’t. The good part was this was just a beta, however I ensured that going forward I would check other areas as well such as performance monitoring tools before making a decision.
• Tell me about a time when a team member didn’t meet your expectations on a project.
There was a senior member of my team. He is my go-to person for everything. He was passionate about code cleanliness and quality and ensured that he made it known in PR requests and such. Further, he would highly encourage writing tests for the codebase. Unfortunately, our early codebase didn’t have tests and it came back to bite us. So we embarked on a project of refactoring which took longer than expected to complete. At the end of the project, he requested that we have a retrospective, and in the retrospective he shared a negative attitude towards a lot of things and when we asked him for what his suggestions were, he didn’t have any and mostly blamed the past or other engineers. It was unlike him, so I had a conversation. he complained that there wasn’t enough help provided to him, though he would never come up to me and say that. I aplologized to him, however, I told him that in order for him to grow in his role, I needed him to step up and let me know when project is going haywire.
At AirPR, we had this nicest engineer, he was in a distributed office, but literally available all the time to answer questions. He was junior, wouldn’t write tests for the code he writes, however in my meetings with him he would say he understands that he needs to set those standards. What I did was two things 1) I made it a point that all engineers on 1 customer success call - this gives them a sense of the types of issues customer face. 2) I ensured that engineers are given access to a tool that shows videos of customers using the platform - it provided a first hand experience of what the customer was experieicing. After continuous coaching and helping learn the customer’s situation better, it helped him a lot to improve.
• Tell me about a time when you went way beyond the scope of the project and delivered.
Project was to tie website interactions back to PR
Tell me about a time you made a mistake
We were going through this effort of tackling some technical debts, and what happened was that I would often take up the task of keeping our technology updated. The problem in this case was, our code used a CSV parser that was built with Ruby and they had a breaking change. My mistake in this case was that I hadn’t informed the team until after the fact and hadn’t setup the right alerts. I apologized to the team, and ensured that the upgrades still happen but with advance notice (planning for them is always better).
Apologizing to Judy for wrong environment deploy
Tell me about a time when you couldn’t meet your own expectations on a project.
We were going through this effort of tackling some technical debts, and what happened was that I would often take up the task of keeping our technology updated. The problem in this case was, our code used a CSV parser that was built with Ruby and they had a breaking change. My mistake in this case was that I hadn’t informed the team until after the fact and hadn’t setup the right alerts. I apologized to the team, and ensured that the upgrades still happen but with advance notice (planning for them is always better).
Apologizing to Judy for wrong environment deploy