A Meeting with the CEO of Microsoft
Exploring Projects in Amazon, Microsoft and more...
For this DSA Stories insight, we’d like to introduce Aayush Barthwal. He has previously worked at Oracle and Amazon.
We spoke to him in-depth about his journey and the areas where he has optimized code by applying his Data Structures and Algorithms skills.
While the application of Data Structures varies for companies and their products, startups are more open to experimentation to use linear data structures like queues, linked lists, and non-linear data structures like binary trees, graphs, and System Design principles in their code.
The usual brute-force approach is necessarily the first step taken to optimize solutions. For instance, if there are two for loops, can we use a single for loop to reduce computation time?
Aayush talks about companies offering consulting services that have hierarchical structures. Within HR Analytics, the employees of these companies can form clusters. Traversal can happen within these tree-like clusters.
At Amazon, Aayush worked on TBs of data from every country. Let’s take a case study. For example, a potential customer decides to purchase an iPhone. While they can directly login to the Amazon application, the traffic can come from multiple channels like Google Ads, Facebook, and Email.
Amazon’s spending on each channel depends on consumer behavior through complexity analysis. They utilize machine learning algorithms to develop models that are updated weekly through retraining.
The two models built have a base on Linear Regression and Neural Networks. This project is a part of the Consumer behavior and Analytics domain.
At Microsoft, employees often work on Power BI to build dashboards. They manually detect anomalies like a sharp incline or decline in the dashboard. These detections can be automated. Using a Python script, a graph is plotted on the analysis considering any two points to calculate the slope.
The objective is for the change to remain below 20% while maintaining the latency at 1 ms. This percent increase at 1 ms is acceptable since the resulting latency will only be 1.2 ms. But a similar change in graph slope at 65 million calls is quite a significant change.
In another venture, we explored a project around meetings. Let’s say the CEO of Microsoft, Satya Nadella, has many meetings on his agenda. The number of unread emails containing requests for meetings can run into hundreds!
This scenario applies to most senior executives as well. A delegator categorizes these meetings and lists them in the order of their priority. This task usually takes 1-2 weeks to perform manually.
Now, the development team takes the responsibility to reduce this time. Nobody wants to spend a week classifying emails! Data retrieval was done from APIs using their Token IDs.
The team retrieves the data package directly from calendar requests.
The team performed sorting using an algorithm that analyses these emails. The data considers emails from the past six months and analyzes their patterns.
Words: Analysis of word frequency in the subject line and body of meeting emails. For example, if the phrase "Viva Insights" appears in the subject line and is repeated across multiple meetings, the model will recognize this occurrence pattern.
Number of Participants Involved in a Meeting - For Satya Nadella to address a Town Hall meeting, the number of participants would be more than 50, and if it is a Team-based or 1-1 meeting, the number of participants could range from 1-4.
A Machine Learning approach, implementing the K-Means Algorithm, was developed to create a model to analyze words and the number of participants.
An alternative algorithm, developed from scratch, utilized a hit-and-trial method to determine coefficients. This algorithm performed weighted sorting of words, thereby creating clusters of meetings.
Since the algorithmic efficiency was better, the alternative algorithm was finally patented!
The meeting emails were categorized and color-coded in Red, Yellow, or Green to mark them in the order of their priority. The delegator further ranks them on their priority to prepare a final list.
Initially, the categorization used to take 1-2 weeks. The newly developed algorithm performed this task in 2 minutes!
For Satya Nadella, Town Hall meetings take precedence over Team Meetings, while for a Media House, Town Halls are of utmost priority.
Data Structures and Algorithms enabled this solution. It's also essential to understand machine learning algorithms to construct ML models or develop an algorithm from scratch.
This learning can be programming language independent. For software development, this is of utmost importance. Data structures enhance the problem-solving skills of professionals, enabling them to excel in coding challenges.
Other exciting applications of DSA include in the following areas:-
Google Flights - Similar applications that determine the shortest path for connecting flights. Here, graph theories have important applications too.
Uber/ RazorPay/ Flipkart Machine Coding Interview Round - A use-case for stack structures including Github - Version Control.
Word Applications - Undo or Redo: Use case for Stacks.
Companies that push data - Queues
Booked a Ticket for the World Cup match? - Queues FIFO structure!
While it may not be visible, DSA is implemented from the ground level. Where have you used DSA lately?
To upgrade in applying Data Structures and Algorithms, speak to HeyCoach’s learning consultants for a better roadmap. Click here.