- Might be useful to hide and abstract CSS implementation details by encapsulating them within a component
- Ordered primary keys (increasing over time) can be a good substitute for time itself in calculations (as an optimization)
- Code reviews should be about sharing your approach to a problem and to ignite a discussion
- Should involve both sharing and learning, on the committer and reviewer
- "If the one thing standing between a commit and a production deploy is human discipline, you have broken software"
- "When giving criticism, nothing is the committer’s fault. If there is a problem in a commit, it’s everyone’s problem in our codebase, and it’s everyone’s responsibility to rectify."
- "When giving encouragement, it is the committer who receives direct praise. If you rose above and beyond the call, then you deserve the kudos."
- "[Amazon] shouldn’t try to guess what kind of services they might want; such guesses would be based on patterns of the past. Instead, it should be creating primitives — the building blocks of computing — and then getting out of the way."
- Companies tend to ship their org chart (e.g. AWS is a bunch of primitives, the iPhone is a unitary design)
- "The ideal product... achieves simplicit and a great user experience through tremendous effort in design and engineering that, ideally, is never seen by the end user"
- "Aggregation Theory: as distribution (or switching) costs decrease, the importance of the user experience increases"
- By open sourcing its machine learning tools, Google believes its machine learning infrastructure is a sustainable source of competitive advantage
- Most ML/AI techniques being used right now are better suited for large scale problems, but there's not many of these large scale problems that can benefit
- If the hype was real, we would be seeing much larger displacement from ML/AI now
- Emphasize the future, not the past; you can't change the past
- You can't read other's minds
- There are only consequences; in life we have known input but an unknown process (so no predictable results)
- "It's about adjusting the controls to maximize the possibility of desirable consequences."
- Don't expect others to do something you want them to do if they don't want to do it
- Don't be bothered by other's expectations
- "Being different isn't the problem. Forgetting that we are is."
- Nobody is always right; don't be foolish and don't always believe people
- Don't blame external factors, and don't give up
- Working at McDonalds in a fast-paced demand environment is like scaling
- In order to be able to scale (and write lots of software), you have to be set up to do so: tools, people, processes, etc.
- If you're not ready to serve by the time a customer comes, you're probably too late
- Have to react quickly to deliver; nobody has the patience for you
- Crunch time can come anytime (for software businesses), it's important to be set up to handle it
- One person: one set of burgers in 5 min. Two people: 3 sets of burgers in 5 min. Thre people: 6 sets.
- 2x people = 3x productivity, 3x people = 6x productivity
- Anything more, might get too crowded
- Managers should be able to do, and doers should be able to manager
- The difference between mediocre and good is small. The difference between good and great is large.
- Get good working habits; you'll keep them and benefit from them!
- "Good workers refused to work in dirty work areas. They refused to release deficient product. They refused to put off what could be done later because they knew it would grow to twice as much work later and screw everything else up in the interim. And most of all, they hated working with those who didn't have the same good habits."
- The real goal for software companies should be converting capital into software that works (not a better mousetrap)
- Low cost software doesn't make sense, because duplicating software is free; the cost of programmers spreads out over all the copies of software sold
- Design adds value faster than it adds cost
- You can't substitute more people for a productive person
- Brook's Law: "adding manpower to a late software project makes it later"; communication overhead has costs
- Average producers will never produce the best
- "If you focus on trying to grow before you make a product people love, you are unlikely to succeed."
- Retaining users is the hard part, aim for organic growth
- "It may not be surprising, then, that the more money a founder has in the bank, the stronger their position when fundraising. In fact, we’ve seen a few YC companies raise financing rounds without having spent any of the money from a prior round."
- Natural boundary of constraints (of OSS) with time and cost means you're probably not going to embellish it
- "Work will expand to fill the amount raised" ;)
- Motivations change if there are external, expected rewards (usually less intrinsic (good) motivation)