Prompt:
Job Description:
backend-engineer-who-s-worked-at-a-startup-v3

Candidate A Resume:
{"data": {"awards": [], "certifications": [], "education": [{"GPA": "", "degree": "Bachelor of Science", "endYear": "2018", "major": "Computer Science", "school": "Stony Brook University", "startYear": ""}], "projects": [], "publication": [], "skills": ["Python", "Django", "Postgres", "AWS", "Lambda", "Serverless", "SQS", "GoCD", "DynamoDB", "Redis", "New Relic", "C#", ".NET"], "workExperience": [{"company": "Harver (formerly pymetrics)", "description": "Lead team for architecting new event driven architecture for internal client subscriptions to system events to transition from legacy monolith design. Tech lead for developing frameworks and APIs for scalable connectors with AWS Lambda and Serverless, working with business stakeholders. Developed a third-party authorization system that enabled clients to manage, provision, and track access to their data. Created an open-source CLI tool for engineers that utilized Jira\u2019s API and doubled our scrum teams\u2019 ability to measure the efficiency of strategies from sprint to sprint. Developed end-to-end integration tests for critical path flows, reducing future release times by 90%. Created CI/CD pipelines with GoCD for all of our services, providing a way to support testing, track builds, and version control. Cut emergency incident resolution time in half by implementing New Relic and PagerDuty alerting. Worked with distributed teams; leading design discussions, code reviews, interviews, and mentoring of junior developers.", "endYear": "2023", "location": {"city": "New York", "country": "NY"}, "role": "Senior Software Engineer", "startYear": "2019"}, {"company": "Eduware, Inc.", "description": "Created and launched client-facing web app, using a C# ASP.NET stack and Javascript/jQuery, enabling real-time test and assignment administration for teachers. Provided clean and scalable codebase for current and future developers by refactoring legacy back-end code in alignment with best practices for code design. Mentored part time college hires on best practices for clean code and system design. Documented both legacy and new systems to streamline onboarding new team members.", "endYear": "", "location": {"city": "St. James", "country": "NY"}, "role": "Full Stack Developer", "startYear": ""}, {"company": "Bamtech, LLC", "description": "Designed and implemented modularized REST API from scratch that supported various workflows and was easily extendable to accommodate all future use cases. Automated artifact creation, permissions setup, and push replication across clusters for software teams by creating REST service to interact with JFrog\u2019s Artifactory and Mission-Control APIs. Documented the new REST API following the OpenAPI specification that would then be imported and used to enable rapid development against this API.", "endYear": "2018", "location": {"city": "New York", "country": "NY"}, "role": "Software Engineer Intern", "startYear": "2017"}]}, "status": "success"}

Candidate B Resume:
{"data": {"awards": [], "certifications": [], "education": [{"GPA": "8.1", "degree": "B.Tech", "endYear": "", "major": "Computer Science & Engineering", "school": "IIIT, RGUKT, RK Valley (AP)", "startYear": ""}], "projects": [], "publication": [], "skills": ["NodeJS", "MongoDB", "MySQL", "ReactJS", "VueJS", "Neo4J", "Elastic Search", "Redis", "REST API", "gRPC", "TDD", "AWS Cloud Services", "EC2", "Lambda", "S3", "RDS", "SNS", "SQS", "AWS-IoT", "Kinesis", "IAM", "Route53", "Security Groups and Policies", "Docker", "Kubernetes", "Microservices Architecture", "Git", "Agile methodologies", "Scrum", "Sprints", "Jira"], "workExperience": [{"company": "Contentstack India Pvt Ltd", "description": "Transformed the legacy system into scalable microservices while crafting optimised logic. Developed 2 REST API Microservices by utilising the NestJS framework. Designed and developed 3 gRPC Microservices for faster data access within internal services. Implemented a scalable standalone webhook microservice, which will process 100s millions of webhooks weekly. Streamlined and effective rollout of large-scale software deployments. Collaborating with leadership to gather ideas and requirements, then proceed to system design and coding implementation. Adhere to industry best practices, incorporating approaches like Test-Driven Development (TDD) and agile methodologies throughout development. Coordinating with the team to ensure timely delivery of project milestones.", "endYear": "Present", "location": {"city": "", "country": ""}, "role": "Senior Software Engineer", "startYear": "2022"}, {"company": "Nikulsan Technologies Pvt Ltd", "description": "Designed and developed core components for Adohm using NodeJS, VueJS, MongoDB and Neo4J. Developed a prototype for cutting-edge Programmatic Advertising Technology (Exchange, SSP, DSP, and DMP) using NodeJS, VueJS, SQS, MongoDB, Redis and Neo4J. Utilised AWS Services extensively throughout the product development process. Take care of the code reviews, DevOps, and Linux Administration, managing and monitoring AWS services and production servers. Gained comprehensive knowledge of the fundamental concepts of digital marketing (including Google Ads, Facebook Ads, and Taboola Ads).", "endYear": "2022", "location": {"city": "", "country": ""}, "role": "Lead Full-Stack Developer", "startYear": "2018"}, {"company": "Mobodexter Software India Pvt Ltd", "description": "Started as a software engineer and gained extensive knowledge of products and the tech industry. Worked on a product called Paasmer, an IoT-based platform to control remote devices. Was a middleware developer specialising in bridging Hardware SDKs with Web UI. The tech stack used REST APIs with NodeJS, MySQL, and ReactJS. Utilised AWS services like Lambda, AWS-IoT, Kinesis, SNS, RDS, and S3 a lot while developing products and learning more about them. Utilised Node-RED, a programming language that makes it easier to connect hardware devices to the Paasmer platform without any problems by adding Paasmer nodes to Node-RED.", "endYear": "2018", "location": {"city": "", "country": ""}, "role": "Software Developer", "startYear": "2017"}]}, "status": "success"}

