mulholio
Joined 8 years ago
Joined 8 years ago
Qualitatively, I experience this in a few ways: * Codebase quality improves over time, even as codebase and team size rapidly increase * Everything is easy to find. Sub-packages are well-organised. Files are easy to search for * Scaling is now essentially solved and engineers can put 90% of their time into feature-focused work instead of load concerns
I think there are a few reasons for this:
* We have standard patterns for our common use cases * Our hiring bar is high and everyone is expected to improve code quality over time * Critical engineering decisions have been consistently well-made. For example, we are very happy to have chosen our current DB architecture, avoided GraphQL and used Rust for some performance-critical areas * A TypeScript monorepo means code quality spreads across web/mobile/backend * Doing good migrations has become a core competency. Old systems get migrated out and replaced by better, newer ones * GCP makes infra easy * All the standard best practices: code review, appropriate unit testing, feature flagging, ...
Of course, there are still some holes. We have one or two dark forest features that will eventually need refactoring/rebuilding; testing needs a little more work. But overall, I'm confident these things will get fixed and the trajectory is very good.
The general idea is this.
1. Take "Literature Notes" in your own words as you consume content. These are little summaries of ideas in the text that are usually 1-3 lines. For paper books, I do this in a little Muji notebook. For digital resources, these go straight in Roam. 2. When you have finished the resource, copy your notes to one page and summarise them in "Permanent Notes". 3. Keep your Permanent Notes in one Permanent Note page and link everything together.
The best guide I found for getting this kind of system set up was https://www.nateliason.com/blog/smart-notes. The original "How to Take Smart Notes" book is also good, but much less concrete.
Really, I found step 1 to be the most valuable. I was previously processing highlights from articles and books and that weirdly took more time. Writing little notes as you go along saves only what is relevant and it's much more direct for your use cases.
As a word of warning though, I really haven't gotten this stuff to work very well for programming (or disciplines where you need to exercise knowledge rather than archive it in a system). I either find I need to memorise the stuff more directly with Anki, or having to practice skills in a real world context.
I agree cookies can be a bit awkward with Next but I've always found a way around.
Not implementing pagination at the outset can be problematic, however. If you later want to paginate data (e.g. if the size of your data grows) then it’s going to be a breaking change to implement that later. Big page sizes but with pagination can be a reasonable balance.