< expLog

Building Developer Tools

After spending a large part of my career building tools, I realized I had unconsciously followed a consistent framework for identifying and building developer tools. It seemed like a good idea to make it concrete – both for sharing and collecting feedback – leading to this series of posts. I like to spend at least half of my available time making it easier to do the work before actually setting about doing it. It naturally seemed like a good idea to capitalize on this trait.

For the sake of style and brevity, these posts are highly prescriptive. Remember that these are heuristics based on my own experience at a large tech company; with this in mind, you should make sure to apply these in your unique context.

With that caveat out of the way, I'd like to paraphrase Fred Brooks by saying: all computer scientists are toolsmiths. This leads me to believe that some of these ideas are generally applicable; after all, we build tools for communication, commerce, art, and just about everything else. Even though I'm writing from my point of view – as a Sofware Engineer – these heuristics should be helpful irrespective of your current hat: Product Manager, Designer, or something else entirely.


You can also read all the posts compiled into a single page if you prefer. You can read these posts in any order; I've repeated important advice.


Thanks to Kent Beck, Aditya Athalye, Joe Thomas, and Lindsey W for patiently discussing several aspects of this series and giving their valuable feedback.

Thanks also go out, of course, to everyone I've worked with and learned from while building – and using – developer tools over the years!


Add your comments to this Twitter thread, or feel free to drop me an email.


  • 2021-08-07: Fixed some mistakes. Thinking about v2.
  • 2021-08-01: One final round of edits before sharing v1.
  • 2021-07-30: More edits, starting with Leverage.
  • 2021-07-21: Index edited by Lindsey W.
  • 2021-07-20: Exercising Grammarly, one post at a time.
  • 2021-07-19: Fixed several typos.
  • 2021-07-17: Added a new model & acknowledgments, more polish.
  • 2021-06-24: Some polish.
  • 2021-06-22: More drafts on inspiring tools and resources.
  • 2021-06-20: Added a draft around model measurement.
  • 2021-06-19: Played around with models for personal productivity.
  • 2021-06-18: Iterated on models to estimate the added value of a toolsmith.
  • 2021-06-17: Added a draft around execution, as well as leverage.
  • 2021-06-16: Added a draft around identifying opportunities.
  • 2021-06-12: Added a draft around traps for tool builders.
  • 2021-05-29: Added a draft on characteristics of well-built tools.
  • 2021-05-27: Started visibly publishing drafts online.
  • 2021-05-22: Revamped expLog to have a nice place to publish.
  • 2021-01-xx: I started outlining this note after spending a lot of time working on, talking about, and giving feedback on developer tools.