Archives For CEO Friday

Crazed ramblings by the CEO.

Cloud Computing

With ambient services, companies will be able to predict where you’re headed, before you get there.

This is a pretty popular topic, and since I’ve been asked this question a lot, I wanted to share my thoughts on paper.

The future of cloud computing is what I would call “ambient services.” What this looks like in real life: over time, cloud services will look less like Google Search, and more like Google Now.

The Cloud – Past, Present, Future

Stepping back, the evolution of computing can be summarized as an inexorable trend away from systems “reacting” to your input and more toward systems “proactively” anticipating your needs. The original mainframe systems were “time-sharing” and only had time to answer one question for one person at a time, in tiny slices. Desktop computers gave their full attention to a single user, but only so long as they were powered on and you were sitting in front of it. Cloud services gave rise to 24/7 services catering to your needs, and then mobile made these services accessible everywhere.

From these services, I believe the next step in that evolution are services so pervasive, so aware, and so reliable that you simply forget they’re there. They’re not some “cloud service” operating somewhere far away; they’re “ambient services” that surround and assist you continuously.

Apple vs. Google: The Past

In an ideal world, Siri would already know. Photo credits: Apple

In an ideal world, Siri would already know.
Photo credits: Apple

Siri was the first serious attempt at creating an ambient service; inspirational in its vision but falling short due to a lack of context. On the other hand, Google used its massive trove of information to create Google Now, the first truly ambient service. Google Now has so much latent awareness — of what you are doing, what you’ve done in the past, and what you’re likely to do in the future — that it doesn’t need to wait for you to ask it a question; it anticipates and resolves your needs before you know you have it.

Apple vs. Google: The Present

The problem with ambient services is that very, very few people can do them right. Google succeeded where Apple has failed (and continues to fail) because of data. Apple has by far the best user experience, making it fast, easy, and fun to find the correct button to press to accomplish what you want. In contrast, Google Now has no buttons, it’s just there. Google Now doesn’t need to ask you to press any buttons, because it already knows what button you would press — so why even show it?

Apple vs. Google: The Future

Pre-ambient systems like Apple will continuously get ever more complex, because more functionality means more and more buttons. However, ambient services like Google Now will get ever simpler: the more the service knows, the better it can anticipate your needs, and the fewer questions it will need to ask you to do *more* for you.

Who Will Lead the Charge?

So if “ambient services” are the next big thing, who will lead the charge? Google, obviously, but who else? I’d look to any service accumulating a trove of valuable data so massive and boring that nobody would pay attention to it otherwise.

Take search for example. Today we see search as “obviously” the most valuable real estate on the internet, but it wasn’t at all obvious when Google started. Recall that Google was the 25th search engine, launched when Yahoo dominated the skyline. Google didn’t even attempt to compete in the public search engine space and instead was focused on enterprise search appliances (a business model that failed spectacularly, by the way). They couldn’t raise money, and couldn’t sell the company, not for even $1M.

It was only in desperation that Google was forced to see what we now realize is obvious: an individual’s search history for tells us an enormous amount about their past preferences, their current concerns, and their future needs. This realization led not just to AdWords, but to a company built on data aggregation and normalization — a company that scours the internet (and the physical world) for anything it can possibly learn, indexing it for easy access, and offering it back to the user at a keystroke. That in itself is why Google would be the first to develop a true ambient service as they’re the only ones with enough data and awareness to pull it off.

What’s Next?

As for who does it next, clearly other search engines will follow suit. However, none of them currently know more than Google, so none can really hope to compete with Google Now. Rather, you need to find someone who is aggregating and normalizing vast sums of previously inaccessible data — data that Google isn’t indexing — and presenting it back to the user for action wherever they are: at home, at their desk, and on the road.

As you can imagine, I feel my own space is a pretty good candidate for ambient services. We’re working hard to make that future come true, but I’m sure we’re not alone. Regardless, somebody’s going to crack ambient services – probably several parties – and optimize it for different contexts based on the ambient awareness those parties have already obtained. Whether in a few months or a few years, who can say, but someday soon we’re going to look back on today’s cloud services in the quaint way we look at yesterday’s desktop applications.

