☕ A $200 million dollar seed round....?
A hard Facebook Interview Question. Roam Research raises $9 million at a $200 million dollar valuation. Facebook goes back to it's roots. Opendoor looks to IPO through a SPAC.
Hello fellow nerds!
Hope everyone’s having a fantastic day. Thanks for tuning in for today’s edition of the Daily Interview Problem!
Interview Question
You are given two sorted arrays and a positive integer k
.
Write a function that computes the k-th smallest element of an array that consists of the elements of the initial two arrays arranged in sorted order. Remember, you’re only given the two initial sorted arrays.
There may be duplicate elements within and across the input arrays.
Can you do better than the obvious linear-time solution?
We’ll send out the solution (with working code & test-cases) in our next email, 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 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”
Industry News
Roam Research raises $9 million dollars at $200 million - If you’ve never used Roam Research before, you should definitely try it out. It’s an awesome new note-taking app that lets you write “networked” notes, where you can create links between ideas. It’s hard to explain, but once you use it, it’ll blow your mind. But, still…. a $200 million dollar valuation for a seed round?!? That’s 25 times higher than the median valuation for seed rounds.
In completely unrelated news, I’ve realized my calling in life is to start a note-taking app. I’m raising a pre-seed round at a $50 million dollar valuation. If you’re interested in investing, please reply to this email.
Opendoor looking to go public through a SPAC - Opendoor is one of the hottest technology startups in the real estate market. They act as a broker/dealer and they allow you to sell your home extremely quickly compared to the traditional process.
The company is salivating at the sky high valuations in the public markets and is probably looking to go public….fast. This way, employees can get liquidity (making hiring and retention easier) and the company can raise capital.
A quick way to do that is through a SPAC - “special purpose acquisition vehicle” and Social Capital’s SPAC seems to be the way to go. Opendoor is now in advanced talks with them to go public.
Facebook goes back to its roots - Facebook is launching a new product called Campus. It’s meant to be a place where college students can interact only with peers at their schools. They can access a campus only news Feed and join groups, events and group chat rooms that pertain to campus life. In order to access Campus, students have to provide their .edu email address and their graduation year. Once they’re in, they can create a new profile specifically for their Campus section. These are some pretty crazy ideas, I wonder where they got the inspiration from?
Previous Solution
As a refresher, here’s the previous question
Let’s say you have a photo sharing app that is used by every person on Earth. How would you estimate the hardware cost of the servers necessary to run the app?
Solution
This is an example of a Fermi Estimation problem. When making estimates, your goal is to be within an order of magnitude of the actual number. All your estimates should be powers of 10 (it makes the math much easier) and the idea is that you'll overestimate some variables, underestimate others and on the whole… your guess will be reasonably close.
So, let’s first try and break down the costs. What do we have to pay for here?
server CPU/RAM resources
storage
bandwidth
This all depend on the number and size of the images that are uploaded each day.
Let’s try and estimate all these variables. We’ll assume a distributed architecture where images are spread across servers (sharding).
Let’s say we have
10^10 users
10 images uploaded per day per user (average)
The average image is viewed 100 times
The average image is 10^6 bytes
One server can handle 10^4 HTTP requests per second
Given these estimates, the number of images we have to serve every day is
Number of images = (# of users * avg # of images uploaded per day * # of image views for avg image)
Using our estimates, the number of images we have to serve per day is
10^10 * 10 * 100 = 10^13
In order to find the number of servers we’ll need, we can divide our estimate for # of images by the # of HTTP requests one server can handle per day.
We already estimated that a server can handle 10^4 HTTP requests per second, so we can multiply that by 10^5 (approximate # of seconds per day) to get 10^9 HTTP requests per day per server.
Now, we can divide the total number of images per day by the # of HTTP requests ONE server can handle per day to get the number of servers that we need
10^13 / 10^9 = 10^4
We can estimate that one server costs around $10^4 USD, which will put our total server cost at around $100 million dollars.
In terms of storage, let’s estimate storage costs at $0.01 per GB ( a rough estimate based off AWS S3 pricing).
We estimated that we have 10^10 users, who upload 10 images a day with each image being 10^6 bytes.
That means we have approximately $100,000 a day in additional storage costs.
If you have any feedback, feel free to reply to this email with your thoughts! I always love to hear from y’all!