Candidate A Transcript:
{'pairs': [['Interviewer: Hello and welcome to the AI interview! This interview will consist of basic questions about your background as well as some high-level questions about the skills you listed on your application. Ensure that you minimize long pauses during your responses, otherwise you may be cut off prematurely. Are you ready to start the interview? \n', 'Interviewee: Yes.\n\n'], ["Interviewer: Great! I see from your resume that you've led a significant project at Harver, transitioning from a monolithic system to an event-driven architecture. Can you elaborate on the specific challenges you faced during this transition and how you addressed them with the technologies you mentioned?  \n\n", 'Interviewee: So some challenges were maintaining, uh, consistent behavior across uh, this transition period from the legacy software to the new software. Uh, this was done through identifying what is, like, the list of APIs we have, their current set of behavior, uh, what is the expected behavior of all those APIs. This way as we as I led the transition, uh, from the legacy software to the event driven sort of more, uh, new serverless architecture. We maintain consistent behavior and thus induce the element of least surprise, which in this case would be to not suddenly change the behavior of any of these APIs, uh, throughout this transition period. And this was done using AWS Lambdas, s q AWS SQS. Uh, this is all on Python. And some of the, uh, legacy, uh, tools and technologies that were made use of consists of as Celery and, uh, RabbitMQ.\n\n'], ["Interviewer: That's a thoughtful approach to maintaining consistency during such a critical transition. Could you detail how you ensured the reliability and scalability of the new event-driven system, particularly in terms of managing the interactions between different services, and what role did Redis play in this architecture?  \n\n", "Interviewee: This was through so the ecosystem behavior was maintained through rigorous test coverage. And so, uh, use it's made the use of tools like SonarQube and Codecov to measure the test coverage of our application code both before and throughout this development process, maintaining a high test coverage of, say, 98% and above. This helped to ensure that if any changes made, broke behavior, uh, those will be caught by tests and to help cover interactions across services because, uh, our services were made comprised of many different link services. And so interactions between and across services was very important to cover, and this was covered through the usage of integration tests, uh, something I introduced when I introduced the CICD pipeline using tools like Go CD. Uh, this helped to automate this whole process of testing our services and these various transactions, uh, in an automatic fashion and thus automatically be able to catch if any of these, uh, behaviors were broken or changed. And as for the usage, of Redis, Redis was used as a caching, uh, solution, uh, for one of the services that, uh, was being upgraded.\n\n"], ['Interviewer: Your emphasis on rigorous testing and the use of tools like SonarQube and GoCD for automation is impressive. Given your experience with maintaining high test coverage, how do you approach testing asynchronous processes, such as those handled by Celery in your Python applications?  \n\n', "Interviewee: So you go about testing the individual application code that gets executed, uh, asynchronously. This helps to ensure that that piece of code is what's working. And then as for testing, okay, the actual application code that calls this asynchronously, uh, that is mocked in unit test coverage. And so there's coverage up to the point it gets executed, and then there's validation done to ensure that what's being asynchronously handed off is what's expected to be handed off. But then as for, like, testing the actual execution of the asynchronous code, that's where sort of these integration tests or these more, uh, expensive tests come into play. Uh, and that's where, like, the benefits of having a CICD pipeline to, uh, be able to introduce these kinds of tests, uh, becomes more valuable. So that way we can more thoroughly test our systems and thoroughly test not just, uh, transactions across services, but these asynchronous transactions as well and validate that they're behaving as expected.\n\n"], ["Interviewer: It's clear you have a strong grasp on testing methodologies for both synchronous and asynchronous processes. Shifting focus a bit, could you explain how you approached the integration with Oracle and Workday, particularly in terms of handling data consistency and reliability across these disparate systems within your event-driven architecture?  \n\n", "Interviewee: Sure. So it starts off with first working with external stakeholders, working with them on what are their APIs, what is their API contracts, working with clients, uh, understanding the client's needs, their expectations, what are the different user stories, uh, ironing out what are the different user stories and, uh, expected user experiences with the product. And then once we have all those pieces together, then we can go ahead and start building out and designing a system that integrates with these various systems, like Workday and Oracle, and supports these different, uh, user stories. And as for, like, data consistency and data reliability, uh, that's where, uh, making use of tools like, uh, so in this case, the servers that handle these integrations with these systems like Workday and Oracle. I made use of AWS Lambda, DynamoDB, and our automatic retry policies played a big part in helping to ensure that if errors were occurring or something was just down temporarily, retries would automatically occur to help ensure those transactions continued. But then if those transactions failed altogether, uh, what I had in place was some rigorous logging and telemetry instrumentation setup via New Relic. And this helped to be able to quickly identify issues in the system and thus resolve them. And then on a per system or per client basis, uh, for if errors had occurred with the, uh, resolution strategy or contingency plan or fallback, uh, for those clients. Uh, depends on each of those clients and their needs. Uh, in some cases, we had mechanisms in place, uh, that not even engineering need to get involved with. But, uh, our client success team can they themselves, uh, empower them to be able to take into their own hands, to be able to initiate these processes to, uh, essentially\n\n"], ["Interviewer: Your approach to handling integrations and ensuring fault tolerance is comprehensive. Regarding the use of New Relic for monitoring and alerting, could you discuss how you configured New Relic to provide meaningful insights into your system's performance, particularly in identifying potential bottlenecks or issues with the distributed transactions across your microservices architecture?  \n\n", "Interviewee: Sure. So it's making heavily heavily made use of AWS Lambdas for which there's New Relic plugins and that can be used to funnel essentially all your logs from your CloudWatch log groups to New Relic. And in doing that, I'm able to make use of New Relic's monitoring and alerting to set up alerts and monitors on our various Lambdas, uh, for when the error shall, say, exceed a certain limit, send off, say, a PagerDuty alert in some cases if it's been such a prolonged error. And with the use of New Relic, I'm able to analyze sort of the error rate, the stack traces, and the logs with these associated with these transactions to be able to thoroughly, uh, dig deep into these errors and to be able to dig deep into, uh, what the root cause may be.\n\n"], ['Interviewer: Your use of New Relic for AWS Lambda monitoring is insightful. Given the distributed nature of serverless applications, how do you manage and monitor the performance of your AWS Lambda functions to ensure optimal resource utilization and minimize cold start times, especially in high-traffic scenarios?  \n\n', "Interviewee: So made use of AWS layers to sort of offset or separate out some of the larger packages that is used in the application. Uh, this helped to minimize the deployment times and cold start times for our Lambdas since there's less in the Lambda now, uh, for to having to boot up with with cold start times. I've also made use of migrating our Lambdas over to US East to Ohio, which at the time, uh, Amazon themselves was pushing out updates, uh, to improve the performance of Lambdas, especially cold start times and their performance in the VPC. So it took advantage of Amazon's latest updates to Lambdas, uh, with regards to cold start times. Uh, additionally, with the usage of new reli comm, able to get, uh, deeper insights into the breakdown of what the lambdas are spending time on. So what this breakdown consists of is time spent on, say, on API transactions, web transactions, uh, with, say, s 3 with the DynamoDB and sort of able to more easily uh, identify what are the bottlenecks currently, uh, in our application, uh, what does the Lambda spend the most time on currently, and go from there, uh, if there's an issue with the response times or with throughput in the current state of the lambda.\n\n"], ['Interviewer: Your strategies for optimizing AWS Lambda functions are quite innovative. Considering the use of AWS Layers, could you elaborate on how you identify which dependencies to include in the layer to effectively reduce the size of the deployment package and further minimize cold start times?  \n\n', "Interviewee: So since these are microservices, uh, they're small. And so the amount of packages they have in them is also small, and so it's easy to sift through these list of packages and identify, okay, what are the largest packages we're using. So in this case, our largest packages were diffuse XML and, uh, Boto 3, both of which are very large packages, uh, Python packages. And so it made sense to rather than having to repackage and deploy these, uh, libraries every time we wanna deploy our microservice, It would make more sense, uh, to deploy them separately as a layer, uh, especially as I looked at their version history and found that they're not very often updated as well, these packages. And so if there's ever comes a need to update these packages, uh, we can update them uh, on a need as needed, uh, for when we actually do get updated, uh, by updating the specific layer.\n\n"], ['Interviewer: Your approach to identifying and separating out large dependencies into AWS Layers is quite strategic. Shifting focus to a different aspect of your technical skills, could you discuss a scenario where you had to optimize a Django ORM query for better performance, and the specific techniques or tools you used to achieve this?  \n\n', "Interviewee: So I've had to optimize, uh, various things with regards to Jeng ORM, uh, queries, migrations, uh, and such. And so some of the techniques I've made use of is to uh, use the Django's commands for domingo. What is the raw SQL? Uh, because in our case, the back end storage being used was a MySQL, uh, AWS Aurora database. And so Django has the ability in its ORM to dump out for you, uh, with its, uh, uh, the ORM query, what is the behind the scenes SQL that it's making use of. And so in some cases, I would take a look at that to see, okay, how is Django executing this query, uh, going through the Django documentation as well to see, like, what are some of the fine nuances. Uh, with, say, like, select, uh, related, prefesh, select, uh, related, uh, so those query optimizations there. And then with regards to migrations, uh, taking a look at, okay, what is the type of migration being performed? Is it an update in alteration to a currently existing column? Are we adding new columns? How big is the table, uh, we're modifying? Are we introducing a new table? What form keys are being added and such? And so looking at the whole culmination of data there, uh, then determining, okay, what is the best strategy to go forward with with this migration? Should it be done piecewise? Should part of it be done as a Jenga migration and a part of it be done asynchronously over time as sort of like a backfilling task. And so those are, like, some various strategies and things to consider, uh, when optimizing, like, a JANORM query or migration.\n\n"], ["Interviewer: Your approach to optimizing Django ORM queries, especially the use of raw SQL via Django's capabilities, is quite insightful. Could you delve into the considerations for choosing between synchronous and asynchronous operations in the context of a Django application, particularly when it comes to handling high-concurrency scenarios or long-running tasks?  \n\n", "Interviewee: So this depends on say your use case of like okay for looking to horizontally scale. Concurrently handle a lot of transactions at once this depends on the type of transactions, too. so if say your application is a very read heavy service. And so you're having to concurrently handle a lot of Rights. Jiang you can do that with Django concur me write to your database. but it depends on like What those rights are you riding you items every time. Are you making older Asians to an existing row multiple times over which case you need to take into consideration item potency to ensure consistency in your data? and then Also, what is like you just stories usually expectations with data availability? Should isolated and see between what the users seeing and the most up-to-date data. ah something that's okay to be expected or is that not okay in which case asynchronous? transactions may not be as okay may need to Make your things more synchronous this would also. potentially correlate with what sort of bag and data story using too This is my SQL relational databases lend itself more for these asset Trends actions. with synchronous transactions and helping to ensure that Thomas City the isolation consistency in the durability of your data whereas if you're looking to you can currently handle and scale and are fine with sort of that description seen dad and late in C between what a user sees and the most up to date Dada then no sequel databases. It's probably will you'll be using to handle that sort of horizontally scaling workload.\n\n"], ['Interviewer: Your detailed explanation on the considerations for synchronous versus asynchronous operations in Django, especially in the context of data consistency and the type of database being used, is quite insightful. Could you discuss how you have implemented custom middleware in Django to solve a specific problem, and the impact it had on the overall system performance or behavior?  \n\n', "Interviewee: I haven't specifically worked on, uh, middleware with Django, but I have made, uh, alterations to middleware, uh, legacy middleware that was made using Django, which I've noticed that\n\n"], ['Interviewer: Given your experience with modifying existing Django middleware, could you elaborate on the types of alterations you made to the Legacy middleware, focusing on the specific goals you aimed to achieve with these changes and any observations regarding the impact on system behavior or performance?  \n\n', "Interviewee: This is more so in regards to upgrading the service from Python to the Python 3, which involved making upgrades to the version of Django and Django rest framework or DRF, uh, that's being made use of. And some of the syntax involved in this middleware, uh, some of the, uh, APIs used there were deprecated. And so I was making upgrades to not to remove, replace it, or upgrade it, but rather to just maintain consistency and make it compatible, uh, with the upgrade that was being done at the time.\n\n"], ['Interviewer: Thanks for taking the time to interview with us! The time allotted for our interview has come to an end. We will reach out to you with next steps shortly. Please click the end interview button to end the interview.', 'Interviewee:']]}