Personally, I can’t wait.

This is my guest post written for LinkedIn Pulse, enjoy!

boss-hoggEverybody loves to rave about the bossless workplace, but it’s far more easily said than done. I’ve already written about the perils of the “flat management mutiny” — which comes as you emerge a leadership structure out of flat chaos — but it’s even harder going the other direction: dismantling an over-managed “top-heavy” structure and getting back to its roots. Here are some tips to pull it off in your organization:

  1. Identify your managers. This is easy: your managers are the people you put into management positions. You should already know this.
  2. Identify your leaders. This is actually quite hard. The difference between a manager and a leader might seem subtle, but couldn’t be greater: employees are assigned their manager, but they choose their leader. Figuring out who an employee actually looks up to is tricky because if it isn’t their manager, the mere acknowledgement of that fact forever changes the relationship between them and their manager — for the worse. Accordingly, the best way to do this is through very careful observation and casual conversation: body language is a key signal, so a pay attention.
  3. Identify the gap between your management and leadership structure. As immortalized by Alfred Sloan, “Good management rests on a reconciliation of centralization and decentralization.” Management is centralized, while leadership is decentralized. A great organization has the narrowest possible gap between the two: the organic, informal power structure that emerges naturally through working relationships should coincide as close as possible to the formal, top-down assignment of authority and responsibility. Or more succinctly: people should respect their managers, and if they don’t, bad things happen.
  4. Fire the bosses. A “boss” is someone who has been granted formal authority, but hasn’t earned the respect of their subordinates. Bosses aren’t leaders because employees wouldn’t choose to follow them if given an alternative: their authority comes from above, not below. Once you’ve identified the bosses, immediately begin laying the groundwork to fire them. First, however, you need to groom someone to step into their place. Toward that end…
  5. Promote your leaders. A “leader” is someone who has outsized influence beyond their formal role. It’s the person who their peers wish were in control, but isn’t because you haven’t noticed them yet. Notice them, engage them, and figure out how to encourage them to take on the authority that they deserve but haven’t made a point to ask for (which is why you didn’t know). It’s likely they haven’t asked because they are good team players (and thus don’t want to undermine their “boss”), and don’t crave authority — in fact, they’ll likely resist it. Leaders don’t ask to lead, they just do: they don’t seek out power, which is what makes them ideally suited to have it. Figure out how to craft a role that grants them broad authority over those tasks they are comfortable and willing to do (and that their peers will support), but that doesn’t force them to take on other responsibilities they might not be comfortable or willing to handle. Flexibility here is the key.
  6. Be decisive. Nobody benefits by you putting off the inevitable. The longer you wait, the greater chance your leader will take one of the job offers they are unquestionably receiving, leaving you with no way to replace the boss. Not only that, the longer you wait, the more likely the boss will take one of the job offers they are likely also getting, which undermines the authority of the leader you want to promote — it disempowers the promotion by making it seem reactionary, even if you had already planned to do it. The moment you make your decision, buck up and do it.
  7. Be honest. This isn’t about subterfuge — it’s about dealing with reality as it is, rather than how you’d like it to be. Nobody wants to be just a boss: they want to be a leader. They want the respect of the team, and if they haven’t earned it, they likely want and need your help to either get it, or change their role. If it gets to the point where you need to make a firing decision, always remember that it’s your fault, not theirs: you picked them, you put them in a role they weren’t suited for, and it’s your responsibility to make that right. That might mean another chance, career training, or a generous severance package. But at the very least, it deserves an honest explanation of the way you see it, such that they can learn from the experience. They might walk away thinking your an idiot. (In fact, they probably will.) But better that than them forever thinking of you as a liar.

It’s not fun, but firing is a major part of hiring. It’s better for you, better for your employees, and — in all honesty — better for them. Everybody I’ve ever fired has subsequently found a position that was better suited to them, and so long as you’re only hiring great people to start with, they will find that job very, very quickly.

