Ian Ownbey knows a thing or two about scaling a startup. The summer after his freshman year at the University of San Francisco, the budding engineer went to work for an up-and-coming company called Twitter. Nineteen and wide-eyed, Ownbey showed up at the microblogging startup's headquarters with a solid background in Ruby on Rails, but nothing could have prepared him for the chaos ahead.
In those days, Twitter was exploding. The "fail whale"—the service's cutesy answer to the 404 error page—was still an all-too-common sight for its rapidly expanding user base. For Ownbey and his colleagues, it made for some frantic workdays as Twitter's infrastructure struggled to keep up with the demand.
Thankfully, things have changed in the last four years.
"Honestly, the startup world in 2013 is pretty awesome," says Ownbey, who is now heading up engineering at Branch, a social service focused on online conversations. "With things like Heroku and all the software as a service, you can make a decision about how much work you're going to put into scaling right now."
It used to be that an Internet startup’s growth was a weirdly counterintuitive double-edged sword: You wanted more users, but if they showed up in droves before your infrastructure was ready, the service could go down. At the same time, fledging companies couldn’t afford to deploy extra servers just in case the floodgates suddenly opened. Hence the fail whale.
These days, cloud platforms like Heroku and Amazon Web Services allow engineers to outsource much of the infrastructural heavy lifting to third parties, who can rapidly deploy new resources as they’re needed. At Branch, Ownbey swears by Heroku for this reason. It’s also why his team leans on tools like OpenRedis for key-value data store hosting and CircleCI, a testing and integration service that plugs directly into GitHub.
"These are all things that we, as three engineers at a startup, would have had to set up ourselves," says Ownbey. "A server to run our Git on, a CI server to run our tests, wiring it up so that it does the deploys, running an actual Rails server and Nginx to serve that and load balance between the servers. We don’t have to do any of that anymore."
"The technology is [improving] on all sides," Ownbey says. "Node is really cool technology that is pretty sophisticated that wasn't really like anything that was out four years ago. Even the front end libraries around AJAX and things like jQuery. The technology that really standardized AJAX wasn't even officially in W3C until 2006, which is right around when Rails was starting. Now you will be hard-pressed to find a website that doesn't utilize it in some way."
It’s not just the tools that have matured. So have the communities surrounding various web technologies. Take Ruby on Rails, for example. Like Twitter, Branch uses Rails as its primary development framework. Both the technology itself and the community that surrounds it have evolved dramatically in the last few years as it’s become more widely adopted across the web.
"There were things that we were trying to figure out in the Rails community back then that now are completely taken for granted," Ownbey says.
That includes some down-in-the-weeds things like Rack, a modular web server interface for Ruby programmers, as well as Unicorn, an HTTP server for Rack. But more broadly, the community itself has become more useful as it has expanded and matured.
"The important thing isn’t whether the Rails community has some sort of special sauce," says Ownbey. "The fact that there is a community of people solving similar problems is what is important. They are also gathered around a technology that supports collaboration."
To stay tapped into that community, Ownbey relies more on human connections than online ones. "I’ve preferred to find the people who I think are really smart and level-headed and I try to surround myself with them as much as possible," he says. Online, places like GitHub, IRC, and Hacker News have become invaluable resources, but nothing quite compares to those real-world, face-to-face interactions.
"If you are a big company, you can afford to hire a bunch of people who can figure out what is going on in software. Startups don't have that convenience, so in order to get the power from numbers, having a good community is important."
In a lot of ways, a given technology is only as good as the development community behind it, especially for a startup with limited time and dollars to throw at problems. It’s a big part of why WordPress has seen such phenomenal success. It’s also why iOS development, as popular and in-demand as it is, can be more challenging than it needs to be.
"Apple has a very top-down approach," says Ownbey. "I mean, it isn't an open source project, obviously, so it doesn't have a community pre-built into it. On top of that Apple will release new things at every WWDC, which makes it difficult for libraries to keep up and support everything."
It's tempting to think of Branch as a sort of digital town hall, but a dinner party would make more an apt analogy: There are multiple conversations happening among limited groups of individuals, not because they're elitists, but because Branch is designed that way. That's because in the real world, it simply isn't feasible to hold a worthwhile conversation with 57 random people at once.
Last October, Ownbey was hired by Josh Miller, the 21-year-old CEO of the company. In a sense, the two are kindred spirits. Like Ownbey, Miller dropped out of college not just to pursue a career in technology, but to work with a company that specializes in enabling people to communicate in new ways.
"I was impressed with how he thought about the Internet in a similar way to me," Ownbey says. Both are interested in using technology not to invent totally new paradigms, but rather to enable people to better accomplish the things they already do in the analog world. Like talking to one another, for instance.
Each "Branch" is a threaded, public conversation whose participants are explicitly chosen by those already in the discussion. The concept is so simple, it almost seems unnecessary. That is, until you scroll through and notice the caliber of conversations happening there. The exchanges are in some ways reminiscent of those found on blog comments or Q&A threads, but without the trolls, anonymity, or quite the same level of noise. There's no delete button on Branch comments, an early decision they still haven't regretted.
Some of the service’s earliest adopters have been media outlets, which has helped raised its profile. It also presents the company with an unexpected challenge: how to get everybody else talking.
Not having to stress about the product's day-to-day stability means Ownbey, Miller, and the rest of the Branch team can focus on things like that and, more importantly, what's next. Now that the service is out of public beta and its user base is getting settled in, there is some fine-tuning to do. How can Branch get normal, everyday people to contribute? What features should be added? Removed? How does mobile fit in? Miller hints at a "mobile-focused offering" that will emphasize more casual conversations. But how? These are just a few of the questions the team is grappling with as it moves forward.
"It's really difficult because as engineers we like thinking out the most elaborate solutions," says Ownbey. "There's also this pressure for us to build the best, most scalable, smartest solution."
It's a tricky balance, and the first test of Ownbey's ability to strike it went live on April 9. Instead of building out a lengthy list of new features, the team launched a refreshed and radically simplified version of Branch. Indeed, the new version actually eliminates features in an effort to better focus the product and encourage more participation beyond journalists and thought leaders.
Whereas Branch's first iteration relied on gee-whiz jQuery animations on the front end, the new one eschews much of that in favor of a simpler, quicker interface. As slick as jQuery can make a web app, Ownbey confesses that "there's definitely a cut-off point where browser performance starts to go downhill just because it's constantly redrawing." For the most part, Ownbey says, those types of visual effects got cut due to the product’s priorities rather than engineering issues. Still, he wasn’t sad to see them go.
It's more than just lines of code that got the axe in the new version. Branch's user activity feed, something that incorporated complex logic and was a technical challenge to implement, is now gone.
"I think the biggest challenge as an engineer is to be passionate about your solutions while not being attached to them," Ownbey says. "Everything is constantly moving, so you really need to be able to accept things like, Okay, maybe that's not the thing we need to solve now. Maybe that was never the thing we needed to solve."
[Images by Cemre Güngör]