Adam Keys

…is writing software, building teams, playing pub quizzes, lifting weights, watching TV, reading books, playing Destiny, going to Disneyland, going to Walt Disney World, having dogs and cats, overthinking it, writing it down, enjoying cars but wishing for a future without them, and increasingly old.


Stick around, read some stuff, get in touch, go for a walk outside, make something cool. I’m not the boss of you.

Recently in short form

  • The desirable qualities of good tests
    I often say that learning test-driven development is comparable to learning a whole other programming language. The practice of TDD is a mirror world of depth and trade-offs. Kent Beck underscores that depth in listing all [the desirable qualities of good tests], some of which are at tension with each other. Tests aren’t the easiest thing to get right, but there’s no better way to improve your design skills than to wrestle with the feedback loop of writing tests for the code you’re currently working on.
  • Untitled
    ‪I just wrote ‘Automotive form, Eddie Murphy, DC, the Goodfellas/My Blue Heaven connection’.…‬
  • The full-text search future we were promised
    I’ve been reorganizing some notes and considering moving specific topics/tags out of Bear. Turns out I can search across Bear, OmniOutliner, Ulysses, and random text files on my Mac w/ Spotlight pretty well now. Just type in a few words I vaguely recall and boom I’m there. That’s a promising development, the future we were promised!
  • Untitled
    A great Twitter thread on the importance of training managers. It boggles my mind we just throw so many people in the leadership pool and hope for the best. Every manager had a manager at some point! Why did we only start writing it down in the past few years? 🤷‍♂️🤦‍♂️
  • Untitled
    Current obsession: the Porsche 962 racecar. A spacecar GT/LeMans design. Bubble-esque cockpit, ground-effect body. It won some races. A great shape with the body panels on or off.
  • Personal choices outperform technology choices
    This dinger at the end of Mattt’s WWDC wrap-up is everything: Taking care of yourself — sleeping enough, eating right, exercising regularly — will do more to improve your productivity than any language or framework out there. Your ability to communicate and collaborate with others will always be a better predictor of success than your choice of technology stack. Your relationships with others are the most significant factors of success and happiness in life.
  • Untitled
    Data, it turns out, is far more valuable than code. Google and Facebook are unprecedented in economic history because of the data they’ve amassed; their applications, languages, and vast infrastructure merely enable the data. When the db is the interface – Jessitron: “There are two huge sources of inertia in software: data, and interfaces.” Therefore, it makes sense, as Jessica points out, that 1) databases are the interface that matter most in your system and 2) a few patterns of databases and interactions thereof can make the difference between an evolvable system and one that grows from unwieldy to untenable.
  • Untitled
    Do Something Syndrome: When Movement Trumps Results: I was to learn later in life that we tend to meet any new situation by reorganizing, and what a wonderful method it can be for creating the illusion of progress while producing confusion, inefficiency, and demoralization.
  • Untitled
    TIL that codemod is a (Python, target language agnostic) thing for doing large-scale find/replace refactorings in code bases, react-codemod is a tool for doing the same specifically for React APIs and idioms, based on jscodeshift for doing large-scale refactorings specifically on JS codebases. All come from Facebook. This is not at all confusing.
  • Untitled
    DeRay McKesson from January 1, 2018: "I’ve found that the people who “play all sides” eventually get played in the end. The world does not need you to pretend to be a neutral party on everything. Stand for the things & people you believe in." Wise words that are going to apply for a long while as we work through our weird, often dismal world.
  • Untitled
    Jessica Kerr - the future of software: complexity: “Complexity: Fight it, or fight through it, or embrace it? Yes.” On leverage, the intellectually rewarding kind of software complexity, and tackling accidental software complexity.
  • Untitled
    Craig Mod, on returning to the internet after forty days without: Strong net connection burbling up above, smartphone in hand, put the right apps on the thing and we are all Odysseuses. Except we didn’t strap ourselves to the mast of our ship, we walked straight up to those beautiful singing bird-women and handcuffed ourselves to Thelxinoe’s silken leg.
  • Thea Flowers - From API keys to tamper-proof encryption
    I didn’t expect Thea Flowers’ Building a stateless API proxy to end up explaining public-key cryptography and motivating JSON Web Tokens (JWT) from first principles. But it did! Great read.
  • I'm the bug
    Write about how computer programs are fun to solve and everyone can solve programming problems Run into a computer program that involves multiple black boxes in multiple computer programs you can’t look at the source code for, find good docs, or ask a human about Sometimes you’re the bug, sometimes you’re the windshield
  • Untitled
    zDog is 3-D rendering and animation with ~2k lines of JavaScript and only rectangles/spheres. I’m extremely impressed. This is the kind of playful but compelling technology I wish was more prevalent in the world.
  • If time is money, investing time in your tests can save money
    Sam Saffron - Tests that sometimes fail. Fantastic advice on maintaining a test suite over time. A test suite is either an albatross or an asset, depending on the quality of effort your team invests. Via Ben Bailey.
  • “I don’t know everything, but I can learn anything.”
    Rachel McQuater, On Becoming a Wizard: Strategies for Keeping Up as a New Developer: The difference was that wizard developers perceived problems as artifacts of error by rational humans in otherwise rational systems, whereas I perceived them as mysteries beyond my control.
  • The damn dumbest smart kid I know
    Partial explanation for smart folks, like Paul Graham or Mark Zuckerberg, making consistently bad predictions - The Peculiar Blindness of Experts: In Tetlock’s 20-year study, both the broad foxes and the narrow hedgehogs were quick to let a successful prediction reinforce their beliefs. But when an outcome took them by surprise, foxes were much more likely to adjust their ideas. Hedgehogs barely budged. Some made authoritative predictions that turned out to be wildly wrong—then updated their theories in the wrong direction. They became even more convinced of the original beliefs that had led them astray. The best forecasters, by contrast, view their own ideas as hypotheses in need of testing. If they make a bet and lose, they embrace the logic of a loss just as they would the reinforcement of a win. This is called, in a word, learning.
  • Chernobyl on HBO
    We’re three episodes into the Chernobyl miniseries. Great acting, sets, and costumes. I had no idea how much worse the historical situation could have gone. Recommend.
  • Untitled
    Brent Simmons on Playdate - “the thing that seems very difficult, maybe even impossible, that may fail, but is the best expression of our talent and love”
  • Web assembly + browser editor + CDN edge = wow
    I’m still impressed that the web platform has progressed to the point we can build web apps entirely in the browser with Glitch, Code Sandbox, and friends. That we are now starting to build web apps to run (partially) on edge CDNs (Cloudflare) and edit those kinds of web apps in a browser (Fastly Terrarium) is kind of blowing my mind. (Via Simon Willison)
  • Untitled
    Possibly the biggest upsight I’ve had on software estimation in a while - the blowup factor:…
  • Untitled
    Typo’d GraphQL as “GraphSQL” and was like “that’s a little on the nose there, fingers”