Candidate B Transcript:
{'pairs': [['Interviewer: Hello and welcome to the AI interview! This interview will consist of basic questions about your background as well as some high-level questions about the skills you listed on your application. Ensure that you minimize long pauses during your responses, otherwise you may be cut off prematurely. Are you ready to start the interview? \n', 'Interviewee: Great.\n'], ["Interviewer: Great! I see from your resume that you've led the transformation of legacy systems into microservices at your current role. Can you walk me through the biggest challenge you faced during this transformation and how you overcame it?  \n", "Interviewee: Yes. Definitely. Yeah. So I have joined in Contentstack as a senior software engineer. And, uh, so we already have an application which is running in the production from long back, uh, but that is a legacy application. It is a single code base. The code base is very huge. It contains, uh, more than 10,000, uh, commits and the repo size also very big. So what we planned, uh, is, like, to convert application into microservices. Give you an example, like, uh, the I have worked on, um, uh, 4, 5 components, which I converted to microservices. I I'll give you an example where, uh, we have converted that into microservices architecture. Uh, we have a functionality called Webex. So Webex is a functionality where if, uh, we will trigger the events to the customer's endpoints. So, basically, the Webex application is create is a very big functionality in our content stack, uh, where we need to trigger the events to customers. Since, like, we have a Alexa application, like, uh, if there is any issue in, uh, any of the component, we need to redeploy complete code base, and it's very difficult to maintain. So we had to convert that to microservice. So we created a new microservices application. Uh, so the application we have built it, uh, Node JS. Uh, we use it in SDS framework to build a microservice. Uh, Alan said we also have our sidecar, which will be used to authenticate and authorize the requests to the core CMA database. And, uh, we have done the, like, we book microservice up, uh, like, that is we in the Weebook microservices, there are 2 parts. 1 is the Weebook management, and the another part is the job processing, uh, daily jobs. How the the the background jobs? Like, to say, like, let's say there are a 1,000 webhooks are like in in general, like, daily, we will need to process, uh, webhooks in 1,000,000. So at the time, we cannot process all the webhooks. So we will, uh, use the SQS queues to process all these events. So for each event, we'll store in the queue, and the the microservices will pull that message, and then it will process it 1 by 1. Also, we have used the Kubernetes to, uh, auto scale the ports whenever, uh, there is a lot of messages in the queue. That's a\n"], ["Interviewer: That's a comprehensive overview, thank you. Given the complexity of managing distributed systems like the one you've described, how do you approach monitoring and logging in your microservices architecture to ensure everything runs smoothly?  \n", 'Interviewee: Correct. So, uh, in the distributed system, logging is very important, and, uh, we are log we are using the data that to log, uh, to track all the logging and the monitoring and, uh, to track the SLOs. And, uh, it needs each microservices which we are building. So we will track the logs at the environment level and the organization level. So we have a clean track keep clean track of the all the web, uh, like, logs which is coming through the application, which goes to the, uh, Datadog. So there is a different kind of log levels, which is like, uh, info log level at error log levels, one log level. So based on the severity of the log, we will, uh, set up the SLOs. Also, we will create the SLAs, SLIs indicators. So based on that, we will set up SLOs. And then we will use the data app to monitor. Given your\n'], ["Interviewer: Given your experience with Node.js in building and managing microservices, what are some specific design patterns you've found effective in ensuring the scalability and reliability of your services?  \n", 'Interviewee: Can you come again? Sorry. Certainly.\n'], ["Interviewer: Certainly. I'm interested in the design patterns you've found effective for ensuring scalability and reliability in your Node.js microservices. Could you discuss some specific design patterns you've implemented or relied on for this purpose?  \n", "Interviewee: We have used, like, a different, uh, design patterns. So when it comes to the rest API, we will use the, uh, rest standard patterns, uh, like, where we need to give the rest API endpoints to the customers. Uh, there we will use the rest API. Uh, for rest API, we use the next framework, uh, where we have defined the each routes and, uh, which is exposed to the public. When it comes to the, uh, internal, uh, data internal data transfer, like, from 1 micro service to enter micro services, the gRPC is the good option since it is faster than the rest API service. So since, uh, that's why we have used the gRPC for the internal communication where uh, the other restricted methods are excluded through gRPC, which is, uh, easy and, uh, faster communication with the within the local metro services. Also, there is some digital consumers elsewhere, uh, we have used the SQS to pull the messages and to process those messages. Whenever there is available in the messages, automatically, the consumer will pull the message, and it will process, and then it will continue tries to pull the from the queues. So queue patterns, DRP services, REST APIs, these are all different patterns, uh, are like architects as which we have used in the microservices, architects implementation. Fascinating.\n"], ['Interviewer: Fascinating approach. Considering your use of gRPC for internal communication, how do you handle service discovery and load balancing in a gRPC-based architecture, especially when running on a platform like Kubernetes?  \n', "Interviewee: Yes. Yeah. So since we are using the, uh, Kubernetes, so we also using the Kubernetes, uh, event driven arc auto scaling, Kedap. Kubernetes event driven auto scaling policy where we will define, uh, scaling policies based on different patterns. Uh, let's say, like, uh, there is a huge traffic on the GRPCs. So since we are using SQS, based on the queue length, uh, we will, uh, automatically detect the queue length. If there is a lot of messages, automatically, we will set, like so if for this many, uh, like, let's say that for every page, 30 messages, we need to create a new pod. So, automatically, it will takes care about the auto scaling, and it will, uh, make choose the auto scaling efficiently, and it will make sure the process is smooth without breaking the system at once. Like, even when That's a\n"], ["Interviewer: That's a solid strategy for leveraging Kubernetes' autoscaling capabilities. Shifting focus a bit, could you discuss a scenario where you had to optimize a Node.js application for performance, particularly in the context of handling a high volume of concurrent requests?  \n", "Interviewee: Okay. Yeah. Let's take the previous example which I told you, like, uh, Webhooks, microservices. There we have faced this issue where we are processing the events at 1 one event at a time. Uh, so how it is working is, like, each part level, one event will be processed once. So what happens is, like, if, let's say, one request is we will trigger a webhook to the customer's, uh, HTTP URL. And if the customer is taking longer times, automatically, it will completely affecting the performance of the application. Like, uh, if the each request is taking 20, 15 seconds, then it is a huge effect on the service. So what we thought is, like, we have implemented a feature, uh, in the Facebook microservices where we will concurrently process certain number of messages. In our case, it is 20. So each time it will tries to process 20 messages, we we will make, uh, we will, uh, handle a queue where, uh, each time there is, uh, 20 messages are there. Whenever one message is completed, automatically, new message will be sent to the queue. That is one approach which we have used, uh, to automatically, uh, to scale the concurrent request instead of blocking the complete, uh, queue seems like, uh, the node supports the even driven non blocking mechanism. This is very helpful here. Yes. I\n"], ["Interviewer: I appreciate the detailed example of how you leveraged concurrency to improve performance. In a similar vein, considering the use of Redis in your stack, could you explain how you've utilized Redis to solve specific problems in your applications, particularly in the context of ensuring data consistency and high availability?  \n", "Interviewee: Yep. I can give you certain examples how we have leverage in the release. Let's, uh, we have also implemented a new feature in the web book microservices where, let's say, uh, a customer is taking the longer times to respond. Uh, so how it is? Like, it so if one customer is taking longer times to respond automatically since we are using a single queue, uh, so it is completely affecting for other customer is occupying the parts completely. They are taking longer time. So we are, uh, leveraging the release to track the active request in the release. Uh, so let's say whenever new request track, uh, like, we will increment the active count 1, and when the request is processed, we will decrement that. So in the similar way, so there is always, like, there is certain number of misses only we will process to a one customer so that it will make sure, uh, the other parts are available for other customers every time. So let's say we have a maximum of, uh, 100 parts. So we will only, uh, allocate the 10 ports to the customers by taking the app to, uh, process in the release. That is one use case. Also, we use it in a different use case. If the customer is taking longer time. So so we will track the customer's response, the average time in the last 15 minutes. If the response time is more than the 15 minutes, then automatically, we will block those message processing from the main queue, and, uh, we will push those message to the different queue so that, uh, there is no blocking from these customers to the other messages. This blocking like, since one customer is causing issue, this one customer's message will be processed in that different queue. And, uh, other that that queue message will be pulled by other different consumer. And, uh, yep. So it will in this way, also, we have user. Your use of\n"], ['Interviewer: Your use of Redis for managing active requests and handling response times is quite innovative. Given the critical role Redis plays in these scenarios, how do you ensure the reliability and performance of Redis itself, especially in a high-throughput environment?  \n', "Interviewee: Yeah. So since, uh, our application is a high throughput environment since, like, we will process the millions of books every day. So since, like, the the main data the primary source of the data we are using, the MongoDB, uh, the the data which we are storing in the Redshift, the secondary data. So even in case of for, like, uh, there is some issue with the Redis data, like, let's say, uh, the counts which we are tracking for the active response time is also the, uh, the average response times. If it is inconsistent, then what we will do is we are setting up the TPL. So which will make sure the data is clean up every certain interval so that if if there is any issue occurs like it is within the certain time frame interval so that the inconsistency won't carry forward. Uh, so at the end, like, we are solving the customer's problem at each frequent intervals. But before that, uh, they won't first, we need to make sure that there is no data inconsistency in the release even if it occurs, like, since we are cleaning up the inconsistency with each in like, a TTL with each intervals by using the TTL time to you setup, uh, that is making sure, like, uh, that data consistency in that in our application. Implement\n"], ["Interviewer: Implementing TTL for data in Redis is a good strategy for maintaining consistency. Given your experience with setting up and managing Kubernetes clusters for your microservices, what are some best practices you've followed to ensure security within the cluster, especially considering the sensitive nature of the data your applications handle?  \n", "Interviewee: Yeah. To be frank, like so, uh, I have a detailed knowledge about the Kubernetes. I have a dedicated dev ops teams who will take complete Kubernetes deployments and, uh, all the processes. But when it comes to developer as a developer from my side, so I have, like, just we'll test, like, what strategies we need to use in DevOps. What is the load load auto scaling policies, get a policies which we need to set up? So coming to the security reviews, like, I'm exactly not much sure about that. But, uh, as a developer, I completely focus on push tag development, not much, uh, into the Kubernetes. Kubernetes, the high level overview, I have a how it is helping the customers to, um, like, scale, how to scale and enhance the application functionalities. Let's say, like, I'll give an example. Like, let's say we have an like, if you are using a monolithic application, then we may use this, uh, an AC to instance. But if it comes to Microsoft Research, it is best to use the Kubernetes. So where we can, uh, certainly define the, uh, CPU and the memory limits within the parts so that if we require like, let let's say, one microservices may require only 256 MB and 0.25 milli cores of CPU, then we can set up that particular limits within the board and so that it will allow and it will so that we we're able to utilize the CPU and memory efficiently so that there is no wastage of the memory and CPU by using, uh, like, not this is not in the case of, uh, EC two instances. Here, we can certainly define the limits for each word. It's clear.\n"], ["Interviewer: It's clear you've focused on leveraging Kubernetes for efficient resource utilization. Given your emphasis on helping to define auto-scaling and resource limits, how do you approach container security within the development lifecycle? Are there specific tools or processes you've found effective in ensuring that the containers you deploy are secure?  \n", "Interviewee: Yes. Yeah. So we are using the Argo CD, like, uh, which is connected, uh, so, uh, which is directly connected to the Kubernetes instances. So which will make sure the build and the deploy process. So whenever the developer commits something to the gate, so the gate will be, uh, triggers a message to the cargo CD where the code is build and code will be checked linked and build. Once that is done, it will create a building is so the image will be pulled by the Kubernetes ports, and it will create the new process. So, uh, that's complete security of the port will be taken care within the Argo CD and the Kubernetes environment. Leverage\n"], ["Interviewer: Leveraging Argo CD for continuous deployment is indeed a strong security practice. In addition to Argo CD, are there any specific security scanning tools or methodologies you've integrated into your CI/CD pipeline to ensure that the images being deployed are free from vulnerabilities?  \n", 'Interviewee: This, like, uh, integration, which will continuously takes the vulnerability packages if there is any discrepancy in the packages. The Nike is a good tool to check the code and the packages. Using\n'], ['Interviewer: Using Snyk for continuous vulnerability monitoring is a solid approach. How do you ensure that the dependencies you use in your Node.js applications, especially those for critical functionalities, are kept up to date with the latest security patches and best practices?  \n', 'Interviewee: Yes. Since we are using the snake, uh, snake will automatically suggest the latest security patches, which we will, uh, like, strictly follow the snake upgrades, which is which is suggesting by the snake. So whenever there is upgrade, uh, it will automatically create the PR with the patches which we need to do. Uh, so we will take a review of that PR, and, uh, we will automatically take consideration of that package upgrade. So and then we will thoroughly test complete functionality of the application once we have touched the package upgrade. Relying\n'], ['Interviewer: Relying on Snyk for automated dependency updates and then conducting thorough testing is a strong strategy for keeping your applications secure and up to date. How do you handle error and exception logging in your Node.js applications, especially in a distributed microservices environment, to ensure that issues are quickly identified and resolved?  \n', "Interviewee: Oh, yes. Since we are using the node.js within nodejs we are using the HDs framework next is framework is providing a very good functionalities for with the different modules even config modules logging modules. We are leveraging the logger module of the inheres which will standardize the complete application logic. Once the logging is done automatically all these lock the kubernetes automatically push this logs to the like there is a agent installed the data log isn't is installed here. So automatically all the messages which is coming into the kubernetes in environment level cluster level will go to the data dog. So we will we have set up a clean. Service level indicators and the service level objectives, which we need to monitor. If there is any issue. We also set up alarms. By using the efficiency, which will make sure the all the everything everything. Every system is completely up and running if there is any issue it will alert, the people who is responsible for the particular feature the response like kadal acting mechanism. We have set up into there is like two steps one is the warning level which is when it to certain percent maybe 340% When is there a level which is when it to 70% of 90% whatever we Define so that when the statements are reached in the warning level the male there is a male setup on the when they are Level comes automatically they call it to the people from the obscene. And also we are using the alarms. also, we are using the data log monitoring These all are helping us to track the logs based on the logs. We are setting up the SLS. SLS which is by using this approach. We are completely able to manage the our services in the distributed systems when it comes to in the node.js applications how we are tracking the errors responses. We are setting up the default Global exception filters which which will track the any kind of exceptions are error handlers, which will then it will process the errors in a standard format and then it will push through the data.\n"], ['Interviewer: Leveraging the Hapi framework for standardized logging and monitoring through DataDog is a robust approach. Could you delve into how you define and manage Service Level Objectives (SLOs) and Service Level Indicators (SLIs) in your microservices architecture, particularly in the context of a Node.js application?  \n', "Interviewee: Yes, sure. Definitely. Let's take an example of the rest API application in case of in this case microservice webbook microservices where customers can create or get the logs of the webbook are like there can be updates delays within the way book so that whenever there is something if there is any errors occurred, so we are completely tracking like each request response in the data dog. So whenever you request comes we will keep track of the start log whenever the response is completed. We will keep track of the response in the data with the industry. So for each so as a service level indicator, we will track the on each log level. We will track the status code if the status code is coming within 200 that means it is Success then whenever there is a status code other than 200 that means it is failed status so that we will create an Indicator based on the status code by using the service level indicator. We will create a cell which will keep on an average like in the NS 10s. It will create a slope based on the syndicator and we will make sure that like in one day like how many error course we should in 3 days how many error codes we have set up a list based on that.\n"], ['Interviewer: Thanks for taking the time to interview with us! The time allotted for our interview has come to an end. We will reach out to you with next steps shortly. Please click the end interview button to end the interview.', 'Interviewee:']]}

