Archives For July 2012

At some point, a startup outgrows its lack of structure, but isn’t yet ready for the real deal. What do you do? There are some lessons to be drawn from how P2P networks grappled with the same problem.

1. Fully Connected (2-4 people)
When a P2P network is very small, every node sits next to every other node. If there’s something you need, you just directly ask the nodes around you, and they can give it to you in one step. This is akin to the early days of a startup: just turn to the left or right and every problem is solved.

2. Gossip Protocol (5-10 people)
As the network grows, not every node sits next to every other. But this is fine, because the network is still small: even if your peers don’t have the answer, odds are they just need to ask one of their peers, and the answer is found. So every question can be answered in 2 steps, which is still pretty good.

3. Supernodes (10-20 people)
However, as the network continues to grow, sometimes gossip isn’t effective: it’s possible that there are nodes sitting more than 2 steps away. In startup terms, this means peers who are off in their own direction, and nobody knows what they’re doing. But because everybody has already accepted there are things both they and their peers don’t know, it’s easy to assume that somebody else knows what they’re up to — when in fact nobody does.  Accordingly, people can be overlooked: they don’t get the support and oversight they need to be effective.

To solve this problem, a small group of well-intentioned employees — generally without any formal acknowledgement — steps up to take on greater responsibility. They don’t have any formal titles; nobody technically reports to them. But everybody knows they are doing far more than being individual contributors: they are “supernodes” who just take it upon themselves to pay attention to more than most. They are the people who walk around and ask questions.  They notice when people are unhappy, overwhelmed, unsupported, or unsupervised. They are the people everyone turns to when nobody knows the answer.  They are the unsung heroes who keep a startup from imploding under the weight of success.

But inevitably, the supernodes themselves burn out. After all, they’re consciously doing more than anybody else — but without any real extra incentives, resources, or authority. And when a supernode burns out, the whole network they support burns out, too.

Up until very recently, that’s where we were. So we’re moving on to the next stage: DHT.

4. Distributed Hash Table (21-?? people)
Because supernodes are volunteers, they don’t necessarily have any formal accountabilities — being a supernode isn’t a job, it’s a calling. And though over time supernodes tend to focus on certain areas, and though all nodes tend to learn what those areas are and act accordingly, those focuses aren’t documented or even formalized. This means new employees don’t know who knows what; people don’t know who is more qualified to make a decision than the next person. A supernode can only do so much as a volunteer: at some point your organization needs to upgrade to a DHT.

At a high level, a “distributed hash table” is a data structure where given any particular question, you can determine who knows the answer — in one step.  No searching, no gossip: just ask the right person and they will know.  In organizational terms, it’s kind of like an org chart: it documents which people are in charge of which areas. Ideally anybody can look at this chart and immediately determine the correct person to ask any question.

But it’s only a partial org chart: only the supernodes are put into the chart, and all the other nodes are left ambiguous. It’s not about strictly defined teams operating under a chain of command — it’s about a mob of people, where some people carry megaphones. Anybody can switch who they follow at will, depending on what they’re trying to accomplish. But those carrying the megaphones coordinate to ensure that the mob overall continues heading in the right direction.

That’s where we are today. Expensify is a mob, with megaphones. Naturally, I reserve the loudest megaphone for myself (as would any benevolent dictator), but more and more it’s the jobs of the supernodes to keep the mob moving forward — with me just helping coordinate behind the scenes.

How long will this last? I’m not sure. Like so many things, our lack of overt structure has worked much longer than I think anybody realistically thought was possible. Indeed, I attribute how well things have worked so far entirely to the fact that we only hire a very particular sort of person who can thrive in this environment. But I’m confident that it’ll keep us moving forward at our already astonishing rate, to whatever level comes up next.

Q: Why not a strict hierarchy; isn’t that more efficient?

A: In content delivery terms, that would be a “broadcast tree” — you have a single source, which broadcasts to the first set of nodes, each of who broadcast to the second set, out until all nodes get the content.  It’s a top-down control network, and yes, it is optimally efficient.  In an established company where all the kinks of the business have been ironed out, everyone’s job is well defined, and the success of the organization rests upon minor tweaks applied top down — yes, it’s ideal.  Most large companies are structured this way for a reason.

