Tool Legit

Thursday, 30 September 2010

Hi, I’m @stirman, and I’m a tool.

Well, I build tools, along with @jacobthornton, @gbuyitjames and @sm, the Internal Tools team here at Twitter.

Build or buy?

To build or not to build internal tools is usually a debated topic, especially amongst startups. Investing in internal projects has to be weighed against investing in external-facing features for your product, although at some point the former investment shows greater external returns than the latter. Twitter has made it a priority to invest in internal tools since the early days, and with the growth of the product and the company, our tools have become a necessity.

I often hear from friends in the industry about internal tools being a night and weekend additional project for engineers that are already backlogged with “real” work. We have decided to make building tools our “real” work. This decision means we have time to build solid applications, spend the necessary time to make them look great and ensure that they work well.

Noble goals

Our team’s mission is to increase productivity and transparency throughout the company. We increase productivity by streamlining processes and automating tasks. We increase transparency by building tools and frameworks that allow employees to discover, and be notified of, relevant information in real time. Many companies use the term “transparency” when discussing their company culture, but very few put the right pieces in place to ensure that a transparent environment can be established without exposing too much information. Twitter invests heavily in my team so that we can build the infrastructure to ensure a healthy balance.

Example apps

We have built tools that track and manage milestones for individual teams, manage code change requests, provide an easy A/B testing framework for twitter.com, create internal short links, get approval for offer letters for new candidates, automate git repository creation, help conduct fun performance reviews and many more. We release a new tool about once every other week. We release a first version as early as possible, and then iterate quickly after observing usage and gathering feedback.

Also, with the help of @mdo, we have put together a internal blueprint site that not only contains a style guide for new apps, but also hosts shared stylesheets, javascript libraries and code samples, like our internal user authentication system, to make spinning up a new tool as simple as possible.

We put a lot of effort into ensuring our tools are easy to use and making them look great. We have fun with it. Here’s a screenshot of a recent app that tracks who’s on call for various response roles at any given time.

Tool Legit

Time to play

We also have fun learning new technologies. Here’s a screenshot of a real-time Space Invaders Twitter sentiment analysis visualization that is part of a status board displayed on flat screens around the office. @jacobthornton wanted to learn more about node.js for some upcoming projects and he built “Space Tweets” to do just that! If you’re interested in the code, get it on github.

Giving back

While we’re talking about open source, we would like to mention how much our team values frameworks like Ruby on Rails, MooTools and their respective communities, all of which are very important to our internal development efforts and in which you’ll find us actively participating by submitting patches, debating issues, etc. We are proactively working towards open sourcing some of our own tools in the near future, so keep an eye on this blog.

Join us

Does this stuff interest you? Are you a tool? Hello? Is this thing on? Is anyone listening? (If you are still here, you passed the test! Apply here to join our team or hit me up at @stirman!)