The Most Important Startup's Hardest Worker Isn't a Person

At GitHub, inside an online chat service, you'll find the future of work . His name his Hubot. You'll meet him soon.
Photo Ariel ZambelichWIRED
Ariel Zambelich/WIRED

When you walk into the San Francisco headquarters of GitHub—the startup that sits at the heart of the software universe—it looks as if you've walked into the White House. The lobby is a wonderfully amusing recreation of the Oval Office, right down to the striped wallpaper, the gold curtains, and the American flag in the corner. The reception desk is, yes, a replica of the President's desk. But as you approach and check in for an afternoon meeting, the decor isn't nearly as interesting as the technology. As you check in, Hubot sends notifications to everyone you're scheduled to meet with.

This is a simple thing. When you sign into the iPad sitting on the President's desk, Hubot runs a software script that shuttles those notifications through the company's online chat system. But that's only a small part of what Hubot can do. From the same chat program, GitHubbers can ask Hubot which decidedly hip San Francisco food trucks are set up down the street—and Hubot will tell them. If they need a dial-in number for an afternoon conference call, Hubot can provide it. If they need something translated from Spanish, Hubot will translate. When prompted, Hubot can also post a tweet, unveil a graph of the latest GitHub.com traffic numbers, or boot up some servers to accommodate more traffic. Hubot can even tell a joke or find an animated GIF of something completely frivolous, like a dance party. In other words, Hubot is good for a pick me up.

Sam Lambert, the director of systems at GitHub, calls Hubot "the hardest working GitHubber." That's a company-wide in-joke. Hubot isn't really a GitHubber. He's a bit of software that plugs into the GitHub chat system. About five years ago, a guy named Ryan Tomayko built Hubot as an easier way for the company's engineers to manage and modify all the hardware and software underpinning GitHub.com. Simply by sending a message to Hubot—much as they'd send a message to anyone else from inside the GitHub chat client—engineers could update the operating systems driving GitHub's servers, delete data from the databases, or take entire servers offline. But in the years since, Hubot has evolved into something that supports everybody inside the company—not only handling a wide range of tasks but providing a conversational context for those tasks. And as time goes on, this becomes a central record of (just about) everything that happens inside the company.

"It's a new way of working," Lambert says.

Hubot points to a future where all businesses operate in this more automated way. Across Silicon Valley and beyond, many companies have adopted chat systems like the one GitHub built for itself. They include tools like Slack and Hipchat—software that provides a central place for a company's employees to communicate in real time—and businesses can equip these tools with bots that will do their bidding. Some of these bots are frivolous, but not all of them. In fact, GitHub has open-sourced the code for Hubot, making it freely available to all, and now it works with both Slack and Hipchat, not to mention classic IRC systems and Google's Messenger. Other businesses, in turn, have adopted Hubot as a way of handling critical tasks. This includes Box.com, the big-name Silicon Valley file-sharing startup that recently went public.

The rise of Hubot is a nice way of illustrating the rise of GitHub itself. GitHub.com is a place where software developers can share and collaborate on code, and it has become the primary repository for the world's open source software, embraced by everyone from Google to Facebook to Microsoft. Hubot is one of the many software projects GitHub has shared on its own service, and the spread of this bot mirrors the open source movement as a whole.

Hubot was designed so that anyone inside GitHub could use the Javascript programming language (or similar languages) to write new scripts for this automated system. If someone wanted Hubot to automatically determine what food trucks were setup down the street, they could write a script for that very task, programming the bot to scrape the latest information from the web. If they wanted Hubot to translate from one language to another, they could write a script that tapped into the Google Translate API—an online service that provides such translation. And now that Hubot is open source, anyone beyond GitHub can write such scripts and share them. As Slack and Hipchat continue to gain popularity, odds are that Hubot's reach will extend as well. Such is the way of open source.

Github
'It's the Culture of the Company'

When people discuss Hubot outside of GitHub, they often describe it as a tool that does "ChatOps," meaning it handles "operations" tasks—stuff like configuring new servers and databases or updating the code that drives GitHub.com. The term was coined by GitHub, and others have built additional ChatOps bots, including tools like Lita and Err.

The ChatOps idea grew out of a movement called "DevOps," where new-age tools like Chef and Puppet allow IT types to automatically configure and update massive amounts of hardware and software running across their organizations. ChatOps adds a conversational element to this movement. Hubot provides a new, easier, and more powerful way for GitHub to manage and modify and expand the technology underpinning its operation. "GitHub, the website, is updated, all day long, with a bot," Lambert says.