David Barrett is Founder and CEO of Expensify (“Expense reports that don’t suck!”) and a frequent contributor on CNBC, Bloomberg TV, and Fox Business News. Expensify is always hiring awesome people, and would love to hear from you.

What do you mean we can't build it?

What do you mean we won’t support that customer?

Note: This is my guest post, originally published in Pando Daily.

Flat management structures are all the rage, and with good reason: innovation is the lifeblood of a startup, and nothing kills innovation like micromanagement. But scaling a flat management structure is harder than it seems. Plenty has already been written about the risks of accidentally creating the stuff of highschool nightmares, but even if you dodge those bullets you’re in for a little discussed treat: full out mutiny of your team.

Granted, if you do consumer or pure-SMB products, you might avoid this fate. The easiest form of innovation is “scratching your own itch”, and so long as you represent your own idealized customer, more sophisticated innovation might not be needed. But if your product is relevant to mid-market and true enterprise customers, then you will inevitably be faced with a very difficult moment that will shake your company to the core: the moment your first customer 10x larger than you expresses serious interest.

Prior to then, management is actually very easy — superfluous even. Everybody just does whatever feels right, and so long as you are disciplined about hiring smart people who work well in teams, “what feels right” is near enough to “what the customer needs” that there’s little reason to try harder. But scaling your product up to address the needs of a significantly larger company requires addressing needs that your team doesn’t have. This means if you want to get that customer, you need to scratch someone else’s itch. And a purely flat structure is notoriously ill-equipped to handle this. In my experience, it goes down like this:

Sales: “OMG I think customer X will actually buy us, but only if we do Y.”

Engineering: “Even though Y isn’t actually that hard, building it means overcomplicating the product and ruining our culture, so no.”

Sales: “…”

Handled poorly, this can lead to a full blown mutiny where your salespeople feel betrayed by your engineers, your engineers feel sold out by sales, and everyone starts drawing hard lines backed up by serious threats. And because the flat management structure has no… structure, the tools at your disposal to quiet the mob are very limited. It’s a pretty horrible experience, all resulting from the grievous sin of successfully creating something of significant value to unexpectedly large customers.

Having gone through the valley of death and come out the other side (multiple times), here are some common patterns I’ve seen that you might look out for:

    1. Your people are awesome, it’s your structure that sucks. It’s hard to remember this when people start raising crazy and irrational objections to each others’ reasonable (or even obvious) concerns. But never forget that flat management is a conscious choice to not create a well defined, widely accepted vision based on a shared set of complex assumptions. Said another way, flat management is about avoiding the need for agreement on a huge range of issues by just accepting (and indeed thriving) on disagreement: when everybody just does what they feel is best, there’s no incentive to really care if anybody else agrees — or a process to achieve it if they did care. Flat management encourages creative disagreement and, in my case at least, mission accomplished.
    2. Mutiny strikes without warning. What makes this whole circumstance especially complicated is it comes like a lightning bolt, out of the blue. Everything is fine and everyone is happy one day, and then suddenly you’re faced with an unexpected but very significant choice: do we do what it takes to get this larger customer, or not? But even though you didn’t ask to make this decision, you’ve got to make it — and no matter which way you go, people will disagree. Vehemently.
    3. There is no such thing as “status quo”. The fact that you are making this decision indicates that a change has already happened. Yesterday taking on a 10x larger customer was just a hypothetical possibility. Today it’s a realistic opportunity. There’s no undoing that change.
    4. If you don’t take the opportunity, your salespeople will hate you. They spend their every waking moment trying to convince someone to use your product, against all odds. And it’s one thing to try and fail. But to succeed and be denied support? Your best people will quit.
    5. If you do take the opportunity, your engineers will hate you. They spend their every waking moment trying to improve the product as best as they can imagine, no matter how grueling, and how difficult. And it’s one thing to struggle building something they believe in and use. But something they don’t believe in and will never use? Your best people will quit.
    6. The longer you delay, the more everyone hates you. Even those who aren’t especially passionate one way or the other (and these are often your best people), they are passionate about working someplace they enjoy — and nothing about a mutiny is fun for anybody, including the mutineers. Your best people will quit.
    7. Once the mutiny has been quelled, it just happens again. Whether you take or pass on this opportunity, more opportunities will come your way (hopefully). And each time you get an opportunity an order of magnitude larger than the ones before, the cycle repeats.

