Expert gamedev tactic

Getting started with a new team

Onboarding @ Zapier

Love is for life, Foxes in love

The more experience I get building software, the more I believe that there is nothing that slows a project down more than not having a quick way to confirm if everything is still working or not Simon Willison @simon@simonwillison.net

When you're with someone you love, stay a little bit longer. Have coffee, and have a piece of cake.

Source for above

Most decisions should probably be made with somewhere around 70% of the information you wish you had. If you wait for 90%, in most cases, you’re probably being slow. Plus, either way, you need to be good at quickly recognizing and correcting bad decisions. If you’re good at course correcting, being wrong may be less costly than you think, whereas being slow is going to be expensive for sure. - Jeff Bezos, 2016 Letter to Shareholders

Mr Rogers on helpers others win and slowing down to do it

Writing structure

Farnam Street

charity majors on the cost of new tools

Don't curse your dead ends and failures. They're the key element of the work you are doing. We find our way by getting lost. Anything other than that is called reading a map.

As you gaze longingly at those bright, shiny elastic microservice architectures at scale running the core business of Facebook, Amazon, Netflix, and Twitter, keep in mind that the requirements that shaped their architecture are not your requirements

Honeycomb has 7 services: ingress (shepherd), ingest (kafka), indexing (retriever), frontend (poodle), sampling (refinery), alerting (basset) and previewing. We don't proliferate microservices just because we can; splitting or merging is a thoughtful choice.

Starting a new project with your team? Nice! Good things to talk about are: What problem are we solving? Who are the stakeholders? What are the goals and especially non-goals? What's the minimum viable feature set? How do we measure success?

My job as principal eng is to ensure we are building the right things, that solve the right market needs. And if I don't do a good job over a multi-year timeframe, then my shares won't be worth anything, and I will come out financially the same as a senior or staff engineer.

The cost of a feature. Sorry this picture is very information dense


Redundant and concurrently maintainable: A service is running with enough instances (infra, and app) such that we can perform maintenance on a node, then have another one fail, and have the service still be able to run (3+)

James Hamilton

We replaced our monolith with micro services so that every outage could be more like a murder mystery


Eventually …

  • Execution beats luck
  • Consistency beats intensity
  • Curiosity beats smart
  • Kind beats clever
  • Together beats alone

The Knowledge Project

One of the best bits of advice i give to leaders, technical otherwise, is to be clear: use short, direct sentences; discuss one topic at a time; ask a question that ends in a question mark, let someone respond, and listen to their answer. sounds dumb, but you'd be surprised.

The most important advice I've ever read about reviewing code comes from Cindy Sridharan. The best comments were about concurrency bugs, software layering, and how to write better tests. The worst talked about making functions smaller and clean code.