Thank You Heroku, or “How To Eliminate Sysadminning”


I need to take a couple minutes here to do something I've been meaning to for along time: Thank Heroku for being so baller.

For those of you not in the know, Heroku is an all-in-one Ruby platform built on top of Amazon web services. If you're a Ruby developer, and you are creating a web application, I highly recommend checking it out.

I've been using Heroku on two applications, including JumpPost, which officially launched today via a nice writeup on the Thrillist NYC site and newsletter. I'd like to share a couple reasons why I love the Heroku platform and would advise any agile startup to consider using it to get their product launched quickly.

Heroku is fast
The same could be said for any well configured EC2 instance, but don't underestimate the words well configured. The smart folks at Heroku have fine tuned every layer of the stack from using the fastest web servers (nginx), caches (Varnish, Memcache), and load balancing strategies.

Heroku is scalable
At the core of Heroku's architecture is a pre-compiled version of your application called a "slug" which is ready to be deployed in seconds to as many instances as you desire. Expecting a big press hit, or noticing your request queue filling up, just type a simple command and add more resources in seconds. Your users won't even know.

Heroku is easy
To deploy you literally type one command at the command line. They provide add-ons for caching, email, DNS, performance monitoring, custom domains, etc…many of them free. 

Heroku provides killer support
Not only does the staff respond to tickets and support requests within minutes, but they go overboard to support the latest and greatest Ruby features. They're very active on the newsgroup, and they even provide sample code for how to best utilize their architecture. 

Heroku is cost-effective
People may argue me on this one, because at face value the cost is actually rather expensive (think 2x the regular price of AWS). But these people aren't taking into account the cost of their own time when it comes to sysadminning, troubleshooting, not the mention the cost of downtime. Heroku never goes down, and it eliminates the need to pay a sysadmin (or the time value of sysadminning yourself).

Heroku is beautiful
Don't believe me? Check out their pricing page (yes they know their demographic are samurai loving programmers). Navigating their site to manage add-ons, monitor performance, and scale up and down resources is a pleasure.

With all of the above, there are a couple downsides that people should be aware of. Proper SSL is expensive, and should your app face custom scaling needs or challenges then you are locked into their stack. Fortunately their stack is designed for large scale use. The Heroku folks are well aware of these concerns, and they're very open about what they're doing to improve the experience for all of their customers. For startups getting their product off the ground, the time savings early on far outweigh the cost of figuring out a custom solution later should your product achieve grand scale. In case you couldn't tell, I'm a big fan.

If you have any questions about the platform, don't hesitate to email me at

Why I release early

Many people know that I'm a big fan of the "release early, release often" motto that still echoes from my days going through YC as an early developer with Frogmetrics. When I launched Snapm I tried to live by this mantra as I built and released v1 in a little under a month. That proved to be one of the most valuable decisions I made as it allowed me to get plenty of feedback and early user testing way before anyone normally would have seen the working site. In my latest project, JumpPost, I attempted to push the boundaries of an early release even farther by rolling back the curtain as soon as the product did one simple thing. (The JumpPost background and story to be written about in a future post). Why do I do this?  A couple of reasons.

First of all, as it's been written about many times, there's no better substitute for customer research than real user feedback. I strongly believe that you don't know what your users want, and they don't even know what they want, until they're actively using your product. I've seen countless occasions where users demand one feature or component of a product (IT MUST WORK ON AN AIRPLANE!) only to realize that they have no use for it after it's been built. 

More importantly however, there's no better motivation to constantly improve your product, than to have a less than complete product out in the world. There's a saying among agile developers that, "If you're not embarrassed of your product, then you haven't released early enough." I'd modify that a little bit to say, "If you don't feel the obligation to your customers to be constantly improving your product, then you haven't released early enough." It's not quite as powerful as using the word "embarrassed", but I purposefully don't use that word because the last thing I am is embarrassed about releasing early. In fact I would say that I'm the opposite of embarrassed. I'm proud to have released early. I can't wait to push new changes and updates to the site multiple times per day. I can't wait to watch our users marvel at how they request a feature and it's implemented and released within days or hours. That's the stuff that makes you want to work.

It's easy to delay launching. There's always another "must have" feature to be built before you feel that you're ready. But it's hard to put yourself out there. I strongly recommend giving it a shot on your next project.

