The Engineer on a Mission to Save the World From Buggy Software

Takipi

All software has bugs. And as more companies adopt Facebook’s old “move fast and break things” motto, striving to expand the scope of their products as quickly as possible, we can only expect software to get buggier. But companies must also keep their applications running no matter what. That can put many coders in a bind.

Tal Weiss has experienced this problem firsthand. In 2007, he helped found Visual Tao, the maker of a web-based computer-aided drafting tool that was acquired by software giant Autodesk in 2009. Weiss and his team were under pressure to add new tools to the web application that could bring it in line with desktop software—without breaking the service for the 10 million professionals who used it. “I kind of likened the process of fixing these issues as doing open heart surgery on a train that’s running at 100 mph,” he says.

Now, after learning from these experiences, Weiss wants to make this kind of thing easier for other developers. With a new company called Takipi, he’s offering up a tool that helps developers quickly discover and analyze bugs in software that’s running on live servers.

‘Someone else, a partner or someone in another department of your company, may change something and it will break your system.’

It’s part of a recent wave of tools that aim to help developers track down bugs while they’re writing code. Things such as Light Table and the Interactive Playgrounds tool woven into Apple’s new Swift programming languages let you see the results of your code as you write it. But Weiss says that interactive debugging tools don’t provide much help once a program has moved from the development and testing stage to “real world” servers, in part because those tools would be a drag on server performance.

Ideally, errors can be spotted and fixed in a separate testing code base and then pushed back to the live web server. But it’s not always possible to find bugs in advance. Many problems in modern applications are caused by stuff that its developers didn’t actually build. “No software is an island,” he says. “You’re depending on code that’s being maintained by other people, such as third party software and APIs. Someone else, a partner or someone in another department of your company, may change something and it will break your system.” And of course, when you’re moving fast and breaking things, you can always expect to find many bugs that slipped by during testing.

Today, most developers troubleshoot bugs on live systems by pouring over server logs. There are tools that help automate that process, but Weiss says that Takipi goes further. It monitors for errors at the processor level. This not only reduces overhead, but also helps developers isolate the precise cause of an error, regardless of whether it was introduced by a company’s own developers or by a third-party application. And because Takipi is constantly collecting error data, it can spot problems before users do—at least in theory. Developers can view lists of errors ordered by date or category. They can also search the logs to see when an error first started occurring, and how often each error occurs. That makes it easier to prioritize bug fixes.

At the moment, Takipi only works with the Java programming language and Scala, a programming language that runs on the Java virtual machine. And it will probably stay that way until the company makes another big leap in code debugging. “Whatever we build,” Weiss says, “we want to bring a level of depth to it that really blows people away.”