Preferred Candidate:


Prompt:
Job Description:
technical-project-manager-v3

Candidate A Resume:
{"data": {"awards": [], "certifications": [], "education": [{"GPA": "8.08", "degree": "M.S.", "endYear": "", "major": "Computer Science Engineering", "school": "National Institute of Technology, Tiruchirappalli (NIT Trichy)", "startYear": ""}], "projects": [], "publication": [], "skills": ["Product Sense", "Requirement gathering", "Data Analysis", "Product Development", "A/B Testing", "Metabase", "MySql", "Tableau", "Firebase", "JAMStack", "Figma", "Clevertap", "Moengage"], "workExperience": [{"company": "Stealth Startup (B2B Marketplace)", "description": "Conceptualised and scaled a unique B2B marketplace for Indian transport SMBs, enabling free audio calls, automated call recording, transcription, and deal classification. Real-time underwriting algorithms for working capital loans. Overcame initial marketplace challenges by leveraging OpenAI API to parse WhatsApp community posts, improving liquidity on our App. Deployed a PWA, effectively expanding the user base to 5000+ users via automated marketing growth hack. Demonstrated a profound grasp of marketplace dynamics, technology integration, and user growth strategies. While the project is sunsetting due to retention and capital constraints, learnings in product development and innovation were invaluable.", "endYear": "Present", "location": {"city": "Pune", "country": "India"}, "role": "Product Lead", "startYear": "2023"}, {"company": "Vahak, Epictus Solution India Pvt. Ltd.", "description": "Led retention team of 10 leads and 20 members, improving week on week retention by 10%. Conducted A/B tests to enhance onboarding (10x) and posting (2x). Enhanced web performance (2x reduced load times) and oversaw a smooth migration from AWS to Vercel and React to NextJS. Security audited all products & fixed loopholes. Achieved 3x organic growth in 6 months while evaluating performance marketing campaigns. Introduced three revenue-boosting features to the product roadmap: 'My Bid,' 'Calling,' and 'Value-Added Services,' resulting in recognition and reward within 5 months of joining as a PM.", "endYear": "2023", "location": {"city": "Bengaluru", "country": "India"}, "role": "Technical Product Manager", "startYear": "2022"}, {"company": "One Touch Solutions", "description": "Provided tech services to government clients & private companies. Successfully delivered both hardware and software services. Led development of an eLearning test prep platform from the ground up. Crafted an efficient queue management solution.", "endYear": "2022", "location": {"city": "Pune", "country": "India"}, "role": "Product Manager", "startYear": "2021"}, {"company": "Morgan Stanley", "description": "Led UI integrations and platform development for client facing products. Innovated and prototyped a financial wellness app, generating over 1 million in revenue. Conducted UX research for IPO stock distribution software used by Uber, Pinterest.", "endYear": "2021", "location": {"city": "Bengaluru", "country": "India"}, "role": "Product Manager", "startYear": "2018"}, {"company": "Deutsche Bank", "description": "Designed and prototyped a new helpdesk FAQ portal, effectively reducing inbound queries by 20%.", "endYear": "2016", "location": {"city": "Pune", "country": "India"}, "role": "Product Management Intern", "startYear": "2015"}]}, "status": "success"}