But a startup is nothing like that.  At least, our startup isn’t anything like that, and we all quit places like that to come here.

Rather, it’s more like I throw a flaming torch way out ahead of us, and we all try to figure out how to get there.  Sometimes it involves building bridges, blowing up mountains, and occasionally burning our boats behind us.  But my job is only to figure out (roughly) where we need to be: how we get there is up to the mob.  So our structure is optimized to put maximum control into the hands of the most people.  It can be chaotic, confusing, and sometimes a bit scary.  But it’s a lot more productive, and infinitely more fun.

Founder and CEO of Expensify
Follow us at @expensify

Note the TV….still not sure the purpose but I can only narcissistically assume its so that we can see ourselves behind home plate?

Let’s talk about the amazing day I had today…honestly so unreal.

When I got to the office this morning, our board meeting was going on, so I quietly shuffled to the side to crack down on some email. An hour later, after our investors headed out, I was moving to my favorite spot in the office, only to be pulled aside by David, our CEO.

“Psst, Alex. Do you like baseball?”

[pause] “Um…yeah, I love baseball.”

[hands me an envelope] “Here are two tickets for the Giants game today at at 12:30. You should go. These seats are killer.”

“What?!? Oh my god! Miss work?”

“Yeah, go, bring whoever you want!”

All of this occurring before 11:30 AM. I spent the next 45 minutes feeling like a cracked out Cinderella, twitching with excitement, barely able to focus while imagining the fun I would encounter at the game. I had heard briefly about these mythical, magical seats that our awesome investors had been known to hand out…but I had never been the beneficiary of such generosity. As I squirmed at my lap top waiting for the minutes to tick by I kept thinking…”is this real life?” à la small, drugged, car-seated youtube sensation of yesteryear.

Fast forward to the actual game. Holy crap are these seats killer (See inset).

I could have licked the field should I have been so inclined.

It was a wonderfully warm day with sunshine and the perfect light breeze. Bratwurst and beer magically appeared before me (ok not magically, we ordered and paid for it) and, although Lincecum struggled throughout the day, being so close to the field and watching the players warm up made me so uncomfortably starstruck, I thought I was going to cry… until my co-worker Matt pointed out that my heroes would, in fact, be able to see me cry.

Somehow I pulled myself together to revel in the glorious day (unsurprisingly, it wasn’t too hard to enjoy). Once the game ended and we headed back to work with our giddy smiles and a spring in a step [read: delicious beer in our stomachs] it occurred to me that today was maybe one of the most absurdly amazing surprises of my life which would never have happened if it weren’t for a combination of our amazing investor Bobby who so generously gave his tickets to David to share and David himself, for deciding that a couple Expensify-ers deserved a three hour lunch at AT&T park.

Seriously guys, best company ever.

Welcome back to another riveting post in our How Do You Expensify blog series! This week we focus on Flurry, creator of the world’s leading mobile application analytics and data-powered advertising platform.

After working with John Iparraguirre at Flurry to simplify and optimize their expense reporting practices, we’ve found that the most cumbersome pain point in their expense reporting process was inputting expenses into QuickBooks. Prior to working with Expensify, John would have to spend 4 hours, twice a month keying his employees’ approved expenses into QuickBooks. Not only was this task time consuming, manual data transfer always carries the risk of mistakes no matter how exceptional the employee is. Enter Expensify!

Using our integration with QuickBooks, you can export reports from Expensify to QuickBooks with ease and speed. After connecting your Expensify account with QuickBooks, employees categorize their expenses using your QuickBooks expense accounts, submit their reports, and once they’re approved John can export reports, in bulk or individually, directly to QuickBooks. For those of you that have not had the pleasure of manual data entry, trust me this is way better. Don’t take my word for it, John Iparraguirre sums it up eloquently:

Transferring expenses into QuickBooks went from a 4 hour task to 15 minutes with Expensify.

That’s 1/16th of the time, not to mention increased automation that safeguards against mistakes in transit. Not too shabby.

Thanks to John and Flurry for letting us highlight their experience with Expensify! If you are interested in setting up your QuickBooks – Expensify connection or if you’d like to be featured in an edition of ‘How Do You Expensify?’, please contact us via and we’ll be glad to assist you.