So what to do about it? I wish I knew. We’ve experienced this cycle about three times so far, and I’m anticipating a fourth as we start engaging our first 100K employee accounts. But luckily, each time gets a little easier, because in practice: this is a great problem to have. The fact that you’re facing this is a sign that your team is great and you are on the right track — and when those things are true, the rest sorts itself out.

Granted, it doesn’t always sort out as well as you’d like: no matter how you decide, some people just can’t get on board and will either leave or need to be removed. But if properly managed, your best people will stay and you will leave the chaos a stronger, more talent-dense, and better team than you entered. Great teams step up to any challenge, and that includes adjusting for new realities.

Because at the end of the day, the whole “flat management structure” you thought you had was actually a mirage all along: there was always a power structure, just not one you formally recognized. Use this opportunity to recognize your best and brightest, lean on them to help you make things right, and like bones forming they’ll get stronger the more weight they carry.

It’s not a fast process: you can’t drink Skele-Gro and get a hardened management structure overnight. (And unless your team has the healing powers of Wolverine — or can’t find better jobs — injecting a structure from the outside is a recipe for instant death.) Just be patient and use your position of authority to clear away the smoke, engage your natural leaders to put out the fires, and slowly step back as they slowly step forward. Over time you’ll graduate from “flat management” to becoming an “agile enterprise” organization that can scratch its own itch and address the critical, repeatable needs of ever-larger customers.

It requires patience and resolve. But the earlier you start on a gradual path of controlled evolution, the better prepared you’ll be for sudden, unexpected revolution.

Editor’s note: This is a guest post by David Barrett, Founder and CEO of ExpensifyThe post went through PandoDaily’s usual editorial process. Mr Barrett was not paid for this post.

But with less walls and and more coding.

Our challenges have fewer walls and and more coding, but same idea.

It’s widely repeated that “great people are 100x more productive than average people.”  But while everybody says it, most companies just hire 100x more average people. At Expensify, we try very, very hard to hold the line and only hire people we think are truly great. This means that despite ample resources and more than enough work to go around, we hire extremely slowly — and spend an enormous amount of energy doing it.  A lot of that energy is directed toward refining the hiring process itself, with a major recurring topic being: what makes someone great?

Last week we had a long conversation on this within the engineering team, and the main conclusion was — there is nowhere near consensus on this topic.  Strong, conflicting opinions were held across the team.  I don’t know that there was a single tangible item that everybody agreed was a true minimum requirement, or a true showstopper.

Accordingly, so far as our “official hiring policy” goes, we’re still far from having a checklist evaluation of candidates.  For better or worse (and I’d argue “for better”), everybody is evaluated on an individual basis, and pretty much any single attribute is fair game.  However, it seems to me that there are three general themes we use to assess the “minimum viable employee” — whether someone meets the most baseline requirements for us to say yes:

Aspires to Excellence

In our team conversation last week, we reviewed a series of programmer applications to share thoughts on each.  To everybody’s surprise, by far the most discussion was on something that seems so trivial on the surface: grammar, punctuation, and capitalization of the cover letter.  Everybody kept saying “ok, we’ve talked about this enough”, but then everybody kept talking.  It was strange, and we intentionally stopped to meta-discuss why we were so concerned by this.  We tossed around a couple possible explanations for why this seemed so important (to some of us), and like everything, there was no consensus.  But my view is this:

Someone who doesn’t proofread and spellcheck something like a cover letter simply isn’t trying their hardest.  Whether they don’t care enough to try, or don’t try even when they do care — either way, this is someone who isn’t putting in the effort to excel, and that’s not someone we want on the team.

To be clear, this isn’t to say that grammar is the sign of excellence.  It’s only saying that poor grammar signifies a lack of excellence.  Other items can too, including:

  • Being late for a call (even by a few minutes)
  • Being slow or failing to respond to an email
  • Inconsistent indentation and other style
  • Poor variable nomenclature
  • Terse answers to open-ended questions
  • Lack of enthusiasm or curiosity

Note how none of this relates to skill: everybody “knows” how to do all these, and to not do them is a choice. Because in practice these aren’t individual choices, but one large choice — and this decision to consistently excel in everything under your control is very nearly an innate quality. Either you do it, or you don’t, and no amount of cajoling is going to change that (at least, not fast enough for our needs). And for this reason, I’d say any indicators about the candidate’s aspiration to excellence weigh extremely heavily on my go/no-go decision, and for many others on our team.

Knows Enough to Learn Fast

It’s hard to say that this second item is less important as the first, as both are necessary but insufficient: you need to both demonstrate that you aspire to excellence, and have also acquired the basic skills to enable you to achieve it.  As for what exactly those minimal skills are is a subject of intense debate.  Most of the team would generally say we shouldn’t hire anyone with less skills than they had when they joined, and some would even say their own skills are too low a bar. But from where I sit, I think the minimum set of skills – for a programmer, at least – is something like:

  • Can create something from scratch. There are a surprising number of pretty good programmers that haven’t ever started a project from scratch, and don’t actually know how. This means setting up some kind of development environment and getting “Hello world” to successfully run in some relevant language.
  • Doesn’t need a framework.  Don’t get me wrong, the right framework can be a huge accelerant to a project.  But it’s important to avoid becoming overly dependent on any particular framework otherwise you lose objectivity – and use it not because it’s actually right for the problem at hand, but because you simply can’t do anything else. So knowledge of a framework gets bonus points, but the ability to work outside a framework is a prerequisite.
  • Successfully finishes the challenge. It sounds obvious, but if we give a programming challenge with an unlimited timeframe, we expect the candidate to deliver a functioning result. It’s amazing how many people send something that simply doesn’t work.
  • Actually writes their own code. Additionally, it’s clear that many applicants just copy/paste snippets they found online, without even the decency to hide it by reformatting it into a consistent style. Certainly, the ability to leverage the internet to help you solve problems is a great skill. But learning and applying a lesson is different than copying a code snippet without understanding.
  • Reuses code appropriately. It’s not enough to create a functioning result, it also needs to be done in a way that minimizes redundancy. This means pulling out shared code into reusable functions, reusing rather than recalculating outputs, etc. Great people are naturally efficient, making minimal, deliberate actions to achieve their goals.
  • Makes sound layering decisions. Knowing where to solve a problem is at least as important as knowing how.  The ideal candidate intuitively recognizes those areas that are tightly coupled and should be kept together as a single unit, from those that are loosely coupled and should be isolated through formal interfaces.

And for me, that’s really about it.  I think a fantastic application is one that has a solid, obvious solution, with consistent style, good layering, and appropriate reuse.  A great application doesn’t need to do much.  But what it does, should be done right.  This shows the candidate has a solid, clean foundation on which new skills can be quickly learned.  Because in the fast-changing world of computer programming, how much you can learn is far more important than how much you know.

Knows Little that Needs Unlearning

This last item is at least as important as the first two, and since those were deemed “necessary but insufficient” I’d say the same about this.  Even more important than what you need to learn, is what you need to unlearn.  It’s at least twice as expensive (but probably more like 4x) to unlearn a bad skill than to learn a new skill from scratch.  This is because the cost to learn the skill is the same, but then you need to add the “unlearning cost” — which is probably more expensive than what it took to learn in the first place.  Here are a few hard habits to break for which we’re always on the lookout:

  • Overengineering.  Defensive programming to anticipate and handle a wide range of scenarios can be great.  But it’s easy to go too far, creating custom logic for scenarios that are extremely unlikely in practice, complicating the solution (and often introducing bugs) for the much more common cases.
  • Excessive encapsulation.  Abstraction is a powerful tool for reuse, as well as to create layered decoupling.  But done poorly, “unused reusability” can add such bloated and complicated overhead so as to leave the codebase larger, more fragile and less understandable than before it was “simplified” with abstraction.
  • Premature optimization.  It’s good to be efficient, and to naturally take advantage of low-hanging-fruit performance opportunities where convenient and clear.  But the most important thing to optimize for is code clarity, and that should only be compromised when genuinely necessary.
  • Unnecessary cleverness.  Modern languages have a huge range of esoteric features that enable for enormously powerful and succinct solutions.  But great candidates amaze with simplicity rather than sophistication.

Admittedly, all of those bullets are really just different flavors of the same thing: solving problems that don’t actually exist, while creating new problems in the process.  It’s insidious, as good programmers can imagine a wide range of potential future problems – ranging from performance, to maintainability, to extensibility, and more – and the temptation to solve them all right now can at times be overwhelming. But we need people with strong impulse control who can remain focused on solving the problems of today, without adding to them unnecessarily.


Anyway, I think these are three high level themes we use when evaluating a candidate. So if it wasn’t already apparent, note that where you went to school, what degree you have, where you’ve worked, who has referred you – none of that matters, at all, and I think that’s the one thing we all agree on. However, getting more detailed than that is extremely contentious, and despite how helpful it would be, there really is no such thing as a clear “minimum viable employee” so far as we can tell.

So if you want to impress me, keep the above criteria in mind.  But in all honesty, I’m not the only one (or even the most important one) you want to impress – so view my suggestions above as “necessary but not sufficient” to get the job.

Imagine you ran a coffee shop with great coffee, a cool vibe, comfortable seating… and no customers.  Not an uncommon problem, and the classic solution promoted by social media experts would be something like:

“Create a Twitter handle and offer discounts to customers who follow. Broadcast weekly events and promotions via Twitter and engage with your audience to encourage them to come and bring their friends.  More discounts to people who get their friends to follow.  Create a mailing list; Tumblr; Facebook page; etc, etc.”

It’s an alluring prospect, that no matter where you are, using online social media tools you can tap into a global audience, create a network of influencers, and drive people to your coffee shop in droves.  The only issue?  I frankly doubt you’d get even a single customer out of it.  It’s all reasonable, common advice.  I just don’t believe it would work.  My advice?

“Stand outside your coffee shop, up the block a bit.  Watch the people who come by.  When you see someone who looks like a potential customer, approach them and ask in a friendly, non-confrontational way: Why didn’t you come in?”

I wager in the first hour you’ll get at least one real customer, dozens of potential customers who are much more likely to stop by in the future, and a hundred tangible ideas on what you can do right now to attract more business:

  • Did they not like the vibe?  Redecorate!
  • Did they doubt the quality of your coffee?  Emphasize the roaster’s brand to demonstrate quality!
  • Did they just not notice you?  Put an A-board out front with an arrow pointing at your store!
  • Did they not want to go to an empty place?  Promote free coffee whenever you’re empty to anyone who comes in and sits for an hour!

The problem with “social media” is that you actually don’t care about a global audience: whatever you are, you want a very, very localized audience. The most important audience of all are the people who stopped by, checked you out, and walked away. Just ask them why, and let that guide you. Granted, I’ve chosen a physical example of a coffee shop to illustrate this idea, but as I imagine is obvious: the principle is exactly the same for your website. The fact that “the internet” has billions of people is irrelevant to your service — the handful of people who actually visit your site are the ones that matter the most. Again, everybody would agree with this, but what would the classic social media advice be? Probably to use the same sort of bland strategy the fictional coffee shop owner would follow — and probably with the same (lack of) results.  Instead, my advice to you would be:

“Do everything you can to talk with your visitors.  Put a giant sign up button on the homepage requiring nothing but an email address.  If that doesn’t work, just have it open directly to a chat window with you logged in ready to talk.  Ask them why they came, what they’re looking for.  You’ll be amazed what you hear.”