Candidate B Resume:
{"data": {"awards": [], "certifications": ["Professional Scrum Product Owner (PSPO-1)"], "education": [{"GPA": "", "degree": "MBA", "endYear": "2018", "major": "Technology Management", "school": "NMIMS University", "startYear": ""}], "projects": [], "publication": [], "skills": ["NewRelic", "Content Square", "Google Analytics", "Front End & Back End web integrations", "APIs", "Postman", "Swagger", "Data Visualization tools", "Conversion Rate Optimization", "Agile Project Management", "Business Analysis", "Software Development Life Cycle (SDLC)"], "workExperience": [{"company": "Bajaj Finance", "description": "Managing end to end product lifecycle of Bill Payments (Bharat Bill Payment Services) across all the assets for Bajaj Finance Ltd. Stakeholder management with business, technology function, operations, finance, risk, design, service & QA for smooth roll out of new capabilities, migration etc. Prepared the bill payments product roadmap for FY24 to increase monthly transaction rate from 2.5Mn to 5Mn. Strategically monetized the bill payment journey by introducing a convenience/platform fee, resulting in a substantial monthly revenue generation of INR 1 million. Led the delivery of an innovative orchestration system, dynamically routing traffic based on success rates, leading to improved performance and efficiency. Spearheaded the creation of interactive dashboards on Power BI, facilitating real-time tracking of crucial business Key Performance Indicators (KPIs) and analyze data to optimize processes, customer journey, funnel and improve decision-making. Pioneered the creation and implementation of offline channels for bill payments with estimated increase in new customer acquisitions and the addition of 1.2 million transactions annually. Implemented an automated 3-way reconciliation process, minimizing manual intervention and expediting settlements while ensuring compliance with regulatory requirements.", "endYear": "Present", "location": {"city": "Pune", "country": "India"}, "role": "Senior Product Manager (BBPS)", "startYear": "2021"}, {"company": "Bajaj Finance", "description": "Managed the cards, B2B QR, Bill payments product portfolio of website channel for Bajaj Finance Ltd. Developed a highly efficient onboarding form for SEO/SEM strategy, enabling digital customer acquisition through a seamless DIY journey. Run daily stand up with a team of 5 developers, project managers, 2 QA. Stakeholder management with business, IT, design, QA, Tech Product managers, tech SEO team etc. Successfully managed and optimized the Insta EMI card journey, providing users with an instant shopping-ready experience, resulting in the sourcing of 2 million cards within 8 months. Led the end-to-end journey of the Health EMI card, achieving the sourcing of over 50,000 cards in just 6 months. Conceptualized and launched a QR based product catering to both Urban and Rural markets, offering personalized offers to 0.15 million BFL dealers and their customers. Led the development and stabilization of the BBPS web journey from scratch, using AEM and ReactJS, facilitating smooth transactions for users. Analyzed and identified improvement areas in the BBPS web platform, leveraging tools like Content Square and NewRelic, resulting in a remarkable 33% increase in transaction success rate.", "endYear": "2023", "location": {"city": "Pune", "country": "India"}, "role": "Product Owner (Cards & B2B Business)", "startYear": "2021"}, {"company": "AU Small Finance Bank", "description": "Developed straight-through-process for merchant acquisition to increase activation rate by 30%. Proposed and delivered the self-onboarding process of ETB customers to increase the adoption rate of AU QR app. Engagement with tech vendor, business, design, communication, operation, risk and compliance for end-to-end product development cycle.", "endYear": "2021", "location": {"city": "Jaipur", "country": "India"}, "role": "Senior Product Manager", "startYear": "2021"}, {"company": "Mswipe Technologies Pvt Ltd", "description": "Collaborated with M2P, Transcorp, NPCI to deliver 0-1 prepaid card journey. Created and executed end-to-end pre-paid card on-boarding journey and CMS platform in mobile app and web. Developed BNPL platform to cater 11 issuers and 30+ OEMs which enabled 0.1 mn merchants to offer the service. Enabled cross sell of various products like Insurance, ATM POS etc on merchant app to increase revenue. Delivered bundled merchant onboarding journeys for QR, POS and prepaid card to address merchants of various segments and sections.", "endYear": "2021", "location": {"city": "Mumbai", "country": "India"}, "role": "Product Manager", "startYear": "2020"}, {"company": "Mswipe Technologies Pvt Ltd", "description": "Launched MQR in Rajasthan with a workforce of 200 executives with product coaching & established a 24% base of the total base, with a 20% contribution in TPV. Achieved highest cross sell of POS across India for QR department.", "endYear": "2020", "location": {"city": "Rajasthan", "country": "India"}, "role": "Area Sales Manager", "startYear": "2019"}, {"company": "Mswipe Technologies Pvt Ltd", "description": "Worked with Payso Fintech (acquired by Mswipe tech) to activate Indore City by onboarding merchants with high transaction volumes. Established of 3 sales (FOS, Intern & Banking) channels in the city to scale onboarding.", "endYear": "2019", "location": {"city": "Indore", "country": "India"}, "role": "Management Trainee", "startYear": "2018"}]}, "status": "success"}