If you live in NYC and happen to be moving out of your apartment in the next 6 months, check out and list your apartment. You'll make $500 if it rents, and you'll hardly have to do any work.

Why I’m excited for Square vs Verifone: The Revolution

Normally I don't like it when startups describe themselves as, "Trying to revolutionize X." Everyone is trying to start a revolution, and very few companies really end up affecting massive revolutionary change in the world. Instead, it may be more appropriate to be honest and say that a startup is, "Trying to carve out a small piece of market X." After all, a small piece of a large market is generally good enough.

In the case of Square, the new mobile credit card processor from Jack Dorsey, I really do believe that there is major potential for a revolution brewing. I'm even more excited that Verifone rushed out PAYware mobile to compete, and force the pace of innovation and competition. The revolution that I'm looking forward to however has nothing to do with the ability to accept credit cards from a cell phone however. Instead it's about the changing paradigm of paying for things, and organizing all the information associated with the purchase.

Consider this lists of wants as catalysts for the payments revolution:
  • No paper receipts – why would I want a 3 inch piece of paper when I buy a soda?
  • Searchable online receipts tracked at the item level and not the merchant level.
  • Centralized online transaction manager containing said receipts so that you only have to go to one place to organize all your spending.
  • Automatic expense report generation and tie-in.
  • Electronic submission of expenses and receipts to IRS.
  • Don't have to carry 6 different credit cards.
  • Don't have to carry even 1 credit card.
  • Ability to pay anyone, anywhere.
To me the mobile payment hardware war that is about to be waged behind Square with it's smart founders and investors, and Verifone with it's enormous pockets and commercial connections, will be less about who wins the ability to accept payment on the iPhone, and more about the race for building a platform that can support all of the above from the consumer side. People use credit cards because they're convenient, but there's been very little iteration in the area for many years. Now all of the sudden there are new conveniences that customers are looking for, and whichever vendor allows businesses and individuals to provide their customers with the greatest level of convenience will have a good chance of creating a real revolution.

Justifiable confidence in your skill set means you have nothing to be scared of

Why are professionals with years of experience and talented work to show off nervous that amateurs and hobbyists will steal work from them? 

If they truly have the skill and experience that they are claiming justifies their price, then they shouldn't be worried about this at all. As I wrote in my last post, there has been an uproar lately among the professional photography community that up and coming amateurs and hobbyist photographers are undercutting them on price, stealing their work, and bringing the industry down as a whole. This is an especially sensitive topic to me obviously, as Snapm, aims to connect amateur photographers with paying jobs. However I argue that they are serving different customers, different needs, and that the price being charged for a job is determined by the market and not by an artificial point agreed to by the old guard.

Additionally, if you are truly talented, have years of work under your built, and have a portfolio of work and clients to show off in support of this, then the last thing you need to be worried about are amateurs stealing work from you. I liken this to the scare in the IT world that IT professionals are losing their jobs to outsourced workers overseas. Unknowing outsiders started advising against studying computer science in college because all programming jobs would soon be snatched up by overseas workers who could charge a fraction of the price. This thinking is wrong for two reasons.

First of all, the statement comes from a lack of understanding of what computer science really is. It is, contrary to common belief, not the study of computer programming. It is a rigorous background in abstract and analytical problem solving. It gives you the basis to solve problems that deal with system architecture, scaling, network administration issues, data model design, security, as well as the ability to implement solutions in all of these areas. The notion that someone with a strong computer science education is a replaceable programmer is most definitely false. This is supported by the fact that smart, experienced computer science minded folks are in high demand throughout industry as well as in the early stage startup world. You may be able to outsource some of the repeatable programming tasks, but when it comes to architecting your system, you need someone who knows what they're doing.

The second reason that I believe this thinking is wrong in the area of computer science, is that as companies take advantage of cheaper overseas programming for basic tasks, they become more efficient in the technology arena – and this leads to more technology. The more cutting edge technology or new initiatives they are taking, the more talented, intelligent people they'll need locally to architect and oversee the efforts. This creates "smarter" jobs. Sure the IT certified Java programmer may lose his coding job to an outsourced agency, but the jobs that are created will reward smarter more well rounded candidates, allow the companies to grow more intelligently, and the result will be even more jobs created in the future.

