• Building a Note-Taking Habit

    Make it obvious: Journaling is the first thing I do in the morning after I take the dogs out. That provides the cue that it’s time to add to my notes as I reflect on the previous day. I can also look at the list of notes I took which sparks the desire to record them.

    Make it attractive: Very satisfying to do with a mechanical keyboard, getting to type at full speed. Habit stacking with journaling.

    Make it easy:

    • Separate the inputs from the notes, confidence they are periodically reviewed
    • Don’t need to fill in notes right away (e.g. drafts)
    • Customize the setup so that it works nicely in the environment I am most productive in (Emacs)

    Make it satisfying:

    • After adding notes, pushing them to github and seeing them live on the beautiful, minimalist website makes me feel accomplished (I’ve added accumulated knowledge) and I’ve watched my accumulated knowledge visibly grow.

    This follows how Atomic Habits recommends structuring a new habit.


  • Roadmaps Drive Valuable Discussions

    Roadmaps turn strategy into discrete units that will be worked on to accomplish a set of goals. By drafting a roadmap, you are turning something abstract into something more real. Adding detail makes it more real and drives healthy discussion about whether it’s possible to do it all (i.e. resources, staffing, timeline) and whether it will actually accomplish your goals (i.e. back of the napkin estimates of each ship should roughly add up).

    See also:


  • Podcasts Are Programmable Radio

    Users choose which podcasts they want to listen to and manually curate them into a listening experience on their own terms. They can pause, stop, remind, skip, etc. which is a way of scripting over content to suit their needs.

    Compare this to traditional radio which is engineered to reach the maximum general audience and provide listeners to advertisers. All content is fixed and the songs play on repeat.


  • Tragedy of the Commons

    Shared resources used by individuals with no ownership end up depleting it. Common examples include fishing (over-fishing) and forests (deforestation).

    One way that has been shown to combat this phenomenon is to create collaboration and shared risk/reward. For example, a fishery that grants shares to a lake where fishermen now benefit from the improving the value of the resource and start collaborating on rules and policies to conserve it.

    See also:

    • Principal-agent problem is a similar issue that can result in the depletion of a shared resource. You could view the individuals as the agents and the ecosystem of animals and plants as the principals whose interests diverge.

  • Adjacent User Theory

    Funnel metrics tend to decline with each successive cohorts as a company grows and saturates segments that have strong product market fit. On closer inspection of retention, this reveals adjacent users (not the power users or what you think of as the primary user persona) who struggle to adopt or continue using your product.

    Adjacent users have different needs and present opportunities to unlock new audiences. For example, Instagram noticed many international users logging out or using fake email addresses because they prefer text messages, use pre-paid internet cards, and were worried about using bandwidth. They made it easier to log back in (rather than harder to log out) which helped them better retain international users.

    To acquire more adjacent users, one should also consider the sequencing of which user so that it’s additive and makes it easier to get other adjacent users.

    Read the blog post


  • Workflows Are More Useful Than Solutions

    In our day-to-day lives we use a collection of products and homegrown tools to do our work. One approach to solving a problem is to attempt to be a complete solution that fully solves the problem, but there is a tradeoff–the more complete the solution the less useful it becomes in more situations.

    In order to solve something completely, the solution needs to assume more about your problem or become really complicated in trying to solve every corner case mucking up the experience (see user experience entropy). A workflow approach is more useful to a wider range of variations by assuming you are applying one or more pieces of functionality to solve a problem. Done well, components are useful independently and can be recombined and applied to more problems. However, finding the right level of abstraction that meets that criteria is difficult (especially compared to solving a single complete problem).


  • Conway's Law

    A company tends to design systems that mirror their communication structure e.g. ‘shipping the org’. You can see this in large scale software where the UX feels clunky, compartmentalized when it ought to work together as a unit.


  • 85% Rule

    When doing an activity that requires peak performance, strive for 85% of what you believe is your best. This results in doing better than if you were to try to hit your maximum. You relax more, your form improves, and you are more consistent throughout the performance.

    This seems applicable to more than athleticsβ€”allowing yourself to underachieve or fail in advance removes some of the ill effects of overthinking or being too ‘in your own head’ which is vital for creative work.

    See also:


  • Sword of Damocles

    A parable of where Damocles who, after exulting how nice it must be to be king was offered to switch places with the king Dionysius for a day. However, due to the many enemies made by Dionysius, a sword hung over the thrown held by a single horse hair. Despite the luxury and power of the throne, the fear and anxiety overwhelmed Damocles and he begged to switch back. The story conveys the ever present peril faced by those in power.

    Recently the Chinese government pushed to pass a new Security Law in Hong Kong which ostensibly outlaws saying or even thinking against Chinese rule. A Chinese official called the new Security Law a ‘Sword of Damocles’ hanging over the head of Hong Kong–a persistent reminder of the perils of their position.


  • Flesch Reading Ease Test

    Determines the grade level required to read a text based on a score of average sentence length and average syllables per word. The Flesch Score is converted using a table into a grade level. To make writing most accessible, the average reading level to shoot for is that of an 8th grader.


  • Rust

    A statically typed programming language which enforces writing code that is free from certain memory errors (use after free, dangling pointers). It’s focus on performance and safety makes it well suited for a variety low-resource domains and mission critical systems.

    Rust introduces a ‘borrow checker’ which, simply stated, enforces exactly one owner for any piece of data. Data can be borrowed from the owner immutably multiple times or to only one other owner as a mutable reference (preventing use after free bugs).

    In the ‘Three tribes of programming’, rust strikes a balance between hackers (performance and correctness) and poets (a programmer’s programming language)–it was designed by the poets for the hackers.