Candidate A Transcript:
{'pairs': [['Interviewer: Hello and welcome to the AI interview! This interview will consist of basic questions about your background as well as some high-level questions about the skills you listed on your application. Ensure that you minimize long pauses during your responses, otherwise you may be cut off prematurely. Are you ready to start the interview?\n', "Interviewee: Sure. Sure. I'm ready.\n"], ["Interviewer: I'm sorry, I didn't quite catch that. Could you tell me a bit about your most recent role and how it has prepared you for the position of Product Manager? \n", "Interviewee: Yes. Most recently, uh, I'm a product lead, uh, at a stealth mode startup where I'm making a marketplace, uh, for Indian transporters transport SMBs. So one interest some of the interesting aspects about of it are I did not use any marketing budget, so there was no performance marketing involved. There was there were no paid ads. All the growth has been purely organic and through growth hacks. Uh, so there was some, uh, growth loops which I had embedded into product, which included organic communities. So I was reading organic communities, uh, through AI agent and then converting those, uh, things onto my application, uh, so that my transport marketplace was automatically populated with organic genuine post. Uh, that's how I bootstrapped it and and generated a significant traction in short span without spending any, uh, you know, marketing thing. So the that that that that's about my my recent rule. I used, like, AI agent, open APIs. I I designed a very significantly better interface than than what what the existing computers are in the market are doing. And then one innovation was, like, reading organic communities through a WhatsApp bot and then, uh, converting those push into an organic push on onto the application. So these three were the, like, key elements of it. Um, I mean, that that that's an\n"], ["Interviewer: That's quite impressive, leveraging organic growth and AI to drive user engagement without a marketing budget. Given your experience with AI agents and APIs, how did you ensure that the data being scraped and used in your marketplace was reliable and respected user privacy, especially considering the sensitivity around transportation logistics? \n", "Interviewee: Yes. Correct. So few things were there. Although I was using AI agent to populate my marketplace, uh, there was still a manual intervention just to make sure that, uh, like, all the data which is going into the my system is accurate. Uh, another thing, I had written some more APIs on top of it in order to validate whatever information I'm putting it. It's not considering like, having any sensitive information, any user specific information, which is automatically lead to our, uh, UI. So I had, like, multiple APIs on top of another or to validate those things. Um, in addition, I had, like, a person dedicated just to keep a watch over, uh, the organic post generated on the platform. If there is any mishap, like, you can immediately delete it, uh, with with the manual control. So these two things. Like, there were, like, couple of more AI kind of agent APIs which which, uh, made sure that every post is validated strongly against our set of criteria. And then on top of it, there was a manual, uh, checking as well. Uh, Yeah. These two things were were ensure, uh, like, ensured. And another thing was, uh, on our marketplace itself, we were making sure that the user personal information, which which are their phone numbers or any any name, that sort of thing, that is hidden from, uh, from the the the other marketplace users on the application until they submit their own information. So the way we ensure this, like like, uh, as I talk talked about, there was another top of APIs chained to to each other, uh, which ensured that, like, phone numbers is omitted, any personal data is omitted. And for the for that thing also, I use another like like, same open API, like, with another one. Like, ensure that there's no person data or everything, uh, is stripped off and masked from actually displaying on there and the and the end user of of this thing, marketplace postings. So, yep, uh, that that's how I dealt about it.\n"], ["Interviewer: It sounds like you've implemented a robust system combining automated checks with manual oversight to maintain data integrity and privacy. Shifting focus to your design skills, you mentioned creating a significantly better interface. Can you walk me through your design process using Figma, and how you ensured that the user experience was aligned with the needs of your transporters and SMBs? \n", "Interviewee: Okay. Uh, so the thing is, uh, right now, I mean, if you want, I can show you, uh, the, um, like, my Figma sketches, but, uh, I'm not sure, like, I would be able to access those files right at the moment, but then I'll explain you the thought process. The thought process was, uh, ensuring what Indian transport SMEs typically prefer. They prefer WhatsApp US. They prefer coming their communication happening with mobile phone over any other apps. So I made sure that our app UI is very coherent with what what WhatsApp UI is and what call logs are. So they kind of feel this app is natural extension to what they have already been using. They they use typically phone calls and, like, in the personal connections. Uh, so one key, uh, feature was, uh, like, instead of having multiple, you know, multiple sections of that which they have to learn and explore, Uh, we kind of did a a call log kind of test in which, uh, the whole UI appeared as if, like, it was a series of call log interactions with other users. So there was post, there was track, there was, you know, call call made, call received. That type of interaction on a unified interface, uh, makes it very interesting for somehow, like, for the, uh, Indian consumers, uh, the transport SMBs. They don't like uh, want to learn different subsections and subsections of, uh, like like, you have typically, what a competitor would do is, uh, like like, what what other competitive apps are doing is they are they're having like, there is a top marketplace. There is a loan marketplace. Uh, then there is my load section, my truck section. Like, 4, 5 sections, it it's placed into it. But, no, but what why users are preferring online communities? Because it feels like a live interaction. Uh, like, one thing after another, not not necessarily categorized into different things. So that's that that's how we leverage our UI insights.\n"], ["Interviewer: Your approach to UI design is very user-centric, focusing on familiarity and ease of use by mirroring popular communication apps like WhatsApp. Given that you've tailored the experience for Indian transport SMBs, how did you incorporate feedback loops into your product development process to ensure that the features you were building were actually meeting the needs of your users? And how did you prioritize which features to develop next? \n", "Interviewee: Yep. So the thing is, uh, we had periodic feedback loops even before the product was launched. Uh, what what I would do is, like, prototype a thing in Figma and then actually take it to the local transporters and see like, without mentioning it to them that this is just a prototype and not an actual application, just see how they try to interact with that that screen. And, actually, record a screen, uh, you know, tabs and, uh, like, the way they're where they click and what their facial expressions are. I used to, like, notice it and then later studied, like, think thinking where did they feel actually confused or where did they were they were, like, encouraged to click on certain things. Um, that's how that's how I ensured, like, the the feedback loop loop was, uh, involved. Uh, I'm sorry. What was your what was your second question? I think you asked 2 questions. 1 was the feedback loop. How how did I incur incorporate? And what was the second question?\n"], ['Interviewer: No problem at all. The second part of my question was about how you prioritized which features to develop next based on the feedback you received and the data you collected. Could you elaborate on your process for feature prioritization in the context of your product management? \n', 'Interviewee: Could you elaborate on your process for feature prioritization in the context of your product management? Yep. Yep. So\n'], ['Interviewer: I understand that you agree with the user-centric approach, but could you elaborate on how you collected and integrated user feedback into your product development cycle? Additionally, what criteria did you use to decide which features to prioritize for development? \n', "Interviewee: Yep. Correct. So one one is the traditional way of looking at it. Like, there is a a rise model evaluating, uh, which features are, like, the first to take. And, uh, I think that typically takes, uh, few things into consideration. How much is the effort involved? Uh, how much is the possible impact? Like, scoring some arbitrary numbers to it and checking the ratio of impact divided by effort, uh, and and then multiplying it with the possible reach of a particular solution. So that's how we would rank the the features, which feature to dial up first. And another thing is particularly one thing I personally try to use is, uh, uh, I have to check whether the value proposition of a particular solution or feature is significantly higher because this was a new product. So the value proposition had to be significantly higher than, uh, what the competing products are are available in the market. So it can't just be a better UI. So, uh, that that that that these are the 2 metrics, uh, or two parameters based on which I decided which features to build first. 1 was the first one was the value proposition, and second one was traditional ranking. How would you rank, uh, which which features are, like, uh, should be developed first? And then, uh, I mean, uh, for value proposition, I might go into little bit more elaborate. Like, you need to have, like, 2, 3, 4 times more better value proposition than than the existing competitive, uh, products. And then that's when users switch from current behavior to a new behavior. Uh, I think this is, uh, this is kind of, like, a little bit known theory of delta for value proposition. If there is a delta for value proposition in your product, then people like like, the the new behavior is 4 times better than the previous behavior, then then people are, like, naturally inclined to switch to the new behavior and not switch back to whatever the old behavior is. So these these two things. Yep. Rise model and value proposition.\n"], ["Interviewer: That's a very strategic approach, utilizing the RICE model for effort versus impact analysis and the Delta 4 theory to ensure that your product stands out in the market. Given your technical background, how did you communicate these technical and product decisions to your development team, and how did you ensure that the technical aspects were aligned with the product vision and user needs? \n", "Interviewee: Okay. So few things we ensured, like, one one was, like, we ensured which part of the UI needs pixel perfection, which parts are, like, okay to, you know, change a little bit. For example, let's say on if you want to copy WhatsApp UI, it's good enough to copy the text messaging part and and, you you know, usual, uh, the color the color and theme, but don't have to go as detailed as, like, you know, making sure that the doodles used on WhatsApp are the same what what we are using on our app. So, uh, that's how I would communicate the user details, uh, to the design team that to ensure that, like, you have to make sure that which parts are, like, must have and which parts are, like, okay to kind of go a little bit vague about. As far as the technical team, I being, uh, being from an engineering background, I would I would make a detailed specification about which programs are to be done, which APIs are to be done, what input data is expected, what output data is expected. Uh, that kind of, like, API level specification and what automations are need to be done, uh, these kind of things which we, uh, which I give information to the tech team. And I also help on, like, which tool to pick. Let's say, uh, if you're, uh, doing browser Chrome automation, like, how to use JavaScript tool and selenium tool, you know, combine that automation and, like, which which libraries are best utilized and, uh, to open API, uh, availability and all those things. I made sure that the tech team does not have to think about, uh, which frameworks to use or even, uh, what what are the API specification. They just had to focus on what what was the core task given to them. And I I made sure that they they they get all the technical details.\n"], ["Interviewer: It's clear that you have a strong grasp on both the design and technical aspects of product development, and you're able to effectively bridge the gap between the two. Considering your experience with web scraping and automation, how did you handle challenges related to data consistency and the potential for web scraping to break due to changes in the target websites? How did you ensure the resilience of your data collection methods? \n", "Interviewee: Yep. So, uh, being a new product and a new process, uh, we were not, like, very, uh, strict initially about, uh, what the consistency, let's say, data collection process, what if the the UI, uh, code itself on the website changes. So that particular part, let's say, if UI of, uh, like, the the HTML code are are changing on the the on on the WhatsApp side, like, the data collection may not be accurate. That part was honestly manual. Like, if there was a like, if program broke, then we we saw saw into the program and then then and then and then fixed that. And another another thing about, like, the consistency and everything, I as I already told before that uh, we had, like, couple of more edge AI agents to validate every post which were which were reading into our system. So these 2, uh, if, uh, the the about the web acceptance that, uh, code on the in on on on the website being chain and then that is impacting our data collection, we had checks in places to make sure that if such thing happens, we have to manually intervene and check which code or which usually, the the the these changes are really minor. Like, usually, some HTML tags, uh, do get changed on on the client website. Um, so those changes we will do manually, uh, check again what what what's the new updated code code and then just do it. As far as the exact content which we are reading, we had validation and already in place to ensure that those are relevant to our marketplace.\n"], ["Interviewer: It's good to hear that you had a validation process in place to maintain data quality. Given the manual aspect of handling changes in web scraping targets, did you implement any alerting mechanisms to detect when a scrape failed or when data quality issues arose? How did you manage to keep the downtime to a minimum in such scenarios? \n", "Interviewee: Yes. Yes. So, uh, like, this was little bit hacky in a way that, uh, whenever the program kind of failed to read, uh, any organic post, uh, after multiple iterations, uh, and then failed to read. I don't mean to say, like, there was no organic push at all. The program broke in a sense that the element which you're searching for is not found, let's say. That's when you know that certain thing has been broken on our server. At that time, I'm I made a alert on on our Telegram, which would, uh, which would like like, it would send me a Telegram message that, uh, hey, Pawan, uh, something has broken because we're not able to read a particular element on this website, uh, HTML. That's how, uh, that's how we'll do. Uh, I I I would want to ensure that this was her part of the plan, but I did not actually end up implementing in the product because of the, you know, uh, constraints of time. But this was originally, uh, one of my plan or PRDs to ensure that we have a very high uptime, ensuring that sometimes whenever whenever there is a change in the client side and we are not able to find the element itself to read the data form, uh, we would get our Telegram alert. So I had a PRD prepared for it, but, technically, we do not end up implementing.\n"], ["Interviewer: I see, so you had a proactive approach in mind with the telegram alerts for monitoring the web scraping process. Even though it wasn't implemented, it's a sound strategy for minimizing downtime. Moving forward, how would you approach the implementation of such monitoring systems to ensure that you can respond quickly to any issues that arise with your data collection processes in future projects? \n", "Interviewee: Yes. So in future, but it's I know typically in professional setup, uh, Century is used to check what kind type of errors are occurring, what is the frequency of occurrence, and, uh, what is the severity severity of those. You have to have some certain markers to to evaluate the severity frequency and everything. And those all those errors are logged into century. You you daily have a look at it, see what is severe, what needs are, what needs are you measured look into. And I know in typical larger teams, there are there are on call engineers to deal with certain scenarios, uh, but, uh, but, uh, that's how I would I would go. Like, that depends totally on the scale of the project. So daily, we would we were generating around 200 organic post, and at at our sorry. At my skill, uh, this was not a severe requirement, but, uh, but but usually in a professional setup, in a larger organization, I know there are centuries being locked into and, uh, those centuries then have a level wise alert. So sometimes it's a email alert, then it's a phone call alert to the engineer. And then then at the highest level, I think there is there has to be an on call engineer in which personally calls up, uh, the concerned person who fixes the issue if he's not able to fix on his own. So, yep, that's that's that's about my answer.\n"], ["Interviewer: That's a solid plan for scaling up error monitoring and response mechanisms. Utilizing tools like Sentry for error logging and having a tiered alert system can indeed help manage and mitigate issues effectively. Given your experience and the scale of your projects, how do you balance the need for such robust systems with the resources available, especially in a startup environment where you might have constraints on time and manpower? \n", "Interviewee: Yep. Absolutely. Correct. The first thing I being a being a product manager first thing I see like how much impact can a mistake create on our end consumer? So if it's a little payment related system or if it's related to to let's say the user posting those are severe things because without them user cannot interact with the product itself or they have like high repercussions. So for those things definitely the trigger threshold has to be much lower if there is any mistake like that has to be dealt with immediately, but the current example which I recently talked about if I'm populating Marketplace from organic communities, that's not a very, you know, very high negative impact use case or scenario or if there are no organic post generated from our online community. That's not going to cause any havoc in any users personal life. They can still use the product naturally without any automated Marketing in world. So in that scenario like that. Then you not be immediate engineering input to be input to be given and another thing like few things to make sure that like depending on the stage of the product. I like particularly for the initial stage products. I do prefer working with full stack developers who kind of know automation front and backend in order to make this systems in lesser type. But even before that I'll see from user effective how much negative impact can certainly make and then that the work. If it's if it's too much for the team too much for the reason not going to impact and user anyway in a very negative manner. So that's how I would like this is a multiple faceted thinking like whether it's a user impact causing or not and whether our team can deliver it or not and then one one Midway approach. I found like usually full stack developers up really fast implemented. So who helped me ensure that I have a very robust system in a minimal effort in more.\n"], ['Interviewer: Thanks for taking the time to interview with us! The time allotted for our interview has come to an end. We will reach out to you with next steps shortly. Please click the end interview button to end the interview.', 'Interviewee:']]}