So how is this similar to photography? Any talented experienced photographer is ideally like someone with the strong computer science background. They've been studying their art form their entire life in an effort to get better, and there will always be work for them on the high end of the spectrum. Up and coming amateurs and hobbyists can serve the low end of the market, because they're happy to get some experience and fulfill roles where a professional wasn't affordable anyway. The amateurs are like the outsourced talent. They'll allow companies and individuals to accomplish their goals (of getting photos taken) more efficiently, but when it comes time for a bigger project or something incredibly important, the established pros should have nothing to worry about.

If a strong professional photographer is competing with an amateur, then they may want to question whether that particular job is something that is up to their standards anyway. Or if they have trouble convincing the client that their price is worth it, then perhaps their price is too high. Snapm aims to make photography accessible to those who wouldn't be able to afford it otherwise, and at the same time allow amateurs to gain experience and make a little bit of money. Magazines, corporations, and upscale wedding participants will still be in need to A-level talent, so spend your time learning what you need to in order to capture those jobs instead of competing with amateurs for work you don't want anyway.

Startup Marketplaces Keeping The Markets Honest

There’s been a bunch of buzz among internet photography communities lately about the hypothetical “$500 wedding photographer.” Does he have the right to undercut the competition so dramatically in order to make a living for himself? Or is he doing a disservice to the entire photography profession by offering his work at such a low price? There are of course, views on both sides, but many longtime professionals are adamant the undercutter is ruining their industry. 

But shouldn’t the price be determined by the market, and not by an artificial point agreed to by the industry brass?

My new startup,, is a marketplace that connects amateur photographers with paying jobs. Not unexpectedly, the reaction from amateurs and up-and-coming photographers has been positive, but the reaction from professionals has been incredibly negative, bordering on angry. The amateurs on the site are happy to charge $50/hour for jobs, whereas many pros are accustomed to making over $1000 per shoot and upwards of $5000 for a wedding.

These professionals are worried that the young up-and-comers will take work from them. But should they be? If they are providing a superior product (much higher quality photography), at a price that the market can bear, then they should have nothing to worry about.  Believe it or not, I’m the first to recommend to people that for a once-in-a-lifetime event like a wedding, they should hire a proven professional. It will be worth it, and you’ll notice a clear difference. But there are plenty of other events where no matter how important it is, there’s no way to afford or justify a $300/hour photographer. It’s these occasions where hiring an amateur at a much lower price isn’t taking any work away from a professional at all, and instead is creating a new opportunity to use a service that wasn’t affordable before.

Long Tail Marketplaces As A Growing Trend in Startups

I have seen these lower end markets as a growing trend in startups over the past few years, and it’s a trend that serves the consumer well and keeps markets honest on the whole.

In the case of Etsy, longtime professional jewelry designers can’t be excited that people are buying homemade craft-jewelry from do-it-yourselfers over the internet. And hotel managers definitely can’t be thrilled by the prospects of travelers opting to rent people’s extra bedrooms through Airbnb when traveling to a new city. Much like pro photographers aren’t jazzed about people booking hobbyists through Snapm to shoot portraits of their families.

But what the high end jewelers, proprietors, and photographers don’t seem to get is that in these cases the option isn’t between paying for a professional or paying for an amateur, the option is between paying for an amateur, or not paying at all. There will always be customers who will buy the fancy jewelry, will spring to stay at the Four Seasons, and will book the experienced wedding photographer. But there will also be people who wouldn’t buy jewelry that cost over $30, wouldn’t travel to New York City if they didn’t have an apartment to crash in for under $100/night, and wouldn’t hire a photographer to shoot their Christmas party if they couldn’t find one for $40/hour.

If professionals are looking to compete in these lower end spaces, then they need to get honest with themselves and appreciate what the market is willing to pay, instead of artificially trying to manipulate prices through pressuring their less-experienced colleagues.  Provide a great service, and you’ll succeed, and make plenty of money in the process. But if you’re worried that people will opt for amateur level service over what you’re offering, then maybe you better take a good look at the work your producing and make sure that you’re really charging people what it’s actually worth.

Trying to keep prices artificially high is a remnant of the pre-information age. It’s fighting an uphill battle that will inevitably be lost. With Craigslist, and startups like Etsy, Airbnb, and Snapm, consumers now have access to true price points that work for both the buyer and the seller. And what was once never an option, is now as easy as point, click, pay.