Archives For CEO Friday

Crazed ramblings by the CEO.

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.  (And 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.)  But 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 coffeeshop 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 coffeshop 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 coffeeshop, 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.  And 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 coffeeshop 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 coffeeshop 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 signup 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.  And 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, 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.

But 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 signup 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 signup, 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 newletter 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.

Speaking live on nationwide TV is about the most chaotic, stressful, underwhelming, and anti-climactic thing I've ever done

Speaking live on nationwide TV is about the most chaotic, stressful, underwhelming, and anti-climactic thing I’ve ever done

When I started Expensify, I had no idea being a CEO involved talking so much, to so many people, on such a wide array of topics.  Whether it’s a chance encounter in a hallway, keynoting a conference, or being woken up by CNBC with an offer to debate Howard Dean about whether the FEC should accept Bitcoin (answer: yes), you never know what opportunity will come up — and it’ll pass you by if you aren’t ready to jump on it without notice or preparation.

Prior to Expensify, I don’t think I’d ever been on stage or spoken to more than two people at the same time, but here are some tips I’ve come to swear by:

  1. Only memorize the first 5 seconds.  It’s tempting to try to memorize everything word-for-word, but unless your memory is amazing, you’ll probably screw it up.  Instead just make sure you are absolutely clear on how you’re going to start.  The start is the scary time: its when the mic turns on, the lights turn up, and everybody turns to you expectantly.  If you can get through the first 5 seconds, the rest is easy.
  2. Practice a lot of dots, and then connect them in realtime.  Any presentation can boiled down to a few key points that the audience will remember.  They typically have concise, intuitive, and hopefully catchy phrasing.  (“Expense reporting is naturally viral: every time you submit an expense report, you submit it to someone more important than you — (dramatic pause) — your boss, your finance manager, etc.”)   Just memorize those specific phrases, decide ahead of time the rough order you intend to say them, and then do your best to fill the gaps in between with something that sounds reasonably smart and deliberate.  Over time you’ll build up such a library of seemingly off-the-cuff key phrases that you can fill any amount of time, on any topic, and sound reasonably intelligent doing so.
  3. Bring a drink on stage.  Something hot is ideal (coffee, tea) but even an empty cup will do.  Holding liquid in your hand will help you suppress the natural urge to gesticulate wildly — a surprisingly hard and distracting habit to break.  And best of all: whenever you need a moment to decide what you’re going to say (especially when you get a question from the audience), just take a drink.
  4. Slow down.  The faster you talk, the more you need to say to fill your time — and the greater the odds that you’ll run out of things to say and begin to panic.  I’m terrible at this, but make an explicit point throughout the presentation to consciously breathe deep and slow down.  The best presentations are cool, calm, and super super casual.

If I were to pick a fifth tip, it would be “take a shot before going up on stage”.  Seriously — it’ll calm your nerves.  And if the audience is getting bored, swear really loudly about something.  We’ve A/B tested it, and it’s a cheap trick, but it works.  Good luck!

Most VC pitches hinge on a key number:

Return On Investment (ROI) = LifeTime Value (LTV) / Cost to Acquire a Customer (CAC)

And I can’t blame them: VCs are in the business of selling money.  They want to know that if they sell you their money (paid for with equity), it’ll be put to good use.   This is more true today than ever because startups are so cheap to run anymore, meaning the only realistic way you can spend millions of dollars is on customer acquisition.

But the open secret that has taken me years to learn is this: it’s all bullshit.  Yes, all startups do present those numbers (you can’t not), and some even believe them.  And the more confident (or deluded) you are by those numbers, the more aggressively you can bet (excuse me, invest) into it.  But in the vast majority of cases, for the vast majority of successful startups I’ve researched (both old and new), the numbers are total crap.  Again and again, I see:

  1. LTV is usually infinite.  The easy place to start is estimating LTV = Monthly Churn / MRR.  But monthly churn is always super erratic (due to the law of small numbers) and MRR is always changing (hopefully going up), meaning due to “accumulation of error” the statistical relevance of that number is so low as to be useless.  Furthermore, even if it wasn’t useless, oftentimes that method of estimating LTV is flat out wrong.  If you have a large variance in your MRR (for example, Expensify has customers who pay under $5/mo to over $5K/mo — all for the same basic product) and low churn amongst real customers (versus those who just did a “paid trial”) you might find yourself ending up with “negative revenue churn”.   This means that the people who stay continue to pay you more over time than the people who leave, indefinitely.  Which means your LTV is, effectively, infinity.  Which isn’t nearly as awesome as it sounds, because it’s immediately discarded out of hand as impossible.
  2. CAC is usually zero.  Most freemium businesses (and many of the top non-freemium businesses) don’t pay for leads — or if they do, pay for them in ways that are completely unquantifiable.  (Dig in to Intuit, Xero, Yammer, Box, Atlassian, Salesforce, or a dozen others and you’ll typically find that less than a third of marketing spend can be attributed directly to new revenue.  Nobody likes to admit it, but in most cases — especially for the most successful businesses – marketing is largely of matter of faith.)   But again, like an infinite LTV, having a zero CAC isn’t actually that awesome because it doesn’t mean your leads are actually free (in a non-marginal sense), but rather that you don’t have any realistic way to buy more.
  3. Therefore, LTV / CAC = Infinity / Zero.  What does that even mean?  I have no idea, but that’s what the math says.

The dirty secret that I think is gaining more traction in Silicon Valley is that the classic metrics we’ve all grown up with aren’t making nearly as much sense as they once did.  You know you’re talking with a savvy VC when they don’t freak out when your business doesn’t fit these outdated formulas.  You know you’re talking with a great VC if they don’t even ask outdated questions in the first place.

It’s very fashionable to quantify every aspect of your business to the N-th degree.  It sounds great in cocktail conversations to rattle off CAC, LTV, retention rates, magic numbers, and a host of other variables — and to extol the virtues of A/B testing every single thing from day one (or even before).  But beware getting too reliant on data, because when it comes to your most important and difficult decisions, it won’t be there to save you.  This is because startups are trapped between a rock and a hard place:

  • You’re new to the market and thus can benefit the most from real world data…
  • … but you’re new to the market, and thus have the least real world data to study.

You can approach this dilemma a few ways:

  1. Trust the competition.  This is based on the belief that success can be learned by emulating the success of others, and then beating them at their own game.
  2. Trust your data.  This is based on the belief that success comes by careful analysis of reality.
  3. Trust your instincts.  This is based on the belief that you are smarter than the next guy.

The challenge with the first is if it’s right, you’re screwed.  You might catch up to the competition by copying your rivals, but when you get there, you’ll completely lack the skills and organization for taking the lead.

The challenge with the second is, if it’s right, you’re screwed.  If all you can do is wait for the data to come in and let it make your decisions for you, then you can’t ever achieve the “escape velocity” necessary to get something out into the real world to begin gathering data.

Accordingly, I feel the third option isn’t just the best option, it’s the only option.  No matter what the topic is, if you’re faced with a difficult decision, it’s because you don’t have enough data to make it obvious.  But by the time you do have the data (assuming you ever get it), it’s too late.  Someone else who will have already seen the opportunity and taken it from you.

To be clear, your instincts will often be wrong.  But success isn’t about being right 100% of the time, it’s about making decisions that are just slightly faster and slightly better than everyone else around you.  At the end of the day, there’s no better data than data that’s telling you something you’ve tried is succeeding or failing.  But you’ve got to trust your instincts first to go out and get it.


masterapprenticeI gave a talk this week at DreamForce called “The Entrepreneurial Instinct” (they picked the title) largely about the importance of trusting yourself and doing your own thing, and expanding on the ideas in this TechCrunch guest post.  One of the attendees wrote me with this question:

One thing I wanted to ask you was if I work in a company where I am not a senior level exec, capable of making the decision to experiment on ways to get our product to rapid adoption, how do I go about convincing them to just try something out?

Here’s how I responded:

It’s a tough challenge, “managing from below”. I’ve used a variety of techniques when in that position, none of which are great:

- Just do it. Better to beg forgiveness than ask permission. However, this only works in areas over which you have total control and require no outside support.

- Selective obedience. Become a ratchet: stand your ground while waiting for someone to say something that can be interpreted as support for your position, and then use that as justification to move forward. Even if a compass is giving random directions, you can “follow it” anywhere you want by only giving it attention when it’s pointing the way you want to go.

- Creative misinterpretation. Most people are poor communicators and thus hold unstated assumptions, make ambiguous assertions, and generally fail to present a cogent argument. This gives you a lot of “wiggle room” — find a way to repackage your idea in a way that matches the outlines of what others are presenting.

- Master/apprentice inversion. People in charge love to feel like they’re in charge, but hate actually doing work. Challenge them outright and they’ll crush you, no matter how good your idea is. So convince them your idea was THEIR idea. This works well in conjunction with selective obedience and creative misinterpretation.

But really, if you find yourself often turning to the above, you should be looking for a new job.  To be clear: everybody is irrational at times, and the above are really just techniques for remaining productive in the face of irrational opposition.  Even in the best environments, and with the best people, this scenario will come up more than you like.  But if you feel that it’s gotten to a level where you feel stuck in your career and can’t advance, best to start looking around.  Incidentally, did I mention we’re hiring?

Thanks for writing!

After sending this, I started thinking “Wow, that’s some really passive aggressive advice.  I wouldn’t want someone to use that advice against me.”  But on second thought, I realized: actually yes, I would.

Again, these are techniques for how to productively deal with irrational opposition in a way that minimizes conflict.  If you find yourself reaching for this tool in your toolbox, you’re already in a pretty bad place, and none of your options are good.  And clearly, you’ll always try (or should try) more overt and collaborative techniques first.  But if all else fails and you’re forced to decide between “giving up” and “fighting to the death” (both of which are bad), some of the techniques above might actually be the better compromise.

In my case, I hope you’d rarely find the need to use the above.  I believe myself to be a pretty good listener, open to new evidence, and generally foster a creative environment of empowerment.  But if there’s a scenario where all that falls down and I’m irrationally holding on to some idea, and you genuinely feel your idea is better: I want you to win.  Even if you need to use dirty tricks on me to make that happen.

Because at the end of the day, we hire great people with good intuitive judgement.  And whatever the issue is, odds are it affects you more than it affects me.  If I can’t convince to you to my side of the argument, you’re probably right.   And if my argument is so ambiguous and inconsistent that you can package your idea and make me think it’s mine — who am I to complain?  Nice job.

When you have a team full of smart, passionate people, total agreement on everything is never going to happen.  And as the team grows, me knowing, understanding, and personally approving of everything is just impossible.  Clearly, my job is to stay out of the details — and I think I’m reasonably good at that.  But if I fall off the wagon, and you find me foaming at the mouth over some detail that I don’t understand but irrationally care about, do what you need to do to win.

Either you’re right and eventually I’ll come around, or I’m right and you’ll do the same.  Either way, it’s better for you to move forward in a productive path than get blocked by my irrationality.  And I’d hope anybody else you might feel the need to employ the above dark tricks against feels the same way.



Expensify is unusual in many ways.  But one of our most well documented oddities is our habit of taking the whole company overseas for a month.  There are a huge range of reasons to do this: to work, to play, to finish off the year before, and to get inspired for the year ahead.  But regardless of your reason, here are some hard-learned tips for making the habit work for you:

  • Choose someplace far away, in every sense.  Aim for someplace on the other side of the planet, with a different culture, different climate, speaking a different language, with a lot of timezones and water between you.  The more “foreign” it feels, the closer it’ll push you together.
  • Try to achieve the triumvirate: power, internet, beach.  It’s easy to find any two, but getting all three can be tricky.
  • Pick someplace cheap.  It’s a great luxury to eat well, stay in nice places, and know you can buy your way out of any serious problem without breaking the bank.  Also, rent out your apartment (or even your office) on AirBNB to defray the costs.
  • Maintain a very light grip.  If you try to plan every last detail, you’ll go crazy.  Instead, just say “Meet at this cafe, in this city, in this country, at 10am on X date.  Figure it out.”  Some people will decide to come early, others at the last minute, but everybody will get there one way or another — and you don’t need to stress over the details.
  • Cover the flights, if you can afford it.  Have everybody book their flights and submit an expense report; it’s the single biggest expense of the trip, but people don’t have very strong airline preferences, so it’s a good candidate to pay for.
  • Leave the rest up to them.  The other major expenses are food and lodging, and though not big, they do add up.  But people have extremely strong preferences for what they eat and where they sleep, so this is best left up to them to pay for.
  • Take a whole month.  Less than that is too short to justify the expensive flight and jet lag.  More than that and people get antsy.  A month is just long enough to get sick of it, which is the perfect time to come home.  A good itinerary is 1 week in the capital city, 2 weeks on the beach, last week back in the capital.
  • Pack light.  Start with whatever you are currently wearing at this moment, but swap out your pants for shorts, your shoes for sandals (no socks).  Add a toothbrush and passport to whatever is currently in your backpack.  Buy a silk “sleep sack” at REI.  (It’s like a sleeping bag, but for hot weather — it keeps mosquitos away when sleeping.  You won’t need it most of the time, but when you do, you’ll be grateful.)  You literally don’t need more than that; anything more than that is just weighing you down.
  • Don’t pack anything in crinkly plastic bags.  They don’t sound so loud when packing them, but they are truly deafening when unpacked in a quiet dorm full of sleeping (or now, rudely awoken) people.
  • When your team is small (4 people) just do everything together.  Stay in the same hotel, eat the same restaurants, work in the same cafes, and go to the same clubs.
  • Accept that you’ll split up as the team grows.  Don’t fight it — just have a morning 10am standup meeting that pulls everyone together every day and sets the tone.  After that, just have everyone stay online and shout out where they are working that day, and they’ll cluster organically.  Create a shared Google Map where everybody marks good spots with outdoor power and wifi, hotels, good restaurants, etc.
  • Prepare to work offline, possibly a lot.  That means get a local copy of your servers running on every developer’s laptops so they can develop on localhost.  Set up Gmail/GDocs offline.  Download documentation for the languages and systems you use – PHP, JS, Underscore, etc.
  • Bring an extra laptop battery if you can.  (This is a major downside of having a MacBook Air.)  The best places to work aren’t always next to an outlet.  Alternatively (or additionally), bring a US extension cord.  Walgreens currently carries a nice white one with thee, three-prong plugs, that is pretty compact and rolls up nice.
  • Unlock your GSM phone ahead of time.  Get an unlimited data plan on arrival (usually surprisingly cheap) and tether.  Lacking that, you can likely get some kind of USB GSM modem, or even just a portable wifi hotspot.
  • Pick some large goal that involves a substantial majority of the team.  Ideally something you’ve wanted to do for a while but haven’t ever made the time.  Set a goal to have it done before you leave.  (Ideally you can release it before you leave, but better to do it when you return as it’s generally bad practice to ship major new features before hopping on a flight for 20 hours.)
  • Plan a group activity every weekend.  Scuba, hiking, rent some scooters.  Something outside.  The week is for working, but the weekend should be for playing.  It’s best if the company can cover this (because it’s a decision made on their behalf), but not critical.
  • Have a big finale dinner.  Find the nicest restaurant in town and get an unnecessary amount of food and alcohol.  You deserve it (but the company should pay).
  • Don’t tell your investors until it’s over.  Better to beg forgiveness than ask permission.
  • And the official term isn’t “workation” or “retreat” — it’s “offshoring yourself”.  At least, that’s what we’ve called it for the past 8 year’s we’ve been doing it (my last company and this).