Candidate B Transcript:
{'pairs': [['Interviewer: Hello and welcome to the AI interview! This interview will consist of basic questions about your background as well as some high-level questions about the skills you listed on your application. Ensure that you minimize long pauses during your responses, otherwise you may be cut off prematurely. Are you ready to start the interview? \n', 'Interviewee: Yes.\n'], ["Interviewer: Great! I see from your resume that you've made significant contributions to the digital payment space, particularly in product management. Can you walk me through the specific challenges you faced while managing the BBPS product lifecycle at Bajaj Finance, and how you addressed them?  \n", 'Interviewee: Sure. So, uh, bill payments, uh, is a product that is created by NPCI. And then the architecture is built in such a beautiful way wherein 5 major players are working with, uh, around 22,000 odd billers. Those are live on the platform as as we speak today. The challenges that we face on day to day basis, uh, is on the side of every day there is some or the other biller, uh, you know, top performing billers are fluctuating because of their technical issues. So it includes some migration activity that they are doing it, uh, maybe some new changes or new enhancement that they are doing it, or some issues with their operating units, biller operating units, or the customer operating units. So all those types of challenges that we face on day to day basis. Now coming on to the site, how do we tackle this, uh, challenge is, uh, by implementing. So as per the compliance, uh, we are, uh, an agent institute, and an agent institute can have, uh, 2 operating 2 customer operating units. So we have our onboarded additional, uh, you know, customer operating, uh, unit that is allowing us to at least, uh, you know, reduce our failures by 10 percents by, you know, orchestrating the traffic from 1 o u to the other in the real time as soon as we, uh, reaches, uh, the failure reaches the defined thresholds.\n'], ["Interviewer: That's a comprehensive overview of the challenges with biller fluctuations and the solutions you've implemented. Regarding the orchestration system you mentioned, how did you ensure the real-time traffic orchestration maintained high availability and reliability, especially during peak transaction periods?  \n", "Interviewee: So, uh, there are 2 peak periods that we, uh, are, uh, that we usually have. Uh, one is around somewhere between 9 to 12 a PM sorry, AM. And second one is around 4 to 9 PM. So these are the 2, uh, traffic, uh, you know, uh, peak period at which, uh, the traffic is at the max. Now coming on to the how orchestrator works is on the side of the, you know, uh, we have, um, identified that, uh, failure, uh, rates during these peak times. And at these peak times, uh, we define that this is the minimum threshold at which the orchestrator should start dynamically routing the traffic in a, uh, you know, batch manner wherein 10%, 20%, 30% traffic starts getting routed to the, uh, second OU. And this happens at a biller level. So it is comprehensive to biller. As soon as the threshold of let's suppose 95% is the threshold, uh, the the success rate goes below 95%, the 10% traffic goes start, you know, uh, shifting to the uh, other overview that we have. So that's how it works.\n"], ['Interviewer: Fascinating approach to dynamic traffic routing. Given this dynamic nature, how do you track and analyze the transaction success rates and response times for each biller in real-time, especially considering your background in data visualization and tools like New Relic?  \n', "Interviewee: So as you mentioned that, um, um, as as it is mentioned in my resume, the work we have, you know, some automated dashboards that are created on Power BI in New Relic. So these are the 2 tools that we are currently using to monitor or, you know, view our numbers. So we have a real time Power BI dashboards that allow us to, you know, see the numbers that are happening in real time. And New Relic helps us in analyzing the performance of the, uh, key, uh, mobile applications or, uh, front end or back end applications that we are running in order to keep these transactions smoothly. So as soon as the threshold goes beyond, so we have our monitoring team, uh, those, uh, you know, that works directly with the technical team. And there are some other mechanisms that are built in place, uh, wherein the escalations are followed as soon as if the issue is not resolved within x period of time, then the issue gets escalated to the, uh, l two d. So that's how, uh, the dashboards and, uh, New Relic is being used, uh, here.\n"], ['Interviewer: Given the critical role of monitoring and alerting in maintaining system health, how do you design these alert mechanisms to ensure they are neither too sensitive, causing unnecessary alerts, nor too lax, potentially allowing issues to escalate before detection?  \n', 'Interviewee: So, uh, the issues, uh, basis the, you know, past 2 years experience, we have divided the, uh, errors into 2 parts. 1 is the business decline. 2nd 1 is the technical decline. Now coming on to the technical decline piece, we have identified certain issues which are, uh, already defined that this could be happening because of, uh, certain reasons. Okay? So for example, there is a migration activity that has been already informed by our operating unit. So for those, uh, the alert mechanism is already, uh, made in such a way wherein we uh, made the changes at the back end that during this period, the biller will not be monitored for for certain types of error. So migration related error codes or certain error codes that are already being identified in the technical declines, which are maintained in an exclusion list in order to reduce the, you know, uh, fake monitoring mails or, uh, alert mechanisms. Apart from that, there is a weekly or fortnightly review that we do, uh, on the trend lines of the failures that are happening in order to ensure that the alerting mechanism are, uh, upgraded with the latest error codes or the latest error trainings that are there.\n'], ["Interviewer: I'm impressed by the strategic approach to managing alert mechanisms. Shifting focus a bit, you mentioned leading the development of a BNPL platform at Mswipe Technologies. Can you elaborate on the key technical considerations you had to address to ensure the platform's scalability and security, particularly in the context of integrating with a large number of merchants' systems?  \n", 'Interviewee: Sure. So, uh, AM Swipe, uh, we were working with, uh, you know, uh, close to 7 or 8, uh, major issuers that are there in India. Apart from that, we our business team was closely, you know, onboarding the top uh, OEMs that are there. So we had around 14 OEMs, and the platform was built for curating the offers for the merchants, those who are, you know, directly working with the, uh, OEMs. So for example, Samsung being the brand, they have already 5,000 merchants that are there. Now they want to roll out some offer on the newly launched phone wherein the 10% discount will be given if the phone is purchased via ICICI Bank credit card. And, uh, the offer is available for a no cost EMI product. So all those configurations are built in that VNPL portal that allowed our OEMs and, uh, issuers to, you know, provide a joint offer to the merchant, which later on can, uh, uh, provide this offer to the end user who is buy who is purchasing the purchasing the project, uh, product of that particular OEM. So this included the 3 types of subvention mechanisms augmented by the issuer, subvention by the brand, and subvention by the merchant. So all 3 types of and mix of 3 was given wherein if issuer and OEM want to, uh, submit the product or merchant and brand want to submit it, the all the types of combinations were built in such a way wherein whatever the type of combination that is coming up, uh, can be taken up on the portal. Apart from that, the portal was uh, made in such a way wherein we were planning to offer it to the players, similar merchant acquiring players, those who are there in the market. Their focus is not more on the technology side. However, their focus was more on the business side, likes of the bank. So the bank focuses on, you know, retaining the customer, activating the customer while not working much on the technology side. So we used to provide our platform in order to increase the scalability of our product.\n'], ['Interviewer: Given the complex nature of these joint offers and the need to support multiple submission mechanisms, how did you approach the design of the BNPL platform to ensure it remained flexible and easily configurable without requiring extensive rework for each new type of offer or submission process?  \n', 'Interviewee: So, primarily, there are 4 to 5 types of offer that, uh, usually works in the BNPL space, wherein the subvention is offered by the OEM. So it could be a percentage wise or it could be a flat offer. Then similar type of offer can be offered by the uh, issuer. Okay. These are the majorly two types of, uh, the I mean, these 2 types or 3 types or combination of these 3 types of offers consist or contributes to the 90% of the types of offer that are getting currently created in BNPL space. Now coming on from issuer side, that that they usually allow 3 types of, uh, you know, EMI option. 1 is no cost EMI. 2nd is, uh, EMI with some different, uh, you know, service fees that they want to charge. Then 3rd comes service fees plus, uh, some interest being charged on the EMI. So all these types of exclusive combination of offers were being taken up from the OEMs and, uh, the issuers. Apart from that, uh, we did some, uh, competitive analysis from the players, likes of Pinelabs, what they are doing because they have the, you know, largest market share in terms of the space that we were working in. So within this, uh, basis, the competitive benchmarking and experience from OEMs and issuers, we had exclusive list of offers, and we build the platform in such a way wherein the combination of a plus b plus c are, uh, you know, uh, around 28 parameters that were defined. And those combination can be joined. The dots con can be joined basis the requirement of the OEM slash issuer slash merchant. So the platform was built in such a way wherein any type of offer is coming up. Uh, we were just, you know, making minor, uh, connecting the minor dots that is allowing us to, you know, create offers as per the requirement of the brand.\n'], ["Interviewer: Your approach to categorizing and handling different types of offers and EMI options is quite insightful. Considering the platform's role in facilitating transactions and managing financial terms, how did you ensure the accuracy and security of these transactions, especially in terms of the calculations for interest or service fees, which can be quite complex in financial services products?  \n", "Interviewee: So whenever, uh, issuer is onboarded or a brand is onboarded, we use to finalize the transaction file that will be shared with them. And the calculations that are happening will happen on a weekly basis. However, the file will be shared on the, uh, on daily basis. Once the file is shared, then only the funds transfer will happen from brand, uh, to the issuer slash to the, uh, to to us. So that's how, uh, we use to ensure that before making any partner slash brand life, we need to we used to take, you know, confirmation from the brand that whatever the transaction files, whatever the transaction details that they will require in order to perform the reconciliation, uh, we used to do that. Then for phase 1 and and we used to launch the particular brands in a phase manner wherein only 10 to 20 merchants are being enabled on the platform for our 1st month. Once that is done, once confidence is built, then we use to scale it to 1,000 of the merchants as per the brand's confidence.\n"], ["Interviewer: The phased approach to onboarding and transaction verification seems robust. Shifting focus to your technical skills, you've listed New Relic and Content Square on your resume. Can you explain how you've utilized Content Square to gain insights into user behavior and inform product decisions, particularly in the context of the digital payment solutions you've managed?  \n", "Interviewee: Sure. So Content Square, uh, we implemented on my 2 of the products, which was Instaemy Card and, uh, BBPS website. The main intention was to see how why the users were exiting from the each step of the funnel. So we we used a sunburst chart in order to see why users are exiting. So we identified that headers and footers as the had the maximum exit points. So we disabled those exit points and maintain the contact so that content relevant so that user can read and take the informed decision. That was one of the activity that we did. Apart from that, we identified that there were high risk claim that was happening on a contact icon that was given. So the intention of the user was to see the list of the content that that can be populated. So all those issues were identified using ContentSquare, uh, Sunburst charts by identifying the respective step of the funnel and the percent as of the exit that are happening. So that's how we used, uh, ContentSquare and increased our 2% improvement in the funnel.\n"], ['Interviewer: Your use of Content Square for user experience optimization is quite innovative. How did you measure the impact of these changes, particularly the redesign of the contact page, on conversion rates and user engagement, and what were the key metrics you used to evaluate success?  \n', "Interviewee: Yeah. So the analysis period was the one wherein, uh, in the 1st month in the in 1 month, we identified there are, let's suppose, x number of clicks, so those are happening. From when user is landing from x one page to the x two page, there are a defined, you know, percentage of let's suppose 10% users are, you know, unable to, uh, are getting exited in the uh, x one page itself, and 90% user are landing on x 2. From x 2 to x 3 only, 80% of, uh, the x 2 users are landing, so 20% drop off is there. So there was a metrics was defined when that we used to track on daily basis what is the behavior of the funnel. Okay. When we launched a new feature wherein the user need to fill the complete form, uh, there were some header and footer designs that were changed. So we started to identify that there is a increase of 2 to 3 percent of exits, uh, at each step of the funnel. So, uh, once these issues are identified, we saw some user experience videos wherein user were getting exited, user were clicking on, uh, some icons which were nonapplicable. So those were identified in the month 1. In m 2, we implemented those changes. We monitored it for a month. In the similar way, the way we were monitoring it for the m one. We we particularly check, you know, hundreds of videos in order to see why user is clicking it. We started calling. We tried to understand why user wants to click on the icon. What are the expectations? So basis there, the changes were implemented in m 2. Accordingly, in the similar fashion, we tracked down all the defined, uh, KPIs that, uh, were defined at the m one end and specifically on the issues that were identified. So the key KPIs that we identified on the, uh, that we tracked in the m two was on the size of the number of clicks that are happening, how many users are opening the page, what is the total time spent, how many clicks are happening on that particular instance that is being re modified, how many users are spending time on the on respective pages. So these are some of the key parameters that, uh, we started to analyze from m two.\n"], ['Interviewer: The detailed approach to tracking user behavior and engagement through Content Square is impressive. How did you use the data from Content Square to iterate on the design and content of the pages, and what role did user feedback play in this iterative process?  \n', 'Interviewee: So contact, uh, content square allows us to, you know, uh, see the heat map of the page at what section of the page user is interacting or spending most of the most of the time, uh, during the journey. Then we started to, you know, cap start to capture the feedback as soon as user is planning to exit from the page. So that help that helped us in identifying what is the user expectation on that particular piece. Apart from that, whatever the changes, if we have made it, we used to man analyze it using, uh, by seeing the user, uh, videos, uh, basis that, uh, the identifications were done, uh, whether the changes has been made in customer convenience or not.\n'], ['Interviewer: Incorporating heatmaps and user feedback from Content Square for design iterations and evaluating changes through user videos is a comprehensive UX strategy. How do you ensure that the technical integrations with these tools, such as Content Square and New Relic, are robust and do not significantly impact the performance of the applications they are monitoring?  \n', 'Interviewee: So whatever the, uh, scripts that we were implementing for New Relic and ContentSquare, we had, you know, various tools, uh, that we use to identify the impact of these scripts. So first one was, uh, website tracking tools that were there, wherein as soon as we used to identify there are some extensions that we are putting in. Apart from that, we had our, uh, infosec team that used to identify if there is any, uh, extra script that are being, uh, put in place. 2nd. 3rd thing that we used to do is via New Relic, we used to identify the CLP, f, uh, FCP, LCP. Uh, these are some of the parameters that helped us in understanding why the largest component of the page is not loading, why first input delay is there. So all those, uh, core web vitals were used to were being, uh, monitored using, uh, New Relic for other type of different types of scripts that we are putting in. Apart from that, there are some extensions that were provided by Google, uh, that were used to see the, you know, page loading performance, uh, after implementing various scripts on the website.\n'], ['Interviewer: Monitoring tools like New Relic for Core Web Vitals and using website tracking tools to assess the impact of third-party scripts is a solid approach. How do you approach the optimization of front-end and back-end integrations to ensure that the application remains responsive and efficient, especially in the context of the additional integrations you might have to manage for new features or services?  \n', "Interviewee: Uh, John, I have not worked on direct implementations of these scripts. When I were given these these products, uh, these scripts are already integrated. So I don't have much knowledge about it.\n"], ["Interviewer: I understand the pre-existing nature of the integrations with monitoring and analytics tools. Given your experience with managing these tools in a monitoring capacity, how do you envision leveraging their data and insights to inform proactive decision-making in product management, particularly in identifying areas for enhancement or addressing potential performance bottlenecks in the application's integrations?  \n", 'Interviewee: So as I mentioned that we have some powerbear dashboards created for our business kpis or business numbers tracking. In parallel to that we have some dashboards created for our you know key performance of our backend and front end systems. Now there were certain around 10 to 12 API is that are being consumed in the applications? And in that we identified in the business decline out of the 30000 errors on basis. We saw that 20,000 errors are happening because we were prefilling some. Customer information. That was the mobile number that we are assumption that it would be user convenience. But when we see when we saw the data that 20,000 failures are happening because of the error called invalid slasher incorrect customer details and So that was one of the customer details that customer need to enter along with the some customer ID or other parameters whenever the bill was fetched. The customer was getting this error. So when we started to, you know, stop prefilling the mobile number and we gave a contact icon on click office. The contactless can be open in the mobile number can be seen. So once this this issue was identified by Me by analyzing the data that what is happening after speaking to the customer seeing the different videos that customers. Not checking the mobile number is considering that whatever the number is being populated is the correct one and is proceeding after entering the other customer parameter and the error was getting there. So after identifying this we stopped refilling the mobile number and that because of that we were able to reduce the 60% of the total errors that were happening. So this is one of the classic example of I use the data in order to improve the performance of the system.\n'], ['Interviewer: Thanks for taking the time to interview with us! The time allotted for our interview has come to an end. We will reach out to you with next steps shortly. Please click the end interview button to end the interview.', 'Interviewee:']]}

Preferred Candidate: