If you’ve searched for anything for your home online, from furniture and appliances to hardware and Christmas decorations, chances are you’ve ended up on Wayfair’s website. What started as a way for founders Steve Conine and Niraj Shah to sell stereo racks and stands online in 2002 has grown into an e-commerce giant with a selection of more than 14 million items. In addition to its global headquarters in Boston, Wayfair operates warehouses, customer service centers and distribution across North America, the United Kingdom and Germany. It’s second headquarters in Berlin serves as the epicenter of its European expansion, staffed with business strategists, analysts and tech experts.
As an ecommerce business with a wide range of products, high-quality customer service and efficient delivery means Wayfair has to use the most effective technology and software. They’ve been taking advantage of a Git source control system for years to manage code but recently migrated to GitHub, moving over major repositories for Webstack development in July 2019. “GitHub is a trusted DevOps platform and developers are already familiar with it,” said senior software engineering manager DT Norris.
Wayfair uses both GitHub Enterprise Server and GitHub Enterprise Cloud, hosting code on premises and on GitHub. Their codebase is stored on premises, and engineers work on open source libraries in the cloud. Wayfair has been taking advantage of open source practices since the beginning, ramping them up as it grew. “Now open source is both the industry standard and Wayfair’s standard,” Norris said.
“We’re handling a volume of data that pushes the boundaries of what any business in the world handles,” Norris said. “Our competitive edge comes from our relationships, traffic, and the customer awareness that distinguish us. We build and customize our platform ourselves. That means we can have hundreds of small feature variations with our traffic volume. And we’re bringing that innovation back to the open source community.”
GitHub is a trusted DevOps platform and developers are already familiar with it.
Doing more open source work attracts new developers to Wayfair, Norris said, because potential candidates can see the kind of DevOps work that the company is doing. “There is so much open source code that Wayfair has benefited from, and by open sourcing some of what we’re working on in return, we can not only contribute back, but create a recognizable presence in the open source community.”
Moving to GitHub helped Wayfair restructure internal automation operating on their source code, providing a clean foundation for new work. Code review through GitHub is also more efficient than before, and Wayfair no longer needs to use multiple tools. And having GitHub engineers on site has helped the team reinforce DevOps best practices and make the most out of their enterprise GitHub appliance, Norris said.
“It’s a sanity check that we’re setting up our GitHub servers the right way,” Norris said. “The first time we had one of the engineers on site, our GitHub instance had slowed to a crawl. Within 20 minutes of collaborating, we found that a specific IP address was hitting our server over 20,000 times in the last ten minutes. They know exactly where to go and exactly where to look to gain the specific data necessary to make sure our GitHub instance is configured in a defensible manner.”
Wayfair has added other tools to their DevOps ecosystem—including Buildkite for continuous integration and Kubernetes—to create a flexible workflow that spans their entire software lifecycle. “We’re looking into running more and more of our infrastructure in containers and a Kubernetes-orchestrated ecosystem,” Norris said. “It’s GitHub, Buildkite and Kubernetes. If it’s not Kubernetes, we have our own orchestrators built internally. And we might try to open source those soon as well.”
While sharing data for developer purposes is critical to their growth, they take data security extremely seriously. Separate organizations and repositories help Wayfair secure their code, so code owners are responsible for just their space. Code ownership, in particular, is a big part of the team’s move toward more innersourcing. “We’re leveraging innersource to define clear ownership where specific teams and software engineers feel they can be responsible, and protect the quality and sustainability of their work. We want our internal software teams to feel like they can move with the speed of a startup and the resources of an enterprise,” Norris said.
GitHub facilitates cross-functional working across Wayfair development teams with dedicated RFC repositories—Norris uses it for his engineers (including a number who work in the Berlin office) to open pull requests and document changes. “That’s a workload I see facilitating the creation of long-term historical information about the systems. You can document not only the current state of the world, but also how you arrived there.”
Going forward, Wayfair is planning to roll out new projects in the near future that advance their open source practices and DevOps processes—one that will orchestrate deployments to their servers, and another to handle large log volumes and surface errors quickly so operators can respond.
“Ultimately, we’re all moving towards a globalized world where humans are connected by code,” Norris said. “Wayfair is a global company. That’s why we’re putting resources into our software—and all of the ways we build it.”
number of developers