Open Source at Opendoor

Dan Hipschman
Open House
Published in
5 min readSep 3, 2021

Open source software is critical to us here at Opendoor. That’s why we engage with the community through upstream feature development, strive to open source our own projects, and make financial contributions. This article describes some of the ways we’ve developed to give back to the open source community:

  • Contributing code to open source projects
  • Funding open source
  • Open sourcing our own projects

Contributing Code to Open Source

Like many companies, Opendoor leans heavily on open source software to power its business. If we think of Opendoor’s engineering work as a pyramid, our business logic is the tip, the base includes large projects like web servers, databases, operating systems, compilers, etc., and the mortar is smaller projects that often just do one specific thing but make our lives easier.

Sometimes there are bugs in the base or the mortar, or features we’d like to have. Whenever this happens, we like to develop fixes and share those. We can’t always do that, of course, so sometimes we might just report the issues to the maintainers and develop a workaround. But we know that many maintainers are volunteers who are hard-pressed to make the fixes themselves. That’s why we like to contribute fixes when we can.

As an example, one of our data engineers, Graham Place, added a feature we need to the Snowflake Terraform provider. (You can read more about that on his blog post about Terraforming Snowflake as well.)

Funding Open Source

It’s naive to take open source software for granted. Indeed, as mentioned above, open source software undergirds much of what Opendoor does. For example, all our production code runs on Linux. Our compilers and interpreters are all open source. Our machine learning and data pipelines are all built on top of open source software, too. If not for open source software, our business would need to expend significant resources to develop our own software. There are smaller projects as well, which would take our engineers days, weeks or months to reimplement if they weren’t available as open source. These are just a few examples to show the massive impact open source has on our business, and our dependence on it.

Many smaller projects are maintained by individuals who have full time jobs. They’re mostly time constrained. The best way to help out with these projects is to contribute code. It’s often easier to do on small projects than big ones. However, most people don’t. It’s easy for maintainers of small projects to burn out from requests, but little reward for their work beyond building something useful.

But sometimes contributing code isn’t enough to help maintainers. For large projects in particular, maintainers often have costs associated with hosting, legal issues, or engaging bug bounty hunters. It’s also often hard to contribute significant bug fixes or features to larger projects, due to the complexity of ramping up.

That’s why we also like to fund open source. Opendoor’s policy is to donate $5,000 each quarter to an open source project we use. Funding these projects helps keep maintainers motivated and can speed up improvements and bug fixes. We’d like to fix every bug we find, or contribute every feature we need, but unfortunately that isn’t realistic. We also want to show appreciation to those projects that we depend on every day that don’t need any code changes. Giving money is the simplest way to show appreciation and help out.

Here’s how we decide who’ll receive the funds each quarter. (Note: Our process is greatly informed by Indeed’s process, as well as Microsoft’s and Saleforce’s and a handful of others.

To be eligible, the open source project must:

  • Be used by Opendoor or one of its subsidiaries
  • Use an approved license
  • Have an approved mechanism for receiving funds
  • The mechanism must be approved by our finance team; any credit card processing mechanism, for example, will probably be approved.
  • Not be owned by an Opendoor employee

Our engineers have one week per quarter to nominate eligible open source projects. The engineers then vote, and we make a $5,000 donation to the top pick. Note: We don’t discriminate against smaller or larger projects. We encourage the engineers to vote for the project that can use the money best.

Who We’ve Funded

This is a new policy for us, and we’re excited about it. In the first quarter of 2021, we gave $5,000 to PostgreSQL, which is our database of choice.

Many of our engineers voted for PostgreSQL. One of our Analytics Leads, Rachid Belaid, wrote a short memo explaining why:

PostgreSQL has been a key technology to help Opendoor become a multibillion dollar company that operates in 30+ markets. PostgreSQL usage grew with us.

PostgreSQL was our first data warehouse. In the early days of Opendoor, we had few services and separate databases. Analytics was always a critical part of how we make decisions. With our services using PostgreSQL, it was easy to move a copy of our data in a centralized PostgreSQL instance we used to run analytics. It was stretching what PostgreSQL was made for, but it allowed us to get started quickly, at low cost and build a solid analytical culture. We outgrew our PostgreSQL instance after a few years and moved to a solution more optimized for data warehousing (currently Snowflake).

PostgreSQL is great for geospatial data. Running a company in the real estate business requires a lot of geospatial processing. To be able to make an accurate decision, we depend on a lot of features surrounding the house. PostgreSQL with PostGIS has been a huge part of our pricing or eligibility decision making. For example, every time we detect that a home is close to a flood zone or a highway, we use this to adjust our decision. This is all powered by PostgreSQL.

PostgreSQL helped us move our data while breaking up our monolith. Opendoor started as a few monoliths. As the company grew, we decided to create some separation of concerns and increase our overall architecture stability. When we broke down our monoliths into smaller services, we needed to migrate data to preserve history. Luckily, the PostgreSQL foreign data wrapper allowed us to backfill data from one database to another.

We look forward to many more funding awards such as this.

Open Sourcing Our Own Projects

Ideally, we’d like to open source any non-business-specific code we write. This is hard to do when you’re trying to move quickly. It often takes a lot of effort to separate the business parts and write code in a way that’s generic enough for others to use. That said, we try.

For example, we open-sourced our RETS client (a standard data format for real estate data from and MLS). Most recently, we open-sourced pggen. The easiest way to browse our open sourced code is via our public Github repos (and also here).

Interested in joining our team? Check out some of our open roles, Software Engineer, Sr. Software Engineer (backend), Sr. Software Engineer (full stack), Sr. Software Engineer (front end)
Want to learn more about working at Opendoor? Check out our Design blog and recent Opendoor news + more employee spotlights.

--

--