Dear QuickBooks users, we have important news to share: We’ve taken a stand in the ideological (and business) battle for FREEmium – ensuring that you can use Expensify’s core features for free as long as you want – and because of this, Expensify has been kicked out of the Intuit App Center. But not to worry! We continue to support all versions of QuickBooks, whether online or desktop.

The first question you’re probably asking is, “Am I affected by this?” If you into and then connect to Expensify, you’re affected. Or more simply, if you see an Intuit logo in the top righthand corner of any page in Expensify, then you’re also affected and will need to re-connect to Expensify by following the directions below. Otherwise, you’re in the clear!

Important: QuickBooks connections require upgrading to the Team plan or above. If you don’t see Settings > Policies in your Expensify account, then please upgrade.

Remove Your App Center Connection from Expensify

1. Log into your Expensify account and visit Settings Connections.  Click the “delete” button next to your App Center (or Sync Manager) connection. Also make sure to visit Settings > Account > Secondary Logins and delete any secondary logins for “intuit.”

Remove your Intuit App Center connection in Expensify

Delete your App Center (Sync Manager) Connection in Expensify

Fingers crossed! This is hopefully the only step needed to fully disconnect from the App Center! Now we’ll reconnect to Expensify using the Intuit Web Connector (Desktop) or Intuit API (Online).

Reconnect QuickBooks Desktop

1. Initiate your connection to the QuickBooks Web Connector (detailed directions).

Connecting QB Desktop via your Expensify policy

Connect QB Desktop to your Expensify policy


  • We recommend creating and initiating your QuickBooks connection via your Expensify policy (Settings > Policies > [Policy Name] > Connections)
  • Also make sure that upon creating the connection, you are logged into QuickBooks using “single-user” mode and that you have full QuickBooks admin rights

Reconnect QuickBooks Online

1. Connect to Intuit’s API (detailed directions). Like QuickBooks Desktop, we recommend creating and intiating your QuickBooks Online connection via your Expensify policy (Settings > Policies > [Policy Name] > Connections).

Connecting QBO via your Expensify policy

Connect QB Online to your Expensify policy


  • Make sure to select “No” for login security (which enables you to connect Expensify to your QuickBooks company file)
  • Also verify that you are logged in as the “master account” for QuickBooks Online

Remaining Issues?
We hope that everything has worked flawlessly up until this point. But there’s always a chance that something may go wrong, so we wanted to provide some tips if this is the case:

  • Follow these steps and it didn’t work?  Reboot and try again.
  • Do some accounts not pull into Expensify correctly? If this is the case, then Intuit’s Sync Manager may be interfering with your Expensify connection. For QuickBooks 2010 Release 6 and above, you can clear your sync settings (directions). Or in Sync Manager version 2.6 or above you can remove a company file from the sync list (directions). If you have an older version of QuickBooks or the Sync Manger, you may need to upgrade, and we recommend contacting Intuit about this matter
  • Are your customer/jobs or bank account names missing from your QuickBooks company file? This is likely again the Intuit Sync Manager, and we recommend following the instructions in the paragraph above
  • Have you tried everything else and something still isn’t working? Then you may have to exercise the nuclear option. This option is discussed on the Intuit Community boards (link), and it’s not something we recommend. Only go this route if you don’t use (or intend to use) any other providers from the Intuit App Center: navigate to C:\Program Files\Common Files\Intuit on your Windows computer and rename the folder called “Sync” to “Sync_Disabled”, then reboot your computer.
  • Change your mind and want to use the Intuit Sync Manager after all? See Intuit’s FAQ on everything Sync Manager (link).

If you run into any issues, please email us at Thanks for understanding!

Here at Expensify it’s important to us that you are able to get access to all of the latest features and upgrades.  To that end we wanted to take this opportunity to talk about upgrading mobile apps.  The retro look might make good fashion sense, but this is never true when it comes to software.  Our engineering team has been hard at work (see cartoon left) streamlining the mobile experience and fixing some pesky bugs that were around from previous versions.  By making sure your copy of the mobile app is up to date, you can make sure that you are getting the smoothest and most functional experience there is to have.  You can check to see what version you are using now by going to the Settings page.

Find your current version number in the top right on the Settings screen.

Here is a summary of the latest version numbers for our mobile apps and links to download them if it turns out you do need to update.

-iPhone: 3.23  –  Download

-iPad: 2.81  –  Download

-Android: 3.23  –  Download

-BlackBerry: 3.20  –  Download

-Windows Phone:  –  Download

-WebOS: 1.0.6  –  Download

One issue in particular that we wanted to take a moment to address is making sure you are using the correct app for the iPhone.  If your iPhone app looks like the one on the right, then you are all set.  If not then you may actually be using the iPad app, so make sure to install the iPhone app at the link above.  We want to make sure that you have access to all of the latest features available on your iPhone.

Once you have the update installed everything will be fresh and ready to go!  Make sure that you are updating early and often to so that you will always have access to the latest and greatest version of the app.

If you have any feedback, or if there is anything at all we can help with, please don’t hesitate to let us know at!

I first heard of Team Rubicon about one year ago when their Founder, Jake Wood, wrote in asking to get his direct deposit account set up.  I was so impressed with the work they are doing that when we started up the ‘How do you Expensify’ series they were the first group that came to mind.  

Made up of hundreds of military veterans, Team Rubicon takes the skills and strength forged on the battlefield and puts it to work saving lives around the world.  They have made a real difference in helping disaster torn areas such as Pakistan, Chile, Burma, and also back here in the U.S.  Currently they are hard at work in Haiti, (Remember that earthquake?  Team Rubicon never forgot) and South Sudan.  We couldn’t be more proud to count them as Expensify users, and we take great pride in any small way that we may be assisting them in their work.

Team Rubicon’s John Webster checks on a sick child’s heart rate. What did you do for the world today?

I recently had a chance to ask Jake about what works best for him and his team in Expensify and he was kind enough to take the time to share a few thoughts.

I’d say that perhaps the best example would be when we have a mission domestically.  We get a lot of spontaneous volunteers who are driving in from as far as 500 miles to respond.  Many of them need reimbursements rapidly since they are fronting the costs.  Expensify allows them to take a photo of their receipt from the field and save it, which is crucial.  Also, with the mileage tracker, it’s the easiest method we’ve found to reimburse miles. ~ Jake Wood, Team Rubicon

Whether you are traveling across the war torn African savana, or just delivering supplies to a local outlet of your business, Expensify can suit your needs equally well.  On our mobile apps, you have access to multiple means of mileage tracking – from manual entry, odometer readings, or even our newest feature, GPS tracking.  Whatever your needs, we have an option that will suit them.

Tracking Mileage: Whichever Way Works Best For You!

Team Rubicon’s Zach Smith saying good bye to his friends in Pibor, Sudan. How awesome is that scene?

So if you haven’t had a chance to try out our mobile mileage entry why don’t you give it a shot!  And also please do check out Team Rubicon and the amazing work they do around the globe.  As always, if you have any questions, or if there is anything at all Expensify can do for you, please don’t hesitate to contact us at

Here at Expensify we are always trying to use the best of the web. We use cutting edge technology
to offer the best experience possible to our users.

Unfortunately, not everybody can enjoy the benefits that these new technologies offer because not all browsers support them.One of these browsers is Internet Explorer. The latest version of Internet Explorer is great, but the popularity of older versions makes our work very hard.

At Expensify, we target mainly Google Chrome. It is fast, secure and always up to date. At the same time, we understand that not everybody wants to install Google Chrome, or can because of their company’s policies. We try to balance between having a great product and making sure Expensify is working well with all browsers.

Google offers a great solution for Internet Explorer Users: Google Chrome Frame.

Google Chrome Frame is an open source plug-in that seamlessly brings Google Chrome’s open web technologies and speedy JavaScript engine to any version of Internet Explorer.

You can install Chrome Frame on your Windows computer using Internet Explorer 6, 7 , 8 and 9.

Google Chrome Frame gets updated automatically and silently without prompting. You don’t need to be an administrator on your computer to install it.

To enjoy the best of Expensify we highly recommend installing it.

For more information on the drawbacks of older versions of IE, I recommend Smashing Magazine’s article on upgrading web browsers.