This is also how Box uses Hubot. And because so many other companies (Box's customers) use its infrastructure to house private data, the startup recently beefed up the bot with added security, so it can be sure that the person making a change to some critical system is the person authorized to make that change. This work has been open sourced too, so that anyone else can use it.

But the possibilities extend well beyond classic server room tasks, as GitHub has shown. "It's the culture of the company," Lambert says of Hubot. Hubot can tell him which GitHub employees are currently sitting in offices nearby. When he's about to place a call to a GitHubber on the other side of the globe, Hubot can tell him what time zone they're in. Or, if you're on the GitHub sales team, Hubot can turn up info about a company you're trying to sell to. If you're a coder, Hubot will tell you when a change has been made to particular piece of GitHub software. If you're in the finance department, it can show you the company's latest revenue figures.

"You can use Hubot to do anything that you can write code for," says Josh Nichols, the GitHubber who now oversees the Hubot project. The Hubot homepage refers to the tech as "A customizable, life embetterment robot."

Katelyn Bryant, who works in PR at GitHub, uses it as a way of tweeting to the company's official Twitter account or, yes, finding a dance party GIF. "We use Blue Jeans for video conferencing," she explains. "I can say: 'Hubot, bluejeans me.' And it will send me a personal link so I can start a meeting."

Hubot of the Future

Well, what she really says is: "/blue jeans me." Hubot springs into action whenever it sees a "/." The system has a "command line" feel to it, meaning that, much like with old school computer terminals, you have to use specific commands for it to work. But at the same time, it feels conversational, in large part because you send commands to Hubot as you would send messages to any human. You open up a chat room and send Hubot a note, and this becomes part of a larger discussion. When it does your bidding, Hubot appears among the other chatter, represented by his own robot-like icon.

"You get this incredible context for what you're doing and what your team is doing," Lambert says. "When something goes wrong, everyone piles into the infrastructure [chat] room, and you can watch the remediation of the incident happen. It's highly coordinated. People can understand the context. It helps you work through things as a team."

What's more, unlike a command line, Hubot and the GitHub chat client provide an easy-to-access log of all past messages. If Lambert wants to see what happened one day last week when the company updated a bunch of servers, he merely opens a chat log. "I can return to that point in time," he says.

A Hubot Dependency

As we sit in the Safari Room on the second floor of GitHub headquarters—the room with stuffed toy animal heads mounted on the wall—Lambert tries to remember the command for asking Hubot which food trucks are nearby. He can't. And that's a drawback.

But as machine learning techniques continue to progress, computers are getting better at understanding and responding to natural language—the way humans naturally speak. Google recently published research describing a chatbot that can discuss the meaning of life, and though flawed, it's pretty impressive. This is the bigger (and more distant) future of Hubot. It becomes all the more useful if you can ask it, in ordinary English, about the food trucks.

That is still to come. But Hubot is enormously powerful today. GitHub is five years into using it, and it's deeply ingrained in the company's culture. If you walk around the GitHub offices, you'll see Hubot stickers on laptops. Company artists have developed a cartoon-ish alter-ego for the bot that looks kinda like a steel-plated flying Minion—without the goofy factor (see the image above, pulled from the Hubot homepage). This 'toon turns up in the video that opened the company's recent developer conference, alongside that other GitHub mascot, the Octocat (see video above).

Lambert says that Hubot is so entwined with the way he and the company works, he can't imagine working at a company that doesn't use it. GitHub is a particularly ripe environment for this kind of thing. It's staffed by coders predisposed to writing scripts that tap all sorts of online APIs and perform all sorts of tasks. But we're moving toward a world where more and more people are comfortable with such coding. Javascript is a simple language. That food-truck script was written by someone who works in GitHub's marketing department—someone who's not a coder by trade.

At the same time, tools like Slack are evolving into systems that behave much like Hubot by default. Slack can seamlessly integrate with myriad outside services, including everything from Blue Jeans video conferencing to the Google Drive file storage service to various software development tools. And it can automate the way you interact with these services, handling many of the same tasks without asking you or your company to write Javascript. "They've made the chat client your office's OS," says Keith Axline, a developer with Northwestern company called FinSight (and a former WIRED employee). "You can do a lot of the same things, not necessarily through a bot but through Slack itself."

At GitHub, they like that Hubot is personified. They like asking Hubot questions. They like, well, writing Javascript. But we may see the larger market move towards a simpler, but equally effective, paradigm. However things evolve, Sam Lambert may soon find that if he wants to leave GitHub, there are many companies that work the same way. Very many.