Good luck to you, and please drop me a line to let me know how it goes!

The Road Not TakenThomas turned me on to a great article from Tim O’Reilly about things he’d do differently had he the chance to do it over.  I sent the response below to Thomas, and forwarded a copy to Tim — who encouraged me to share them with the world.  So, here we are:

Really great article. Obviously a lot of parallels there.

That said, I’m always leery of putting too much trust in people saying what road they should have taken — I’m more fond of understanding what roads were actually followed and worked in practice. It’s too easy to look back and say “I totally should have gone left at that fork in the road; I went right and it was horrible” not knowing that the other direction might have been even worse for reasons you can’t possibly know since you didn’t take it.

So most of it I feel is spot on — especially the parts on cultural management (as evidenced by us being here in Croatia). And that part about becoming cashflow positive strikes close to home: choosing to go profitable has definitely tested our mettle, and it’s easy to say how crazy it is that we didn’t do it before. But we forget that we are only able to do this now because we didn’t do it then. Had we tried to jumpstart this car any earlier, it’s very probable that we’d have just come to a screeching halt.

Similarly, while I really love how he compares the whole company to a handyman versus an engineer, I think he’s not adequately emphasizing that there is a role (or a time) for both. Engineering is fantastic when you are engineering — applying reusable techniques to solve defined problems with dedicated resources and adequate time. But so much of what a startup does is not engineering: the requirements are unclear, the techniques are evolving, and resources and time are reliably unreliable.

Similarly, engineering presumes a certain scale of the team working on it. As one simple example: engineers don’t build things. They design, they manage, but someone else actually swings the hammer. Handymen swing their own hammers. So if you can only have one person, pick the person who can design it and do it, all in a single package. Handymen have far worse best cases, but far better worse cases.

Finally, engineering presumes access to, obviously, engineers. But engineers (for the reasons given above) don’t join startups. That means startups are built by handymen — and handymen can’t suddenly transmute into engineers when it becomes convenient. It’s a gradual process that needs to be handled correctly at every stage, as asking handymen to engineer is as bad as the reverse.

So yes, engineering is great. And every company should strive to get to a point where they can support it. But premature engineering would be the death to most startups, and I think O’Reilly has the luxury of engineering precisely because they didn’t do it for so long.