☕ Microsoft's latest massive acquisition

Microsoft acquires a company in the natural language processing space. Coinbase has a ridiculously amazing first quarter and will IPO soon. Plus, awesome resources on being a CTO!

Hey Guys,

Interviewing.io is a fantastic resource I wanted to share with you all.

You can book realistic mock interviews with senior FAANG engineers who will give you detailed and actionable feedback on exactly what you need to work on.

Mastering algorithms on LeetCode and system design on SystemsExpert is great, but they don’t prepare you for the pressure and stress that comes from an actual interview setting.

The best part?

You don’t pay anything until you’re hired.

Check them out here.

Special thanks to Interviewing.io for sponsoring Quastor Daily. I’m a user of the service!

Tech Snippets

  • An awesome Github Repo on resources for CTOs (or aspiring CTOs).

    • CTO stands for Chief Technology Officer - the person who heads engineering and technology efforts at a company.

    • The repo contains resources on

      • Software Development Processes (Scrum/Agile, CI/CD, etc.)

      • Software Architecture

      • Product Management

      • Hiring for technical roles

  • A fascinating article by Facebook Engineering on how they encode videos.

    • Delivering videos means you must optimize for when and how your video codec compresses and decompresses videos and which video codecs you use.

      • Advanced codecs like VP9 provide better compression performance but they consume more computing power.

    • Facebook uses a machine learning model that predicts which videos will be highly watched and estimates their watch time (the total number of hours watched by everyone who watched a part of the video).

    • They use this watch time estimate to decide which encoding to use for a video. More advanced encodings (that result in improved compression but take more compute) can be applied to videos that have high watch time.

Industry News

Coinbase will go public Wednesday on NASDAQ after an amazing quarter

Coinbase is a cryptocurrency startup that allows you to easily buy and sell various cryptocurrencies. They also manage one of the largest cryptocurrency exchanges in the world (Coinbase Pro).

Due to the massive bull market in cryptocurrencies, Coinbase has had an absolutely amazing first quarter in 2021. The company attracted 13 million new users and generated earnings of $800 million on a revenue of $1.8 billion dollars.

That means Coinbase earned more than twice in profit in Q1 2021 than they did in all of 2020.

The company makes nearly all of its money from transaction fees (96% of net revenue) and charges more in transaction fees than other competitors (Kraken, Bitstamp, etc.).

Users are happy to pay (so far) because of Coinbase’s marketing and ease of use. The volatility of cryptocurrencies make the fees less noticeable compared to traditional financial markets.

However, this may change as cryptocurrency investors become more fee conscious. This could cause Coinbase’s margins to drop as they’re forced to take less aggressive fees.

Although Coinbase is pre-IPO, you can trade pre-IPO contracts at places like FTX’s Cryptocurrency Derivatives Exchange.

On that exchange, Coinbase’s valuation is currently trading at $140 billion dollars, making the company more valuable than the investment bank Goldman Sachs and the exchange NASDAQ combined.

Microsoft acquires Nuance Communications for $19.7 Billion Dollars

Nuance Communication is a pioneer in the speech recognition and natural language processing space. Their software formed the basis of Apple’s Siri voice assistant.

Currently, the largest part of Nuance is their machine learning software for healthcare. They build software for speech recognition for doctors and nurses to quickly input their patient notes into an electronic health systems (rather than manually typing it all in).

They also create conversational AI bots for use in chat and voice-based virtual assistants.

The company employs more than 1,600 language scientists, developers and engineers to build their NLP software.

Voice assistants have been all the rage lately with big tech companies. Amazon has been pushing Alexa, Google has been pushing Google Assistant and Apple has had Siri.

Microsoft has been investing in the speech systems for years now, but with far less success. They’ve been working on a voice assistant named Cortana, but they’ve recently announced that they would stop supporting Cortana on smartphones.

Therefore, this acquisition could signal a renewed interest from Microsoft in the voice assistant space.

Microsoft certainly hasn’t been shy about large acquisitions over the past few years, with Satya Nadella making it a core part of the company’s strategy.

Over the past few years, Microsoft has acquired LinkedIn, Github, Mojang (makers of Minecraft) and has tried to acquire TikTok. Currently, there’s rumors that Microsoft has been holding talks to acquire Discord, the popular messaging platform for gamers, for more than $10 billion dollars.

Interview Question

You are given an M x N matrix where each row and each column is sorted in ascending order.

Write a method to find an element in the most efficient way possible.

We’ll send a detailed solution tomorrow, so make sure you move our emails to primary, so you don’t miss them!

Gmail users—move us to your primary inbox

  • On your phone? Hit the 3 dots at the top right corner, click "Move to" then "Primary"

  • On desktop? Back out of this email then drag and drop this email into the "Primary" tab near the top left of your screen

Apple mail users—tap on our email address at the top of this email (next to "From:" on mobile) and click “Add to VIPs”

Previous Solution

As a refresher, here’s the last question

You are given an array filled with letters and numbers.

Find the longest subarray with an equal number of letters and numbers.

Return the longest subarray.

If there are multiple results, then return the subarray with the lowest starting index.

Solution

We can solve this question in a single pass of the input array.

As we iterate through our input array, we’ll count the amount of numbers and letters we’ve seen so far.

We’ll keep track of the difference between the two (amount of numbers - amount of letters) in a hash table. We’ll also keep track of the earliest index at which this difference occurs. The difference will be the key and the earliest index will be the value.

If we ever come across the same difference again (the current difference between numbers and letters is already in our hash table), then that means that between the earlier index and our current index, there are an equal amount of letters and numbers.

Therefore, we can find the length of the subarray between that earlier index and our current index. If this is the longest subarray with equal amounts that we’ve seen so far, then we’ll store it as our longest subarray.

Then we can continue iterating through the array.

Once we’ve finished iterating through the array, we can just return the longest subarray we found.

Want more practice with real FAANG software engineers?

Check out Interviewing.io!

You don’t have to pay anything until you get that job at FAANG!