< expLog

How I Build Developer Tools

2021-06-11 – This series is a work in progress: I'm not as experienced at writing as I would like to be, and making something valuable, coherent and readable takes time.

To begin I'm simply trying get all my ideas typed out; I'll work on better composition and expression later. Send any feedback my way @kunalbhalla.

This is a series of posts around the meta of building developer tools.

I've spent a significant part of my career building developer tools for different stacks. This post is an opinionated take on how I look for opportunities, prioritize features, evaluate success and set up execution; interspersed with warnings of traps to avoid along the way.1 1 Generally identified by repeatedly falling into them. Again, and again, and again…

The motivation for this series came from realizing that I followed a fairly consistent framework to choose and work on projects – both for myself, or for others. Writing them down helps refine my heuristics, discuss them – and get feedback from anyone who happens to read this.2 2 Writing things down can help in greatly reducing hours spent in meetings.

These are heuristics; generally applicable in the context of larger companies. For the sake of style and brevity, I'm writing extremely prescriptively – remember to always evaluate them in your context.

With that caveat out of the way, I believe that some of these approaches will generalize well – to paraphrase Fred Brooks, all computer scientists are toolsmiths. We build tools for communication, moving money, making art, and just about everything else.

Index

These posts can be read in any order. Important advice is occasionally repeated across posts.

  • Leverage
    Why you'd want to work on developer tools in the first place.
  • Types of Opportunities
    What you can accomplish with developer tools.
  • Identifying opportunities
    Finding car shaped holes in a world full of horses.
  • A checklist for a well built tool
    Building valuable tools thoughtfully.
  • Effective execution
    Execute in a way that immediately builds value.
  • Traps for tool-builders
    Common patterns that can make your work significantly less valuable.
  • Meaningful measurements
    Metrics are both valuable and incredibly dangerous.
  • Building internal tools
    Advantages for internal tool builders.
  • Some of the tools I find inspiring, and why
    Good public examples to learn from.
  • Books & other resources I've found useful
    Everything from Tufte to The Unix Philosophy.

Comments?

You can drop me a email or catch me on Twitter. (I still haven't found a comment system for static blogs that I particularly like.)

Updates

  • 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 it.
  • 2021-01-xx: Started outlining this note after spending a lot of time working on, talking about, and giving feedback on developer tools.