👋 Hi there! I make things with software, sometimes leading teams. I get up in the morning to help humans be their best, both individually and collectively. I think a lot about technologies for thinking & understanding, collaboration, and cooperation.

Recently, I've worked on human-quality machine translation (Lexy), social discovery for local businesses (Posse), and real-time team collaboration (Google Wave).

January 2018: I've joined Protocol Labs to build networks for persistence and discovery.


Some things that I especially enjoy learning and thinking about include:

  • tools for thinking and the future of programming

  • how people discover and share knowledge, learn together, and forget

  • how humans work, behavioural economics, psychology

  • information theory, cryptography, privacy in society

  • group coordination and cooperation, institutions & their failure modes

  • the design of social systems and incentives

  • architecture and the design of environments for living and working

  • leadership and management, especially of creative and engineering teams

  • Bayesian logic and reasoning

  • the quantum nature of our universe

  • machine intelligence and what it will mean for society.

Stuff I've done

A brief history:

Alex's work history

Talks etc

I enjoy and am terrified by speaking in public—it's hard to beat as a way to feel alive. I've collected videos of some presentations, both technical and not, in this playlist.

Check out my Ignite talks about cryptic crosswords (2012), placebo effects (2011), and the benefits of deferring decisions (2010). Ignite talks are a rigid format for five-minute presentations where the slides auto-advance every 15 seconds.

Strong ideas

I hold some opinions that are not widely understood or agreed with. I welcome contrary evidence!

  • Code is a poor interface for human-computer interaction. In many domains, a more direct representation of the problem and solution space would be far more effective (e.g. UI programming). The nature of programming is a huge barrier to learning about computing, and orthogonal to important concepts like recursion and abstraction.

  • Institutions tend to corruption as size increases. Increasing size makes coordination harder, and increases the opportunity for and returns to corruption. Checks on corruption (market competition, transparency, courts, voters) can limit catastrophic failures, but not avoid the tax. In most cases, many small institutions produce better end outcomes than one large one (despite economies of scale). E.g. Municipal governments vs state and federal. Many small companies vs few large ones.

  • Mastery is excellence at correcting mistakes. A master works fluidly, confident that small errors made now may be fixed downstream. A novice must halt to plan ahead in detail, afraid that mistakes may be unfixable. The path between the two involves learning how to correct mistakes (which requires making them), and learning how to make (mostly) correctable mistakes. Learning compounds rapidly. This applies very broadly: master crafters, master programmers, master artists, master organisers, master decision-makers.

  • Climate breakdown is a really huge threat to human flourishing. Radical environmental changes are likely to cause famine, mass displacement, and war. Our collective failure to address this effectively is primarily a problem of coordination and incentive alignment, especially of governments and representatives. Coordination failure is only likely to get worse as destructive changes actually occur. We'll be even more screwed by coordination failure the longer we wait.