WhoBuilt

How Expensify is Building Bridges with OSS and React Native

Sep 22, 2023· 20 min· 669 views·Watch on YouTube

Speaker

Rory Abraham, a full-stack developer at Expensify, explains how the company uses React Native and an open-source contributor community at React Native EU 2023, hosted by Callstack.

A chat-first vision for Expensify

Abraham describes Expensify as a tool for helping people collaborate, with financial transactions as one form of that work. The company shifted toward a chat-based product to support communication across use cases, from expense reporting to events and charity. He says the product vision also shapes Expensify’s one-team internal structure.

Scaling engineering through repeatable processes

Expensify’s older mobile app was a custom framework dating to 2009, while its web and mobile products had become separate. With about 30 to 40 engineers, the company chose to expand its engineering capacity by engaging independent developers. Abraham says more than 1,600 developers have contributed code to the new repository.

A pipeline for community bug fixes

Independent testers report bugs in Slack, where QA partners check that reports are reproducible, clear, and not duplicates before adding them to GitHub. An internal Bug Zero assignee evaluates each issue, and front-end bugs can be posted automatically on Upwork with a $500 base rate. After a fix is tested, merged, and in production for seven days, the reporter receives $50 and the fixer $500.

Giving contributors more responsibility

As proposal reviews became a bottleneck, Expensify created the Contributor Plus role for experienced community members to triage proposals and conduct initial reviews and testing. Abraham says the program has about 30 members. For specialized work, Expensify also works with expert teams at Callstack, Margelo, Software Mansion, and Infinite Red.

Building a connected community

Expensify encourages shared ownership of its dependencies and collaboration between contributors; Callstack and Software Mansion, for example, worked together on a TypeScript migration. The company brought top contributors to Curaçao for ExpensifyCon and opened a public coworking space in San Francisco. Abraham describes these efforts as part of a broader aim to help people collaborate and pursue shared goals.

Takeaways

  • Turn recurring problems into clear processes before delegating or automating them.
  • A Slack intake and QA step can improve issue quality before bugs reach a public tracker.
  • Use experienced community members to handle initial reviews when the core team becomes a bottleneck.
  • Set payment conditions and amounts clearly so contributors know what reporting and fixing a bug involve.
  • Bring independent contributors together around shared dependencies and projects to encourage collaboration.

Mentioned in this talk

Search inside this talk

What was claimed 12

Related talks