Archives For Engineering

Get a glimpse into the minds of our engineering team.

This month marks the sixth anniversary of Expensify. In may 2008, David Barrett got the idea of a world where expenses reports don’t have to suck. With this idea in mind he rallied the troops and founded Expensify, and for six years we’ve been experimenting with countless ideas on how to make expense reports not suck.  Continue Reading…

Expensify, just like all tech companies in the world, fights bugs on a daily basis. Most of them affect an insignificant part of our users (i.e. an app crash when resuming on a specific page). Some of them have an important impact on the main flow (i.e. taking a picture takes 10 seconds longer than usual).

But sometimes, one small line of code will produce a bug that critically affects 100% of our users.  Continue Reading…

Here’s a quick look at a few things we’ve done in the past few months to make sure Expensify runs faster than a <insert inappropriate joke here>.

Cache, Cache, Cache

Before (gray) and after (blue) chart of API Response Times

Before (dashed) and after (solid blue) chart of API response times – from New Relic

The biggest change we’ve made to speed up our API was introducing a global caching layer, aware of the relationships between the data we handle, and capable of prefetching resources in bulk when necessary. This has reduced the read load on our database server by around 25% (!), freeing resources to serve more customers at any time, especially at peak load. The API is used by all of our apps, including expensify.com – so the benefits of this can be perceived across all of our services.  Continue Reading…

DefibrillatorYou’ve likely already heard about the “Heartbleed” security vulnerability affecting thousands of websites and millions of servers worldwide.  I just wanted to share some quick notes here to address any questions you might have about how this affects Expensify:  Continue Reading…

Here at Expensify, our team is as diverse as they come. One thing we have in common is that we absolutely love what we do. So much so that we oftentimes find ourselves practicing our passion for building even when not using our powers to make users happy.

You know that phenomenon- the spillover of creative energies that is manifest in the form of side projects: those small unexpected products that arise from weekends of pleasurable hacking and challenge seeking.

The benefits of having such side projects are well established. The plethora of blog posts out there usually have these oft-repeated, but sound points:

  1. Staying on Top of New Ideas in the Industry, a.k.a Employability
  2. Refreshing old skills
  3. Participating in a community – Open Source, Non-profits
  4. ???
  5. Profit!

Continue Reading…

At Expensify, everything we do is a balance. As a startup, we can’t build every feature we and our users want, or install as many servers as we can imagine. Sometimes though, we see a change we can make that won’t cost much (in time or money) and will benefit for our users. Here’s the story of one of those times that didn’t work out as well as we hoped.

Most of our website is written in PHP. While there is some healthy debate among our engineering staff, most of us like PHP for its rapid development and ease of deployment. Our web servers use the Alternative PHP Cache (APC) to cache compiled code and speed up requests for our users. A few months ago we updated our web server configuration to use less memory for each PHP process.  Continue Reading…

2013 is so last year. To celebrate the new year, I’m very proud to announce two major developments:

1) We’ve just rolled out a total overhaul of the UI. It’s faster, sleeker, easier to use, and so much prettier. Sign in here to check it out:

https://www.expensify.com/signin

2) If you’re lucky enough to have an executive assistant, add them as a Wingman so they can sign into your account and do everything you can do:

http://help.expensify.com/wingman  Continue Reading…

We recently highlighted some of the new features you can expect to see with the launch of our new and improved Expensify Beta, but dive deeper and you’ll find that there’s a rhyme and a reason behind many of the design choices we made over the past few months while bringing you expense reports that suck even less.  Continue Reading…

Here at Expensify, we’re constantly striving to improve our product. User feedback drives a majority of these improvements. Corporate Card Reconciliation, Invoicing, and Prepay are all examples of new features developed due to user demand. Now, we are happy to announce some improvements to our report approval workflows. The workflows were already highly customizable, but our users wanted more options. You asked for it, and we’ve delivered! Approval workflows now have the ability to dynamically change based on report value.  Continue Reading…

Corgi Expensify Corporate Card Reconciliation

Last month we announced Amex Corporate Card Reconciliation and received a huge enthusiastic response from our users. Due to the popularity of the feature and user demand, we have expanded Corporate Card Reconciliation to many more major banks. The new Banks we have added are below: Continue Reading…