☕ Crypto beats Goldman?

One of the largest Crypto companies in the world just filed to go public. We analyze their filing and talk about the most interesting parts. Plus, a Google Interview question!

Hey Guys,

Hope you’re all having a fantastic day!

Here’s your Industry News, Tech Snippets and Interview Problems!

As always, feel free to reply to this email with any questions, comments or insults.

I’m all ears!

Industry News

Coinbase announces IPO

Coinbase is one of the largest companies in the Cryptocurrency space, allowing users to convert their US Dollars to Bitcoin, Ethereum, Litecoin and a host of other digital currencies.

Coinbase runs the third largest cryptocurrency exchange in the world (by volume) after Binance and Huobi Global. They helped create the stablecoin USDC, a cryptocurrency (running on the Ethereum blockchain) that is pegged to the US Dollar.

The company was started by Brian Armstrong (a former Airbnb engineer) and Fred Ehrsam (a former Goldman Sachs trader). They were part of the Summer 2012 Y-Combinator incubator class and received a $5 million dollar seed investment from Fred Wilson of Union Square Ventures.

Now, the company is going to IPO at a valuation that is estimated to be more than $100 billion dollars. A valuation that large could make Coinbase bigger than Goldman Sachs, the investment bank that Fred Ehrsam used to work at.

Coinbase is quite unusual (compared to other unicorns) because the company is profitable. In 2020, they generated a net income of $322 million dollars. They had a net revenue of $1.14 billion dollars in 2020, up from $483 million the previous year.

A big part of that was due to the amazing year that Bitcoin had in 2020, where the cryptocurrency soared more than 200% and reached a new all-time high.

Union Square Ventures, the VC firm that led Coinbase’s series A financing round is also going to do incredibly well. They turned their $5 million dollar investment (along with pro-rata follow ons) into $8 billion dollars.

In their S-1 filing, Coinbase made sure to give a shout-out to Satoshi Nakamoto, the pseudonymous creator of Bitcoin. His Bitcoin address was listed in the copies to section of the prospectus.

If you want to learn more about Coinbase, Kings of Crypto is a fantastic read!

Tech Snippets

  • JSON is the backbone of modern web apps, forming the basis for how web apps transfer data. However, there are some security risks when transferring data through JSON. Here’s an awesome article that goes through the risks. The article goes through the following…

    • Inconsistent Duplicate Key Precedence

    • Key Collision: Character truncation and Comments

    • JSON Serialization Quirks

    • Float and Integer Representation

    • Permissive Parsing and Other Bugs

  • Interested in FPGA Development? Here’s an awesome tutorial!

Interview Question

You are given a non-negative integer c.

Write a function that determines whether there are two integers a and b such that

a^2 + b^2 = c

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 a sorted array nums

Write a function that removes any duplicates that appear more than twice in nums in-place.

You must do this using O(1) space, you cannot allocate extra space for another array.

Solution

We can solve this question using the Two Pointer Method.

We have a slow and fast pointer, where our slow pointer will always be less than the fast pointer.

Since we have to remove duplicates only if they appear more than twice, we start slow and fast at index 2.

We iterate through the sorted array nums and check if nums[slow - 2] == nums[fast].

If this is the case, then that means we have a group of 3 or more equal elements and we should rewrite the slow pointer with a future value (thus removing the element from nums). Therefore, we’ll keep the slow pointer at the current value and increment our fast pointer.

If it is not the case, then we can rewrite the value at the slow pointer with the value at the fast pointer. Then, we can increment both the slow and fast pointers.

Can you analyze the time complexity of our solution?

Reply back with your estimate!

We’ll tell you if you’re correct (or we’ll tell you the answer if you’re wrong).