It sounds so obvious. It’s so easy to do. Yet, nearly nobody does this. Luckily, we did, and I count as one of the most important techniques we ever used to get real world customer feedback. I literally believe that had we not done this, Expensify simply wouldn’t be here today. Our initial assumptions about what people cared about were so far off, in so many directions, that had we not a tool like this we simply wouldn’t have survived the first year and never become the leading brand we are today. Despite this being such a hilariously obvious technique, I’m almost embarrassed to say we only stumbled into the technique by accident:

  1. Our first homepage had a big sign up button on it that required only an email address.  (This is common now, but at the time it was really controversial: What, I don’t need to create a password? *mindblown*)
  2. Immediately after sign up, you’d get a fancy stylized HTML email with a bunch of information nobody would ever read, and a validation link that most people would never click.
  3. However, we had a system that every hour, would email everybody who signed up in the past hour.
  4. This system ran on whatever increment in the hour that we started it, so if we started it at 1:17, it would run at 2:17, 3:17, etc.
  5. Furthermore, this system only sent plain-text emails, and only using my actual email account (“David Barrett <>”)
  6. And the message, contrary to all marketing best practices, was extremely open-ended with no actionable link to click:
From: David Barrett <>
Subject: Welcome to Expensify!
Hi there! I see you just signed up for Expensify, welcome! Can you tell me about yourself?  Namely, what sort of work do you do, how big is your company, how do you currently do expense reports, how did you learn about Expensify, how do you hope to use it -- that sort of thing. Thanks!

Founder and CEO of Expensify
Follow us here:

A good response rate to an email like this is 2-3%. A great response rate is 5%.  But this email got a 12% response rate.  And not just any responses — pages and pages of thoughtful, priceless feedback, from people who genuinely wanted us to succeed. We were floored. Not only was the feedback inspirational and motivational, but it created long-term relationships with our champions that have stayed with us for the many years since. As for why it performed so well, I have a few theories:

  • It came a random duration after you signed up, on a random minute in the hour, so it wasn’t obviously an automated message.
  • This was reinforced by the fact that it was a simple text email.  Let’s be honest: nobody “real” writes well stylized emails with a formal greeting and logo — all it does is mentally flag you as spam.
  • It was written by me, and sent from my actual email address.  Hitting reply went straight to me, not some obvious mailbox. (Many responses would start with “You can’t have actually just emailed me for real, so I doubt you’ll actually read this and I’d be shocked if you actually replied, but since you asked here are my thoughts…”)

And most important of all:

  • It came on average 30 minutes after signing up. This meant that you received it right after your first interaction with the product, while it was still on your mind and your initial impressions were on the tip of your tongue, just waiting for someone to ask.

I can’t overstate how helpful this was in shaping the company, and building us into the responsive, user-focused company we are today. Clearly, this gets harder and harder to maintain as you scale — when I send out our newsletter to my millions of closest friends, I get a lot of responses. It takes a long time to go through them all, but I do because “social media strategy” isn’t about the media, and it’s only loosely about strategy. It’s really just about being social, talking with the people who like you (and those who don’t), and being responsive to those who matter the most to your business: customers, users, and those who might be some day.

