• All Problems in Computer Science Can Be Solved by Another Layer of Indirection

    This is a quote attributed to David Wheeler, an early computer scientist who also invented subroutines among other things. Indirection refers to operating on a higher level of abstraction by implementing indirection such as dynamic dispatch or creating object hierarchies in object oriented programming. However, too many layers of indirection can also cause duplication of lower level code so this popular adage is sometimes suffixed with “except the problem of too many layers off indirection”.


  • Choose Boring Technology

    A counter response to the growing sprawl of technologies that argues boring technology (tried and true, more mature) is far more effective than the latest shiny tool that gets popular on HackerNews. Using the right tool for the job is often used to justify some new thing, but quickly dissolves when teams write down exactly the issues with the current stack that are not meeting their needs.

    Read the blog post


  • ASO

    An administrative services organization (ASO) is an outsourcing provider for HR related administrative work. This is similar to a PEO (professional employer organization), but without co-employment. It is significantly less expensive than a PEO because the ASO does not carry employment-related liability.


  • Italian Futurists Tried to Ban Pasta

    In 1930, Italian Futurists led by Filippo Tommaso Marinetti declared that pasta should be replaced with futurists foods and in the meantime, rice. He co-wrote ‘Manifesto of Futurist Cooking’ which stated that pasta was the cause of Italy’s problems and holding the country back from being a technological powerhouse. Benito Mussolini supported the futurist ideas and, if not for Mussolini’s need to court an ally in Hitler during WWII (who hated futurism causing Mussolini to distance himself from Marinetti), they might have succeeded in banning pasta.

    Read the article


  • Topgrading Reduces Mis-Hire Rate

    In a study of companies that implemented a topgrading interview methodology, the mis-hire rate fell from 69.3% to 10.5%.

    Topgrading is an interview process that includes interviewing for core skills, scorecards, job history review, and reference checks to deter dishonesty.

    The topgrading interview walks through their work history and asks about the candidates successes, mistakes, key decisions, key relationship, their manager’s strengths and weaker points, how their manager would rate them, and why they left the job. Candidates that are willing to discuss their full work history provide much more information to the hiring manager and dishonest candidates are likely to drop out.

    Read the paper.

    See also:


  • Schoening's Axe

    On the ascent to K2 in 1953, Pete Schoening saved the lives of five members of the expedition by stopping the fall using his ice axe to wedge against a bolder along the mountain. The story is sometimes referred to as ‘The Belay’.


  • A Weak Man Argument Recenters a Category to Defeat It

    A ‘weak man’ argument presents a belief that only a small number of people have in order to defeat it. This is similar to a ‘straw man’, but a straw man presents a belief that no one has in order to defeat it. A ‘weak man’ is a more believable logical fallacy.

    The profound effect it has is to re-center the category one is arguing against. For example, when arguing against religion, one might cite the Westboro Baptist Church as an example that proves religion is bad. While the one example may be true, it is an over-simplification that re-centers the category on the weak man argument.

    Re-centering can grow into a super weapon if it becomes accepted by everyone over time. Even acknowledging the re-centering in order to argue against it, legitimizes it and serves the weak man purpose. This can cause in-groups en masse to conflict against another group even if both groups agree the weak man argument is true (e.g. the Westboro Baptist Church is bad) because re-centering can profoundly change society.

    Read the essay.

    See also:

    • Weak man are persuasive similar to how projections onto different dimensions aids in understanding. The reality is things are complicated, so simplifying categories for people can be extremely effective.
    • When groups get involved to defend against weak man arguments (even if they are true) is an example of in-group favoritism and dynamics.
    • Related to belief congruence theory, holding one of these weak man arguments might be an important part of signaling you are part of the in-group and therefore gain better treatment.

  • Ads Work via Cultural Imprinting

    Ads don’t work by creating a Pavlovian response through association (emotional inception), they work through changing the cultural landscape around us (cultural imprinting). Ads create the impression that everyone else has made the association between a product and a context. Therefore, we make rational decisions by fitting into how other people may perceive what we buy. This largely explains why common consumer goods (highly visible purchases by others) are more effectively advertised at large scale (like the Super Bowl watched by 100MM people).

    This only works for products that other people can see broadly. For example, bed sheets can not be advertised in this way because other people don’t have access to seeing your bed sheets so there is no shared cultural context on which to sway your decisions.

    Read the essay.

    See also:


  • Libraries Provide, Applications Consume

    In software development, a simple framework to keep in mind that clarifies how to write certain code is that libraries provide and applications consume. Libraries should useful and reusable in most contexts, therefore it should play nicely with other code and be more or less agnostic. Applications on the other hand are intended for end users and make different trade offsβ€”the code is written for a user not for other code or contexts.

    A simple example to highlight the difference is error handling. A library should encapsulate and provide all errors that can be thrown by code in the library so that it’s easily discoverable and can be handled by downstream callers. Applications on the other hand need to catch errors so they can provide feedback to users or log them appropriatelyβ€”they consume errors produced by the code in their application.

    See also:

    • This is easily apparent in Rust error handling libraries: thiserror for libraries and anyhow for applications

  • Doughnut Economic Model

    A visualization of sustainability represented by concentric rings (hence the doughnut). At the center are twelve factors necessary to support life that array outward. The first ring closest to the center is the minimum required for society to function, but as it extends outward it reaches the ‘ecological ceiling’ such as climate change, pollution, etc.

    The purpose of the model is to use it as a framework for making economic decisions. For example, an economic policy could encourage more oil drilling, but that would cause an overshoot of the energy needs of society causing harmful effects (e.g. greenhouse gases, pollution, and land conversion). Using this framework, one could better make decisions that are grounded in sustainability.

    See the visualization

    See also: