That's just a function of their size. I guarantee you that Stripe and Airbnb's growth rates will drop to these types of growth rates if they hit the 100B valuation. The truth is when you are so large, the opportunities for growth become smaller and smaller. It's much easier to grow at high percentages when you are small. Buffet talks about this a lot with Berkshire; he has said he could grow Berkshire at a much higher rate if the company was smaller. Now he has to pass on amazing investment opportunities that are too small for him.
Just as one data point - I went through the onsite recently and I personally found that PDF to be unhelpful. While it does list everything you need to know, it also lists way too many things that you probably don't need to know. It's basically an exhaustive list of basically every resource and topic that could possibly show up in the algorithmic interview. In my view you just need to cover Cracking the Coding Interview and then do 50-100 Leetcode questions. If you have a strong grasp of intro algorithms that would work too, except for engineers like me who didn't major in CS and hence never took an algos course.
--- Here's the actual PDF contents -------
Algorithm Complexity:
○ Please review complex algorithms, including big O notation. For more information on
algorithms, visit the links below and your friendly local algorithms textbook.
■ Online Resources: Topcoder - Data Science Tutorials, The Stony Brook
Algorithm Repository
■ Book Recommendations: Review of Basic Algorithms: Introduction to the Design
and Analysis of Algorithms by Anany Levitin, Algorithms by S. Dasgupta, C.H.
Papadimitriou, and U.V. Vazirani, Algorithms For Interviews by Adnan Aziz and
Amit Prakash, Algorithms Course Materials by Jeff Erickson, Introduction to
Algorithms by Thomas H. Cormen, Charles E. Leiserson, Ronald L. Rivest and
Clifford Stein
● Sorting:
○ Know how to sort. Don't do bubble-sort.
○ You should know the details of at least one nlog(n) sorting algorithm, preferably
two (say, quicksort and merge sort). Merge sort can be highly useful in situations where
quicksort is impractical, so take a look at it.
● Hash Tables:
○ Be prepared to explain how they work, and be able to implement one using only arrays in
your favorite language, in about the space of one interview.
● Trees and Graphs:
○ Study up on trees: tree construction, traversal, and manipulation algorithms. You should
be familiar with binary trees, n-ary trees, and trie-trees at the very least. You should be
familiar with at least one flavor of balanced binary tree, whether it's a red/black tree, a
splay tree or an AVL tree, and you should know how it's implemented.
○ More generally, there are three basic ways to represent a graph in memory (objects and
pointers, matrix, and adjacency list), and you should familiarize yourself with each
representation and its pros and cons.
○ Tree traversal algorithms: BFS and DFS, and know the difference between inorder,
postorder and preorder traversal (for trees). You should know their computational
complexity, their tradeoffs, and how to implement them in real code.
○ If you get a chance, study up on fancier algorithms, such as Dijkstra and A (for graphs).
● Other data structures:
○ You should study up on as many other data structures and algorithms as possible. You
should especially know about the most famous classes of NP-complete problems, such as traveling salesman and the knapsack problem, and be able to recognize them when an interviewer asks you them in disguise.
● Operating Systems, Systems Programming and Concurrency:
○ Know about processes, threads, and concurrency issues. Know about locks, mutexes,
semaphores and monitors, and how they work. Know about deadlock and livelock and
how to avoid them.
○ Know what resources a processes needs, a thread needs, how context switching works, and how it's initiated by the operating system and underlying hardware.
○ Know a little about scheduling. The world is rapidly moving towards multi-core, so know the fundamentals of "modern" concurrency constructs.
● Coding:
○ You should know at least one programming language really well, preferably C/C++, Java,
Python, Go, or Javascript. (Or C# since it's similar to Java.)
○ You will be expected to write code in your interviews and you will be expected to know a
fair amount of detail about your favorite programming language.
○ Book Recommendation: Programming Interviews Exposed; Secrets to landing your next job by John Monagan and Noah Suojanen (Wiley Computer Publishing)
● Recursion and Induction:
○ You should be able to solve a problem recursively, and know how to use and repurpose
common recursive algorithms to solve new problems.
○ Conversely, you should be able to take a given algorithm and prove inductively that it will
do what you claim it will do.
● Data Structure Analysis and Discrete Math:
○ Some interviewers ask basic discrete math questions. This is more prevalent at Google than at other companies because we are surrounded by counting problems, probability
problems, and other Discrete Math 101 situations.
○ Spend some time before the interview on the essentials of combinatorics and probability.
You should be familiar with n-choose-k problems and their ilk – the more the better.
● System Design:
○ You should be able to take a big problem, decompose it into its basic subproblems, and talk about the pros and cons of different approaches to solving those subproblems as
they relate to the original goal.
○ Google solves a lot of big problems; here are some explanations of how we solved a few
to get your wheels turning.
■ Online Resources: Research at Google: Distributed Systems and Parallel
Computing
■ Google File System
■ Google Bigtable
■ Google MapReduce
● Development Practices and Open-Ended Discussion:
○ Sample topics include validating designs, testing whiteboard code, preventing bugs, code
maintainability and readability, refactor/review sample code.
○ Sample topics: biggest challenges faced, best/worst designs seen, performance analysis
and optimization, testing and ideas for improving existing products.
Once you get into a FAANG company, do you actually use these algorithms? OOP/FP design, "clean code", the System design I would see as important, but in an actual dev job how much does the hard-core algorithm stuff come up?
Big O is always extremely relevant. - A lot of the typical algorithms in djikstra, merge sort etc. are not important to know by heart, but they represent important concepts to know to solve complex problems. Divide and Conquer and Greedy or topics that come up implicitly at least once a week, usually more often.
I've only interviewed twice at Google for engineering so take this with a grain of salt.
Here are some things I would depriotize:
● Sorting: ○ Know how to sort. Don't do bubble-sort. ○ You should know the details of at least one nlog(n) sorting algorithm, preferably two (say, quicksort and merge sort).
> I don't know anyone who has had to write a sort in an interview. Obviously you should know big O notation and also how they work, but practicing the implementation seems like a waste of time. In fact in my onsite, I used the .sort() method mentioned it was O(nlog(n)) and moved on to the rest of the problem. It was a minute part of the solution.
● Hash Tables: ○ Be prepared to explain how they work, and be able to implement one using only arrays in your favorite language, in about the space of one interview.
> Again, while you should know how to use Hash Tables, I really don't think they would ask you to implement one.
● Trees and Graphs: * You should be familiar with at least one flavor of balanced binary tree, whether it's a red/black tree, a splay tree or an AVL tree, and you should know how it's implemented.
> I actually still don't know how to build a balanced tree. It's never come up on any Big N interview I've had. The rest of this section is really important though, tree problems are extremely common in interviews.
○ If you get a chance, study up on fancier algorithms, such as Dijkstra and A (for graphs).
> I dont know Dijkstra and I don't think it comes up that often. I have no idea what A is.
● Other data structures: ○ You should study up on as many other data structures and algorithms as possible.
> I think if you know trees, tries, arrays, linked lists, and hash tables you will do fine. I only had one interview which had a different data structure (rope data structure) and the only reason he asked me the question was because I had never used it before. It was an intro question and if I said I knew it he wouldn't have given it to me. So I think if they give you another data structure, they are gonna assume you don't know it and will give you an intro question.
● Operating Systems, Systems Programming and Concurrency: ○ Know about processes, threads, and concurrency issues. Know about locks, mutexes, semaphores and monitors, and how they work. Know about deadlock and livelock and how to avoid them.
> I don't know anything in this area (besides real basics on processes, threads, and locks). Never had a question here. I wouldn't study unless you are interviewing at team where this is relevant.
○ Know what resources a processes needs, a thread needs, how context switching works, and how it's initiated by the operating system and underlying hardware. ○ Know a little about scheduling. The world is rapidly moving towards multi-core, so know the fundamentals of "modern" concurrency constructs.
> Again I don't know anything about OSes. I am not a CS major and never had a question in this area.do
● Data Structure Analysis and Discrete Math: ○ Some interviewers ask basic discrete math questions. This is more prevalent at Google than at other companies because we are surrounded by counting problems, probability problems, and other Discrete Math 101 situations. ○ Spend some time before the interview on the essentials of combinatorics and probability. You should be familiar with n-choose-k problems and their ilk – the more the better.
> Also don't think this is that important. You should know how n choose k works (because that is needed for measuring complexity), but I definitely wouldn't spend my time on discrete math.
Did you pass either of those 2 Google interviews? And/or get offers from other similar companies?
> I only had one interview which had a different data structure (rope data structure) and the only reason he asked me the question was because I had never used it before. It was an intro question and if I said I knew it he wouldn't have given it to me. So I think if they give you another data structure, they are gonna assume you don't know it and will give you an intro question.
Can you explain that a little more?
Specifically: “they are gonna assume you don't know it and will give you an intro question.”
I failed the first time and passed the 2nd. I'm interviewing now so waiting to see if I get other offers.
To explain, one of the interviewers walked in and asked "have you heard of the rope data structure?"
I said "no" because I hadn't and he was like "great because otherwise I would give you another question". He then asked me to build 2 key functions for the data structure. I didn't need to study it beforehand, and if I did he would have gave me another question.
I think if they give you an uncommon data structure the expectation is that you have prior knowledge of it. This question was the favorite part of my interview loop (we chatted a bit about how google uses rope data structures)
Was this part of the interview challenging? Seems to me like a surprise data structure coming up in an interview could be a bad thing (in terms of doing well).
Edit: What have your other interview experiences been like? Similar to Google, or would different/more preparation be required?
Also, what level are you at/interviewing for at these companies?
Also if you are going to say that humans are designed and ignore Darwin's theory of evolution, you are going to lose you credibility on your thoughts on science.
This is a bad example, because ignoring what we have been 'designed' to eat, fruit is certainly designed to be eaten, which is even better. Just think about it: you can pick it, and leave it lying around for weeks and it is still fine. There are almost zero fruit-borne illnesses. When it is spoiled, it is obvious by looking at it or smelling it. I mean, this is something that has evolved to be eaten by large mammals. I don't think this is substantially changed by modern farming.
I don't understand your argument at all - you are saying that foods that are designed to be eaten are inherently better?
Sugar is sugar. It doesn't matter if the sugar has been added through selective breeding or just added afterwards. The only reasons fruits are a little bit healthier than soda with the same sugar/micronutrient content is the fibers in the fruit that makes it harder to consume too much of it.
The original comment was arguing that modern fruit is not 'natural' due to farming practices. My argument is that this isn't the example to choose, because of all things, fruit is among the best things to eat.
There is plenty of evidence that fruit consumption is good for you[1], which will obviously not be reproduced by drinking the equivalent flavoured soda. "A little bit healthier"? This is a joke?
I am a person who would eat these (and am a meat eater). I care about reducing my carbon footprint, have concerns about our food supply, and also the treatment of animals to some degree. I still eat meat, but as these products improve (and they are improving very quickly), I will have them more and more often as a change from meat. My wife is also vegetarian so it also means we can share more food together.
There is definitely a use case for this, I've had impossible stuff with a lot of non vegetarians. In fact most vegetarians don't care about this product.
For actual healthcare outcomes, Kaiser will outrank most PPOs. Because Kaiser is an integrated health system, they are highly incentivized to actual improve outcomes. PPOs might feel better to you (because they let you have choice and freedom) but I strongly suspect that from a purely what's best for public health is systems like Kaiser. A patient's sense of satisfaction with their healthcare is rarely correlated to outcomes. For example, I worked with healthcare data and we were developing quality metrics and we found for a lot of providers had a negative correlation in metrics to their review scores. I.e there are tons of doctors with high reviews who actually perform quite badly in terms of outcomes. We strongly suspected these are doctors who have good communication and empathy skills but weak clinical skills. I remember looking at malpractice studies and seeing something similar. As a doctor, the probability of getting sued for malpractice is driven by your bedside manner and NOT your clinical outcomes. Essentially, we've found that a doctor with bad clinical expertise but great bedside manner will get sued more than an amazing clinician who has bad bedside manner.
It's a slipper slope if you think your anecdotal satisfaction with your medical provider is a metric of how well the system takes care of you. Unless you are looking at outcomes at a population level it's really hard to see what's going on.
I will say (as others have noted) that Kaiser's mental health support is terrible, but there outcomes outside of that are very strong (if not best in class). They were frequently studied in my partner's master of public health, because of their strong outcomes.
Also don't underestimate the power of primary care in the heaths system (patient's tend to skip primary care visits in PPOs). Many of the life threatening issues my partner sees were caught only due to a primary care visit which exactly why systems like Kaiser are effective.
This type of post is a pet peeve of mine because you use terms like “data” and “anecdotal” but it’s actually a poorly supported argument. This happens too often on HN. It’s certainly true that primary care visits improve health outcomes, but you offer no evidence that people get more primary care at Kaiser. Meanwhile the most significant rankings are not only patient opinions but rather systematic reviews of outcomes, expert analysis and objective metrics. Newsweek did one such ranking that put Kaiser behind 4 other hospitals.[1] US News puts UCSF ahead of Kaiser in many aspects and specialities.[2]
When you need a brain surgery or cancer treatment, you’re definitely going to “feel better” having “choice and freedom” to go to the best.
OP and myself were discussing Kaiser as a health care plan. The ranking you showed was about hospitals not health care plans; a health care plan and a hospital are two completely different things. I also never said Kaiser was the absolute best in every area (I even mentioned their mental heath is very weak), just that their model is solid.
> It’s certainly true that primary care visits improve health outcomes, but you offer no evidence that people get more primary care at Kaiser.
Again, I worked with claims data where we could analyze primary care utilization and kaiser was significantly higher than most PPOs in our systems (and high in general). We specifically built an email targeting patients who did not visit their primary care doctor in the last year and Kaiser was at the bottom of numbers because of the high usage. There is definitely a lot more research you can find studying Kaiser's integrated approach and how it related to primary care usage. Kaiser is pretty good good at preventative care, primary care usage, and some chronic care management.
> When you need a brain surgery or cancer treatment, you’re definitely going to “feel better” having “choice and freedom” to go to the best.
Again, I've outlined research showing outcomes and quality metrics showing Kaiser is pretty solid. Their primary care usage is higher than other health plans, and there are quality metrics and research showing they are pretty good at preventative, primary care, and chronic care management. There are definitely gaps, but from a population level outcomes, they perform at or better than many PPOs given their costs. If you take a step further and look at the economic ROI of their plans, they definitely outclass most PPO and HMOs.
It's not like they have that much secret sauce, the main advantages they have are the same ones a nationalized system has (being integrated aligns incentives better).
> If you take a step further and look at the economic ROI of their plans, they definitely outclass most PPO and HMOs.
You moved the goalpost from “healthcare outcomes for tech workers” to “economic ROI given their costs”. This is what I mean by poor reasoning.
Sure, Kaiser is a good bargain. Lowering costs means more people get care vs don’t get care. It is not the “gold standard” when premiums and deductibles are not an object, like a tech workers company sponsored plan.
> OP and myself were discussing Kaiser as a health care plan. The ranking you showed was about hospitals not health care plans;
This is a bizarre retort as Kaiser generally locks you into their hospitals. Clearly we’re arguing different things.
The beach isn't owned by Khosla and is not private so I don't understand this argument. The value of the strip of land should be assessed at the market value of having a land route to an already public beach that previously didn't have land access (the beach has always been public, the argument is whether Khosla needs to provide access to it). Given its a tiny beach with moderate attendance, I'd argue the NPV is way less than $30m.
A person has something worth X. The government wants to take a piece of that thing that reduces its value to Y. Therefore the government has to give the person (X-Y) dollars.
That seems like a perfectly reasonable way to value what the government is taking away via eminent domain.
So if he paid $32M for the land and is arguing the government is destroying $30M of value by making a public beach (by law), well, public then he's arguing the property after the fact is worth $2M.
So he should take $2M for it right? Or he'd have no object to the State giving him $32M and simply taking the whole thing, right?
I'd be somewhat OK with these inflated property values estimates with eminent domain if the owner was forced to take $X-$Y for the remainder from any buyer.
That's not even how eminent domain works. You get the market value for the asset seized, not the delta in the market value for the asset remaining post seizure.
To the degree that this is true, that seems awfully unfair to people forced to give their property to the government without their consent. The government can just make you poorer overnight? That sounds bad.
If it was reversed and the landowner was buying the road to join two large lots together, you could easily see the road costing a huge premium on the open market.
But I agree the state didn’t write the law that way because it would be too costly.
Yea except your math is wrong. You include the value of the beach in X which represents what Khosla owns even though he doesn't own the beach. Even Khosla wasn't arguing he owned the beach. So you magically inflated the X by a huge amount which makes the valuation off (even though this isn't even a real valuation).
Eminent domain would compensate Khosla on the market value of the road land value. It has nothing to do with the beach. The beach is owned by the public. No legal team on either side is arguing that. The legal case is about easements (i.e. access).
Why don't you share your comparable analysis or discount cash flow model to see what that road easement actually is worth since you seem believe pretty strongly in the valuation. I'm really curious to how you think a narrow strip of land that is for the easement is worth $30 million given recent land sales in similar areas.
I think his current argument is that he doesn't have to give access (maintain easement) because his property is part of an 1851 sale of Mexican property which has a treaty that supercedes Californian state law. Essentially a federal treaty supercedes state law through judicial review. So unfortunately the current interpretation based on the courts is that since his property is part of the 1851 sale which is governed by a federal treaty (which is always above the rules of state law), he doesn't have to provide easement at all.
I wonder if this means that any of the property owners involved in land as part of the 1851 sale can now block their existing easements for beach access.
> I think his current argument is that he doesn't have to give access (maintain easement) because his property is part of an 1851 sale of Mexican property which has a treaty that supercedes Californian state law.
That seems like a pretty radical interpretation. Wouldn't that totally undermine all state law, exempting him from stuff like building codes, state environmental laws, etc.?
Well take this with a grain of salt since this is from my high school government class, but it would only apply when the treaty conflicts with state law. So I assume in this case the treaty apparently gives him the right to not provide easements which is in direct conflict with the California state law. Since the treaty is federal law, it supercedes over state law where there is a conflict. I believe this is based on the Constitution: https://en.wikipedia.org/wiki/Supremacy_Clause
That doesn't mean Khosla is exempted from building codes, unless that 1851 treaty says something like "The US government shall be able to regulations the manner in which buildings can be constructed on this land."
Again this is just from what I've gathered from other posters. I'm curious what clause they took from the 1851 treaty that made it clear that he doesn't need to provide easements. Maybe there was a clause that the property could never be seized for public good which the Mexican government put in to prevent the government from evicting Mexicans who wanted to stay on their land post sale.
So does the federal treaty state specifically that land sold does not have to provide easement? If not, it seems like a weak argument. By that same logic, he could also put a casino on it and say that since the land was part of the federal treaty, he no longer has to abide by any state law at all while on the property.
I assume if the treaty says that he can open a casino then he can open a casino. Again, federal law supercedes state law. It's written into our constitution:
https://en.wikipedia.org/wiki/Supremacy_Clause
I have no idea what clause they took from that treaty to show he has the right not to provide easements.
I think his current argument is that he doesn't have to give access (maintain easement) because his property is part of an 1851 sale of Mexican property which has a treaty that supercedes Californian state law. Essentially a federal treaty supercedes state law through judicial review.