A modern interview sessionBased on the sudden spike in applications we’ve seen, there are a lot of people out there with New Year’s resolutions to make the jump.  Before you do, I’d recommend asking your employer-to-be the following questions:

  1. How many people do you hire in a typical month?  Great people are just hard to come by.  I don’t know of any startup that can reliably hire more than one truly fantastic person per month, so if they’re hiring people in droves, they’re not getting the cream of the crop.  Hiring is easy if you don’t care who you get: make sure they care.
  2. Who was the last person to quit, and why?  People change.  Companies change.  Even amazing people and amazing companies.  A great fit one day might gradually become less great over time, and the best people don’t tolerate that for long.  It’s an awkward topic, but see how they handle it.  Are they defensive?  Introspective?  Do they throw their former teammate under the bus, or provide a thoughtful explanation?  Is the company better off without that person, or what did they learn and change in response?  Nobody likes to be dumped, but if it doesn’t happen sometimes, you aren’t aiming high enough.
  3. When do you intend to raise money, and why?  The worst answer is “we just raised so we’re not even thinking about it” — raising is something you should always think about.  A better answer is “we have X months of runway before we need to raise again” — this means they’re at least paying attention.  But the best answer is “once X happens in the business, then we’ll raise”.  It’s subtle, but this question is really determining if a company is burning investor dollars to survive (and without it, they die) or to grow (and without it, they just grow slower).  Is the company primarily financed by selling product, or selling itself?  To be fair, most startups linger one failed round from certain death, especially in the early days.  But be aware that until you are growing under your own steam, you are wholly dependent on investors for your survival — and investors don’t always share your vision.
  4. Can I see where I’ll sit?  This actually wraps up a bunch of questions into one.  Do they even know?  Do they have assigned seating, and if so, can you influence it?  Did you meet the people you’ll be sitting next to in the interview process?  Is it clean and is there natural light?  Is it quiet, or is there music, or just generally noisy?  And most important: is it a place you really want to sit 2000+ hours a year?  Your workspace is your home away from home, and there is an enormous range between “we just have an awesome office full of diverse regions and you can sit anywhere” and “here’s your awesome standing desk with big monitor”.  There are no right answers, but put some real thought into what’s important to you and make sure to factor that in.
  5. And last but not least: What do I want to do accomplish in my life, and how does this help me down that path?  This is one you should ask yourself — every day, about everything you do.  Our industry is unique in that anybody reasonably good can make money, and with a bit of luck you can make a lot.  But all the ways you can spend it get boring much faster than you’d expect.  Hard problems and cool technology will keep you occupied for a while, but there are always more problems and more technology, and eventually even those get old.  If you’re great — or if you want to be great — your motivations likely run deeper.  You have some kind of secret, quiet ambition that is so grand, so audacious, that you are embarrassed to say it out loud.  So big that even if you devote the rest of your life to it, you still couldn’t finish it.  But so important to you, that you genuinely want to try anyway.  Knowing what you want out of life dramatically increases the odds you’ll get it, so figure out what that is, figure out what’s preventing you from doing it right now, and then evaluate whether this startup is going to give you the tools to take the next step.  Maybe you lack money, or maybe it’s skill, but more likely you just lack the confidence that comes from being part of a successful team.  Make sure your next job is the launchpad for the rest of your life, and not just a landing pad with an extended layover.

I picked five to make the subject link click-baity, but really you should ask a lot of questions.  If you’re great, you can probably work anywhere you want.  Interview them as much or more than they’re interviewing you.  If they’re great too, they’ll recognize you’re worth it and thank you for the effort.

[Edit] Lots of great discussion about interviewing advice over at HackerNews.

You might recall that we added the option to reimburse Expensify reports using Bitcoin.  (It’s not widely used, but it’s no gimmick — Bitcoin is a great option for reimbursing international contractors without the expense or hassle of a wire transfer or PayPal.)  Literally the next day, Bitcoin exploded in popularity.  Whether or not those two events are related is unclear.  But what is clear is that the timing made Expensify the mainstream media face of Bitcoin.

Since then, I’ve spoken on BSkyB, Bloomberg, CNBC, and Fox Business News — repeatedly, for several minutes at at time, usually arguing against someone else, but sometimes speaking solo.  Ask anybody and they will tell you confidently that this sort of coverage is priceless stuff.  Primetime coverage to a global, financial-savvy audience for a finance-related product?  Any PR agency would tout this as the most tremendous success (and charge you a lot for the privilege).

But to my total surprise: it’s worthless.

Maybe “worthless” is an overstatement.  I’m sure the brand recognition is worth something.  And to be clear, the audience fit isn’t perfect.  The segment is only tangentially about us.  The audience is generally investors, and they don’t submit a lot of expense reports.  So I’m sure if I just paid a PR agency the hundred thousand dollars it would have cost to get this, they would have no shortage of excuses to explain why this supposedly priceless coverage isn’t showing any apparent results.

But the reality is, when we go on TV, nobody notices.  There are no tweets.  Our website sees no new traffic.  Customers don’t cite it as a reason they signed up.  It’s like crickets chirping.

Anyway, luckily we were able to run this experiment for free.  And don’t get me wrong: if you get the opportunity to speak on nationwide primetime TV for free, take it.  It’s a super weird experience if nothing else.  But if you’re a startup with a tight budget, don’t believe the hype.