Arthur Chang

Entrepreneur, Software Engineer, and Photographer
Apr 16

Google+ Photographer's Conference

_DSC5889.jpg

In May, the very talented Scott Kelby and other great photographers are putting on a first ever photographer's conference centered around the Google+ service.

The people behind the conference are actually good photographers who have genuine track records of doing things to help the photo communities.  I've met and talked to a few in the past, followed their careers, and have nothing but good things to say about all of them.

Aside from good reputations, there's still all the usual characteristics of conferences.  Most try to cover very general topics to appeal to as wide of an audience as possible, meaning there's a good chance you won't attain any new knowledge or experience that you could not have otherwise gotten somewhere else in a cheaper and easier way.  Also on the agenda is to push some support for a product, which in this case is definitely the Google+ platform as well as gaining more awareness for the photographers speaking at the conference.  All good things of course, and with a possible realization that you're being suckered into helping these guys become more successful than they already are, you have to take into consideration that this is their passion and their careers, they're first intentions are to help others before gaining more recognition.  You have to respect and understand that they're going way out of their way to do something that helps everyone.  The success of a conference is defined by the ability to balance promotion with education.

But it's not all about promotion and education, there's a huge networking aspect at conferences.  To make the most out of a conference, setup your own agenda.  What workshops and speakers will be most appealing to you?  Can you meet with some photographers or industry leaders on off times?  What is your exact goal?  Learn new techniques, build your G+ brand, or just join in the hobnob?  If you have a clear agenda you'll be more likely to get a lot out of the conference.  Networking will probaby be your most valuable take away.

Definitely don't approach this conference, or any conference, with the idea that you're just going to go, sit back and enjoy.  A passive approach is a waste of your time and money.  You can easily meet with the same or other fantastic photographers on free photo walks and watch their podcasts and Google+ hangouts.  All the tips on how to build your brand and increase your G+ abilities can also all be found on the web.  Using a conference as your only launchpad to really get your skills up on photography or using a tool is silly, especially in the wealth of information that today's technology allows for.

My approach to the conference, if I decide to go and take time off from my non-photo related dayjob, is to learn from all the photographers who attend.  I will try to meet and talk to as many as I can, those who I know to catch up with, those who I know of to formally meet, and all my friends to just hangout and have a good time.  I want to see what the current state of photography is in, in terms of what technology and innovation is currently allowing for.  I'm not talking about the tools of taking photos, but moreso the services and technology behind what happens after the photos are taken and processed.  Photography, especially for photographers who use Google+, is a lot more than simply taking great photos and leaving them on a harddrive somewhere.  Photography is almost more about sharing and interacting than even taking the photo initially.  The most amount of time anyone spends with photography is usually in discussion, in sharing, and of course browsing other photos.

The services and tools that exist today are still so new.  Flickr started off a huge social movement towards photos, Facebook proved photos are the backbones of social hubs, and Instagram helped the realization that great photography can be made by anybody and instantly social.  With that said, there's so much more to tap into, and too many companies are too focused on the tools to take photos and the ability to store and share.  They bend to the usual social table stakes that all photography services try to implement.  Tag friends, geotag with locations, use hashtags to organize, and have forums to discuss and organize.  All these existing features are great things, but how do you put those things elegantly together?  You can't simply piece all that in a better looking format and think it will be successful.  Brand new innovation must happen for the next steps of true social photography, and who better to help build that than photographers at a conference like this one?

It's rare to get so many active social photographers in one place for two days straight.  I'm hoping to learn and get some insight into the difficulties and problems people are having today and to eventually understand possible new directions that photography services and products can launch into and create a new wave of social innovation.

If you're attending the conference and would like to meetup please let me know!  I'm always up to meeting and chatting with anyone and everyone.

Lastly, a link to the photography conference site: http://gpluspc.com/

Aug 15

What photo discovery isn't

49/52 California Beauty

Flickr had it, Instgram has part of it, Facebook is close, 500px almost has it, but listen, there's a lot more to photos than simply "popularity."  The most widely used algorithm, as far as anyone can tell, is based on a few simple properties:

  • Quantity of views
  • Quantity of actions taken
  • Quality of person who viewed or acted (based on their own accumulated algorithm results)
  • Time (recency)

This works great in the early stages of photography communities, where not one group has a huge lead over newcomers.  When everyone has just about the same amount of followers, and almost all the same actual followers, any algorithm crunching the data above will surface some amazing photographs from everyone.  As soon as you start seeing discrepencies that will easily leave newcomers in the dust, you start having a problem.

Photo discovery isn't about popularity.  It's far from it.  Photo discovery should be about surfacing photos based on how absolutely awesome it is.  Composition, emotion, story, and reach.  It's lazy and incorrect to just chalk up popularity on quantity and influence.

If Ansel Adams, who we should assume hypothetically isn't famous yet, joins Flickr today, he will not make it to the Explore page.  Here's a few reasons: he's not in the group of Thai middle school kids who are incredibly influential now on Flickr, he's not taking pictures of hot chicks, and he doesn't post pictures of cute puppies... and most of all, he isn't posting unrealistic colorful HDR photos.  The only way to have your photos discovered when first joining Flickr is to stand out as a thumbnail in a Flickr Group you've posted to.  Best chance is he can post his photo in the B+W landscape only Flickr group.  Actually I take that back, he should post a full color photo of a hot chick holding a puppy in the B+W landscape only Flickr group, tagging all the Thai middleschoolers in the photo.

On Instagram if you're a celebrity on Twitter, you're good to go.  Otherwise you'll be buried and never make it to the popular page unless you have the qualities of a girl who does a ton of self portraits, or have a funky designer mutt that is named after household appliances (to be fair, kevin rose's labradoodle is pretty freakin cute).  I know plenty of amazing photographers who never get on popular, yet I see iPhone note screenshots make it up there.  Usually these notes are from girls or influential tech founders leaving tidbits of knowledge.  yah, these are interesting, fine, but you're still not discovering the greatest photos.  What Instagram does have right, is being able to see what photos people you're following are also liking and commenting on.  I think exploring this route as something more primary than simply popular photos would really be beneficial.  Probably not perfect and interesting as it is today, but what your friends have discovered and passing it on would be a step in the right direction.

500px has an editorial section that worked great early on to surface some otherwise unknown photographers into the limelight.  Unfortunately, they just can't keep up with the scale of photographers now using the site.  I've seen people who are influential on Flickr ask their Flickr communities to help them bump up their numbers in 500px.  They need to fix this otherwise they will fall to the same demise of Flickr Interestingness woes.

Instead of going on and on about this, you can clearly see a pattern.  Photography discovery has a long way to go, yet there hasn't been a lot of innovation on this front.  You can't simply take simple stats to surface the best photos people will care about.  There needs to be a level of heuristics involved.  The problem is that there's no clear logic to figure this out just yet, and you can't just go 80% and expect it to work well, you need to hit at least 95% accuracy or higher, which is hard.  People who work on natural language processing live in a similar world.  If the NLP is only 80%, it can be impressive, but won't work enough for people to keep coming back.  The last 20% is exponentially harder and seemingly even more time consuming.

Some good things to look out for: image recognition, meta information tied with current issues, crunching interests with photographs, and putting more emphasis on photo referrals from friends.

Image recognition can go far.  It's similar to natural language processing, and I guess you can even call this image processing.  If you can programatically come up with a way to know how awesome a photo is based on composition, quality, etc., then you can easily come up with a bunch of meta information to crunch into an algorithm based on interests and so on.  This is a hard problem, Face.com is closing in on facial recognition, and Facebook has already implemented a easy way to suggest tagging faces in your photos.  If you can take a few photo properties, like color depth, image size (if an image size is larger within the same dimentions as some other photo, you can probably accurately assume there's more detail and higher quality, which isn't always better but useful), see if it uses the Rule of Thirds and Golden Ratios, has boobs, has cute fluffy ears, you can really revolutionize photo discovery.

But until someone builds some robust image proccessing library, there's plenty of things to be done with suggestions from friends, newcomers who are influential in other networks, editorially picked photos (on a massive scale, like mechanical turk), and pulling out more meta information that's available.  I haven't seen anyone do this just yet.  Dedicate a team to photo discovery as well as the usual photo sharing/virality team.  It is a huge factor in long term success and not just a passing feature you poke at once in awhile.

Jul 26

How to alert engineers

47/52 Clarity

 

Good way to text / ping your engineers:

Got an email saying server x.x.x.x is down. I checked the site and it still seems fine.  Let me know if there will be long term problems affecting business.

Bad way to text / ping your engineers:

What happened?  Is the site up?

At no point shall non-engineers ping engineers responsible, without knowing what they might be responsible for.  Never report an issue without doing as much investigation as possible, because abstract questions will only make things worse.

On the flip side, engineers should do the following

Site is down, will affect business until further notice.  We're all working on it now, no need to call or text or freak out, it's being worked on.

Giving everyone else in the company a warm fuzzy feeling, engineers should also report:

Earlier today we had a few alerts, these did not affect any business, we were working on things behind the scenes and no related issues will occur.

Combining the two efforts you get a much better communication channel between engineers and non-engineers within the company.  Let's discuss further the benefits of the good texts.

Non engineers doing due dilligence on an issue will prevent engineers from scrambling from what they're working on, which may be much more important, and running countless tests to see what in the world might be going on.  The overhead here is magnitudes greater than if the person reporting the issue gives context and enough information to help engineers know right away.

On the flip side, engineers have most likely already gotten those same alerts, if not more.  If there really is a big issue, engineers should notify those who need to know (or care) about what business is being effected.  If there are no problems affecting business, then there really isn't a need to notify.  If a non-engineer does the due dillegence, gets no alerts from engineers, and notices business could be effected, then tracking down an engineer with the right information is warranted.  They might have missed it, they're sleeping, or whatever.

The bad and lazy ways of pinging engineers is the absolute worst.  It's a bad habit that will only make the world a more devastating place.

Non-engineers and engineers both have the responsibility of being clear in reporting issues.

Jun 27

Fanvibe Acquired by beRecruited

1/52

 

It all started in 2009, when Joe, Vish, and I took the leap and founded a new company: Fanvibe.  That was easily one of the scariest decisions I've ever committed to, but also one of the best.  Fanvibe evolved from a simple check-in to live games product (from any location) that notified your friends via an iPhone app, to a full blown social network for sports fans.  The greatest highlights were our relationships with our users, the partnerships we had such as the NBA, launching of awesome iPhone apps, a cool automatic prediction question engine, and all the laughs and jokes we had as a company... I mean all the hard work we put into it.

Today we are excited to officially announcement that Fanvibe has been acquired by beRecruited.  What this means for us is that beRecruited is buying all the intellectual property of Fanvibe and us!  I am now transitioning over to being the lead of product and engineering of beRecruited.  Mostly doing more or less the same stuff as before, but now with a whole new product.  beRecruited is already an incredibly successful company with over 1 million users and making a good profit.

What is beRecruited?  I'll use the little blurb I put up on my LinkedIn to give you a brief on us:

beRecruited is the nation’s largest online college athletics recruiting platform, connecting high school athletes to college coaches.

beRecruited.com has active athlete profiles representing more than 22,000 U.S. high schools and 180,000 high school teams. In the past two years, beRecruited athletes have reported commitments to more than 2,000 NCAA, NAIA and NJCAA institutions.

This is an incredible new opportunity that I'm really excited to take on.

Creating a great experience for student athletes to get into college is not only an exciting challenge but also an honor.  It is motivating to know that our success in creating a great product will also help high school students find opportunities that they would have otherwise missed. The perpetually improving technology is improving the way the world works, and this is one area that I feel is incredibly important.

The experience I've had while starting and working on Fanvibe has been incredible.  I've learned more in the last two years than I could have in thirty years of working for some other company.  The people I've met and become friends with have been in magnitudes greater than I've ever expected, and the strengths of the friendships I already had have really grown stronger with all their genuine support.  

The path through the early days at Dogpatch Labs, through the Y Combinator experience, and now being acquired has been quite the bumpy road.

It wasn't all easy and success the whole time, in fact it has been quite the opposite.  I see so many stories where you hear about all the awesome times companies have, but what I didn't know is how crappy it can get.  We learned early on, however, that failure is the only way to success.  Today I'm still failing, but at least I know it and with that I can try to overcome those failures as challenges.  I will always remember Etact's Evan Beard telling us at a Y Combinator dinner to remember that: "Your mind is a fortress of impentetrable happiness."  In light of giving credit to those who've helped, big props to my family for the support, to my wonderful girlfriend Issa for being an incredible combination of understanding, supportive and inspiration, the YC family, all our amazing investors and advisors, and of course the Fanvibe team itself.

Overall this move for Fanvibe has been great, and I'm thrilled for the next steps in being a big part of beRecruited.

See some press coverage of our acquisition, and take a peep at the awesome infographic our designer, Tyler Bass, made to describe the reach beRecruited has.

http://techcrunch.com/2011/06/27/fanvibe-berecruited/

Berecruited1

Also for the sake of photos, some pictures I posted of the early days of Fanvibe: http://flickr.com/gp/kinetic/Y2ceC3

Mar 17

Setting up Rails with Redis Resque and Rescue-Scheduler on Dotcloud

frozen fingertips

 

I learned a ton over the past week getting feedtopic.com's somewhat unique setup hosted on Dotcloud.  There are a few small caveats that you really have to pay attention to.

Before I get started, however, I need to give big ups to the Dotcloud team.  They are a fellow Y Combinator 2010 batch company, with amazing skill and genius, as well as incredible support ethics and all around amazing personalities.  I consider these guys my friends more than just tech support and company founders.

Now let's get down to what our backend is like.

Rails 3

Part of feedtopic.com is built on the Rails 3 framework.  This deals with our database, complicated machine learning / natural language processing, and custom algorithms we built on top.

Redis

We have decided to use Redis to deal with our queueing system.  We never need to store crazily marshalled objects, and json strings work great.

Resque and Resque-Scheduler

Naturally with redis, we use the resque gem to handle jobs in the redis queue, as well as resque-scheduler to basically do our cron for us.  It's slick because you can load up a front end on a subpath with Rack::URLMap and see how your queue and schedules are doing from a nice clean interface.  We originally used Redis To Go, so our configuration needed to be adapted when we setup the Dotcloud redis.

Postgresql

I want to mention we also chose postgres as our database.  We really don't need any fancy nosql setups or anything at this time.

Dotcloud

We chose Dotcloud for the job of hosting everything.  They are currently in "beta" mode, which means everything isn't as beautifully polished as it could be yet, but the support they provide, like REAL live support, is better than any docs you can get.  Because there's a few things to polish up, I decided to write this blog post with a few things we figured out along the way.  

Heroku (I still love Heroku though)

Another honest reason for choosing Dotcloud is, running this on Heroku in it's minimum "development" state would cost at least $72 a month.  The reason is, we need to run two workers on Heroku, and each one is about $36 a month.  That's a lot for two small workers (one resque, and one for resque-scheduler).  Also it's a bit hacked up on Heroku, because you need to run two apps, one for the resque job, and one for the resque-scheduler job.  Heroku only allows you to rake jobs:work, and that can only be mapped to one rake.  Thus you need to push a whole new app just to run the scheduler.  It works OK if you connect to the same Redis server, but the Redis server will again cost money (they use redistogo).  With Dotcloud, it's setup nicely and you can even setup your own Redis.  I definitely think Heroku will put something in place for this as well.  You could even get away with it if you use the cron add-on, but with a little less flexibility.

Also don't want to knock on Heroku.  These guys provide amazing service as well.  We've been using them successfully with Fanvibe.com for a year and a half now.  It's this special redis/resque setup that really prompted us to go with dotcloud.  Fanvibe.com not only powers our web property, but it also powers the backend of our iPhone app, and our API that powers all of the NBA's (National Basketball Association) properties too (iphone app, android app, ipad app, nba.com), so you can imagine how awesome Heroku can be.  Our backend doesn't just serve up pages, it cranks through live stats in real-time (sub seconds), uses heuristic algorithms to literally create on the fly prediction questions as well as ending answering and awarding people when the predictions are over, it also notifies people about news, stats, live scores, and what friends are watching and saying.  Anyway, I'll save Fanvibe talk for another post.  In a nutshell, I really spend very minimal time every worrying about Fanvibe on Heroku, so this in no way means Heroku isn't a great service.  It really is a great service.  The team over there is also very responsive and are great guys.  I have no doubt they'll really polish out a solution for resque/resque-scheduler soon enough.

Rails 3 setup

Going through the usual Dotcloud documentation, it's pretty straightforward.  When you first "deploy" your ruby app, you'll no doubt have a SystemTimer gem in your Gemfile.  Why?  Because resque gem docs tell you to put it in.  SystemTimer apparently fixes a crucial bug in Ruby 1.8.  I've heard this no longer exists on Ruby 1.9.  SystemTimer won't work on Ruby 1.9 without this fix being merged in, so you have two options:

  • deploy with dotcloud with the configuration of ruby 1.8, which is called "ree" in the config parameter.  ie. -c '{"ruby-version": "ree"}'
  • deploy without the SystemTimer gem and just let the default ruby 1.9 deal with it (this is what I ended up doing).

Another big problem was that, for some reason you'll need a nginx config fix on Dotcloud for some virtualhost problem.  This part I will need Dotcloud guys to step in.  I'm pretty sure they'll update the docs about this soon.  But if you're getting 404's on pages that you know work locally or on something like Heroku, ping them about the nginx config file and the vhost stuff.  More specifically, Sam over at Dotcloud put this together for me.

Postgresql Setup

I have our database setup on Dotcloud, just because it's easy.  One thing to note is that the password Dotcloud provides is pretty crazy, so feel free to wrap the password in double quotes, otherwise I believe it screws with the yaml.  Here's ours:

Redis Setup

The documentation is spot on here.  Note that I had previously setup a Redis To Go hosted redis, so these are more caveats on how to adapt that to your own redis setup on dotcloud. To connect it with your rails app, and your resque workers, you'll need to know a few things.

  • ENV["REDIS_URL"] doesn't really work on Dotcloud yet, so avoid that.  I would use a config/redis.yml file and load that in.  We had used an environment variable set in our development.rb / production.rb files per the instructions of Redis To Go.
  • The password again, is a bit crazy.  If you previously used Redis To Go, you'll see that they parse the URI, and that won't work with the Dotcloud super safe password.

Resque and Resque Scheduler Configuration

I'm going to group both of these here because they're related on how to set them up.  This part was a bit trickier, but we figured out a nice way of doing it.  I'm not going to go into how to get a working resque worker / scheduler working here, I'm going to assume you have it all working locally already.

 

supervisord.conf: This file is required at the root level of your app.  The problem here for a rails 3 app and the resque gems is that you need two different supervisord.conf files for different workers.  The different workers being a pure resque worker, and a resque-scheduler worker.  You can't put them both in the same file, but you also don't want to refactor the entire structure of the app to work in different directories on the rails app.  So we came up with cool solution

  • Each ruby-worker deployment has a unique $HOSTNAME variable.  It's basicaly whatever namespace.name you decided on when deploying.
  • Create two files, supervisord.conf_namespace.resque, and supervisord.conf_namespace.scheduler for example.
  • Make sure you also set the RAILS_ENV in the environment section of the config file.
  • Create a post install hook file: "postinstall" that creates a link to the correct supervisord config file, based on the hostname.  This will basically ensure the correct config file is used on a certain host!  FREAKIN SWEET

This is the resque worker's supervisord config file.  Notice we need to also set the rails environment to production.  For some reason it kept running on production for me.

This is the resque-scheduler's supervisord config file.  You can ignore the fact I have the environment setup there, the queue isn't used, for some reason I just still have it sitting there.

And lastly, our postinstall file.  This is basically making a link.  What a sweet hack.  Remember to chmod +x

We also added in a require in our Rakefile to include resque/tasks

That's it

Wow, ok that was a lot.  But it really seemed like a lot more when we were working on it.  The above were just the final conclusions we came to.  I'm pretty sure I've documented everything, but there is a possibility I left a few things out.  Again, these are very specific to our setup on Dotcloud, so what you have may vary.  Dotcloud guys might send me a few clarifications and I'll update as that comes in.

If you guys want anymore information about any of the topics, feel free to ask me in the comments or ping the Dotcloud team.

 

Photo: So I like posting photos I've taken with every post I make, regardless of how much sense it makes.  This was one I took of Issa when we visited Lake Tahoe.

Mar 6

Biological Task List

y

 

There's a lot of reasons to write things down when you need to remember them, but sometimes I wonder if it's totally necessary.  Wouldn't it be ideal to keep track of everything you need to do in your head?  Confidence in your own memories is sometimes scary, but if you think about it, it's not all on you.

Being a startup founder, I have so many tasks that they can't possibly be organized well in any sort of todo list form.  I have pages and pages of lists in an old notebook, most items are crossed off not because I've finished them, because they've been made irrelevant by the time I saw them on my list.  I started noticing that the todo list was nothing more than a way to make me feel better about myself at the end of the day.  "Look at everything I crossed off, I feel accomplishd!"

Sometimes I crossed 20 items off the list, and I actually only finished one thing.  So much changes over the course of even one day, that the other 19 items just became moot.  Some days I'll cross off nothing, but I had actually completed 20 tasks that weren't on the list, but needed to be done.

Now, if these todo lists didn't give me some smug feeling every day, I don't see the purpose at all.  And since feeling awesome about yourself does not depend on a simple list on a paper with scratch marks, a task list might not be the best thing to have.

What I've noticed in the past year from my lazy disregard for updating my list (and actually losing the notebook somewhere), is that I've not once forgotten anything critical, and had finished just as much, if not more things than when I had a list of todos.  How is this possible?  Is my mind an incredibly genius biological mass that's advanced through the year due to consuming copious amounts of coffee?  Actually, I think it's because I actually care a lot about what I have been building for the company.

Think about this, you have a task list of things todo, how do you organize this list?  Most important things that everyone's asking for goes on top.  Things you keep hearing about, and feel like are critical goes up there.  The things that are less important that someone mentioned in some feedback email that really doesn't matter much, goes on the bottom.  But what if you didn't have a list?  

The tasks that are most important are going to bug you all the time.  You'll hear about it from peers, from users, from yourself!  If you don't get it done, your whole product will fail.  In your biological task list, also known as your mind, this is already top priority.  You can't possibly forget it!

Now, all those dumb things that you would have put at the end of your list, you might just forget about them.  If you forgot about it, chances of someone who still gives a damn are pretty low.

How can you really build a biological task list in your mind?  Don't depend on a piece of paper!  

When you hear feedback, really try to understand each piece of feedback.  Weigh it in your mind, and think about how important it really is.  If nothing really pops out at you, fine, maybe it will come up later when you have time to fix it.  Or, if you actually think it would be brilliant to take that feedback and twist it into a new feature, you're going to naturally be excited about it and build it right away.

During meetings or talks (I rarely do meetings anymore), don't just write things down and not think about them.  Don't just wait until later to figure things out. Think it through right there, discuss with whomever you're talking to, and file it into our task list.  If it's important enough, and you're all on the same page, you'll remember it.  Or... you'll just forget it.  If you start forgetting something, however, that's uber important to the rest of the team, they'll let it be known.  "Art, why haven't you put in feature X yet? Everyone wants it!"  In my mind, I would think, "damn, did I totally screw something up? Apparently this didn't seem like a big deal to me, but now let's see why."  I would talk to the person who was screaming at me, figure out why, and either understand that it needs to be done now, or let it be known why it's a lower priority issue.  If it's lower priority, I'll at least be refreshed about it and boom, naturally bumped up on my task list.

But you must be thinking by now, "why use so much brainpower, when you can just easily write it down and get the same results?"  Well, here's a few problems I see in a simple task list.

  1. You totally depend on the list to tell you what to do.  If it's not on the list, your brain isn't working in a way where it tries to think of more stuff.  You'll definitely miss something if you don't write it down.
  2. You get caught in a trap of only doing what's on the list.  At the end of the day, everything's crossed off and you go watch TV and fall asleep.  Being creative is the most important thing when working on anything, and to be creative you really need to do more than what's written down.
  3. If you lose this list, you will probably freak out.  I've had a friend who totally depended on a list, left it in a shopping cart in a grocery store, and freaked out.  Yes, I'm talking to you Max ;)
  4. It's boring.  Go make life a little more interesting by rebelling from the norm and making tasks so much cooler.

Trust your mind as a task list, using emotions to prioritize and organize everything, and this just might work.  I've been doing it for awhlie now, mostly because I'm too lazy to write, but things have been working really well.  I remember all the big tasks, and I get everything done.  My apologize to my co-founders and employees when they need to shout at me once in awhile, but hey, it works out.  I think I'm better off this way than if I wrote everything down.

 

Photo: taken at Fort Mason in San Francisco.  I like it because it looks like a "y"

Dec 9

Where you're happy, is where you should be

15/52 Where you're happy, is where you should be

 

Saturday early morning, Win texted me that there were super cheap flights out to Oahu.  I replied with: "let's go, I'm serious".  But I had to goto a good friend's birthday party that night.  After I got back home, I called up Win and we booked our flights for the next day.

Around the end of the year, there are fewer in person meetings that need to happen.  Everyone's getting ready for the holidays, especially between Thanksgiving and Christmas.  This is the time when everyone's catching up from Thanksgiving, but needs to get everything done before Christmas.  This also results in fewer travelers and better prices, I think.

With a confidence in self discipline and as a founder of a company, I rationalized that I was really hating the cold wet weather in the SF Bay Area and the only reasonable thing to do was to goto a warm place.

I've always been a huge advocate in working remotely, taking a company somewhere for a few weeks, to enjoy life and to work hard.  It takes a certain person to be able to work while in a place where most people go to vacation.  But if you think about it, people in those places also work.  San Francisco, for instance, is a huge tourist attraction, but we work there every day.

Oahu, Hawaii is no different.  It's beautiful, and has great weather.  Last week was 80's every day, no rain.  I had just gotten better from being sick, and I could think of no better environment to work in a rainy december, than Hawaii.

I didn't even pay for my flight, used some miles I had accumulated which were going to expire anyway.  The hotel was super cheap, split it with Win (also a founder of a different company than mie), so it came out to $70 a night.

And I got a lot of questions, which all drills down to: "Are you REALLY working?"

What does the average American think of as work?  9-5 job, in an office.  Sometimes in an uncomfortable outfit, the commute kind of long and dreary, and usually laughter opportunities are low.

What do I think of as work?  Well let's clear something up first.  I believe in my product, and I believe in my company.  There's very little that motivates me and excites me as much as the success of my company.  When going to Hawaii, all I could think about was where to go to work.  I wanted to be on the beach, in the sun, warm, and well fed while working.  I wanted to crank out tons of code for Fanvibe while enjoying the weather.  No need to stuff yourself into a cube or a small box to work, instead motivate with your environment.

I think of work as a place where you're happy to goto.  Being happy is the first step to being productive.  Of course, you can't be so picky that unless you're 100% comfortable and happy you can't work.  But getting yourself in a good situation is fantastic.

Another thing is self discipline.  You can't go wild once you get to the place (as ironic as this sounds as I type a description under a photo of me flying towards the water) where you want to work.  Instead, find a good place to work, and be sure to take a break at lunch or later in the day.  Nobody needs to work solid from 9am to 9pm.  Every day I was in Hawaii, I worked.  It wasn't in a chunk of 8 hours though.

I usually wake up at 6am, just so I can work a good chunk of the morning with my colleagues in California.  At lunch, I would go discover a great new Saimin noodle house, or grab a nice feast of seafood at a food truck on the beach.  Afterwards I'd goto a nearby beach and relax for awhile.  This would probably be a 1 to 3 hour break.  Once that was done, back to work.  Dinner is usually a quick eat, and then back to work the rest of the night.  One of the days I worked for four hours in the morning, then drove around until sunset.  Worked another 6 hours after dinner.  Got everything I needed done, and was super happy.  I did get a slight sunburn on my feet (weirdly enough).

A few more caveats: this is my third time to Oahu, which means I've seen all the sights.  The area was familiar so I wasn't dying to get out to see things.  I also went with an equally motivated founder of another company, who is even more laser focused than I am.  We balance each other out, and kept each other going.  I'm also more productive when there's a lot of ambient noise around me.  I'm a fan of coffee shops, waves crashing on the shore, and bustling university hubs for places to work.

The only regret is I wish I could convince the rest of the Fanvibe crew and everyone else out there that going to Hawaii to work isn't a joke.  Companies need to realize that happiness is success.  Get happy, you'll be successful.

 

More photos below:

 

crossing

_DSC9657

fin

_DSC9626

volcom

_DSC9651

Pipeline Masters [bunch more photos in comments!]

shadowed, reflected, and refracted

_DSC9569

_DSC9367

_DSC9555

_DSC9415

scattered clouds [photo of weird animal in comments]

_DSC9444

Sep 13

Y Combinator Experience

1/52

Every company at any stage is a good fit for Y Combinator.  If you're wondering if you're too early, or too far along, or too good for YC, you're just making things up.  Even if you're well funded, making tons of revenue, or are some hot shit programmer with some amazing business guy with an MBA on your team, you'd still want Y Combinator.  Our dream was to take a company through Y Combinator, but with Fanvibe, we already had funding and had a good group of users, we didn't think we needed it.  Sure we might not have died as a company, but we wouldn't be anywhere near where we are today.

Let's cut to the chase, why was it so good for us?  Fast forward 3 months, you have 300 of the world's best investors intently listening to your pitch all in the same week.  Even if you don't want their money anymore, which is almost never the case, you want to show them what you have.  Your pitch is also pretty damn impressive at this point because of all the mentoring, rehearsals, brutal feedback, and collaboration with an amazing class of other brilliant Y Combinator company founders.  There is almost no way your pitch can suck by demo day, unless you're a total lame-o who didn't take Y Combinator seriously.  If you are that kind of person, you wouldn't have made it into YC in the first place.

Now let's get to the 3 months that helped you prepare for demo day.  It's sort of an artificial deadline, yes, but it's a really good deadline to have.  Launching something new from scratch, or adding more features that are big enough to impress in 3 months is only going to help.  The constant motivation during each Y Combinator dinner, helps you reach those goals.  Making sure you impress Paul Graham every week, and other YC co-founders is probably the best way to go about your company.

Paul Graham challenges everything you do on purpose.  There is no sugar coating involved, and he has so much experience and data in his head, that he has a pretty good idea of what's going wrong with your company.  You learn to fail on an hourly basis, so you become very skilled at bouncing back and making good choices in how to move forward.  No need to wait 3 months to figure out something you've done totally failed.  Paul will always make sure you know you're about to fail on something the first time he sees it.  When do you ever get someone like this to give you hard questions all the time?  He's invested in you, and he actually cares enough to make you better.

The whole team behind Y Combinator are amazing.  Jessica is the nicest person in the world, has great feedback, and just makes you feel happy.  Harj works hard for us, getting us contacts, responding to questions right away, and gives amazing feedback.  Kirsty does an amazing job at everything as well!  Listening to Harj and Kirsty's accents alone are worth it.  Trevor, John Levy, Kate, and the rest are just as amazing.

Y Combinator is fun.  I've made amazing new friends, met celebrities (both tech and hollywood), become more successful and legitimate as a entrepreneur than I've ever imagined, all because Y Combinator kicked my ass and made me realize how much I harder it really is and what it takes to be successful.

Bottom line is, there's no way for anyone to tell you how much you actually want Y Combinator.  The experience is epic.

Also, if you've read this far, here's a treat for those who know Harj.  Took this video after the last session of demo day, after all the investors had left and we were just hanging out.  It was a tough 3 days, but in the end it was a lot of fun:

(download)

Apr 14

Pitch with a Question, Use Case, or Description?

Having a startup naturally lends you to situations where you're describing what product your company is building.  Whether pitching to friends, relatives, other startups, or investors, it's a pitch to potential customers in one form or another, and they're all different!  Some people are accustom to pitches and are able to switch into the mindset of understanding the concepts you're describing.  For others it's easier to give them a use case that applied to yourself, or possibly to them if you know enough about them.  And maybe you just have to feel them out and ask questions.

When people talk about pitching ideas, they start thinking of adjectives to describe how "amazing" or "simple" or "powerful" their product is.  Then they talk about the concepts and parts of the product that are one of those things, peppering it with those adjectives.  It's easy for someone to understand what your building, but it's unnatural for the average person to realize why it's so cool for them.  

Face it, nobody cares about something unless it benefits them.  At the end of the day, nobody is thinking about how cool a product is for a mass of people that's unrelated to them.

I've been experimenting with how to pitch FanPulse to people.  In the end, they always get it, but how excited they are varies tremendously.  Some people are excited because I've successfully persuaded them that they are the ideal user, and they can really see themselves using it.  Getting to that point is hard, and you can't rely on the person to get there themselves.  Just telling them about your product isn't going to give them enough to realize how they could use it.  Some people have the ability to take ideas and products and somehow assimilate it into their daily lives, but that takes a lot of work on their part.

What if you asked a question to start a pitch?  The question could be asking if they have a problem that your product can solve.  Let's take a quick example for FanPulse: Have you ever wanted to keep up with sports that you and your friends love, but never have the time?  This is a hit or miss for sure.  Let's talk about the misses.  The person has zero desire for sports, so the answer is absolutely no.  The person is a huge hardcore sports fan who plays fantasy and has a set of box scoreboards they visit on an hourly basis.  So no, they follow it fine.

The ideal answer is: "yeah I used to follow the Oakland Athletics, but just never had the time to keep up."  Then it's easy to tell them that FanPulse is perfect because it spoon feeds them information about the games.  It's also easy to tell them that they will also be able to talk to their friends (in real life) about sports in conversations that you're usually left out of.  But what if they're not ideal?  Well most of the time it's not going to be.

A good starting question could be super simple. "Like sports?"  Probably, if not, you'll just have to impress by explaining the cool "Machine Learning Algorithms in the cloud" you built to impress people.  Kidding!  If the person really doesn't like sports, I'd probably defer to a use case for yourself.  Then they might realize that, yeah, I could like sports too if it was this easy.  Here's my favorite: A lot of my friends are Cal Berkeley Bears fans because they went to Cal.  I didn't, so I don't really care about the teams, other than the fact that a lot of my friends talk about them.  I wanted something to help me follow their teams without needing to commit the amount of time they did.  (pause for a nod from investor) FanPulse tells me what games my friends are watching, and if it's interesting enough, I'll check-in to a game so I can get updates just for that game.  Tomorrow I can talk to them about everything.  FanPulse is my secret weapon.

I'm pretty sure people will understand my story, and see the possibilities of them being in similar situations, or at least give me the benefit of the doubt that this is totally happening to masses of people already.  The use case is probably just the tip of the iceberg, so if they are still interested tell them what the product is.  FanPulse gives you lists of games, showing which friends or general fans are following, and you can also follow by checking in.  Check-ins then give you game updates, friend activity updates, and ultimately rewards you for your own activity with virtual goods and real life monetary goods like game tickets.  So there, I just told you (and could have drawn on a napkin) the basic features we have, but you can now connect it with the problem we're solving.

So how do you pitch?  Pitch with a Question, use case, or just a general description?  How about all three?  I'd love to hear what you guys think, and please don't take any of my pitching above as the real deal, they were just quick examples I pulled out of my pocket.

Apr 9

PR for Startups

_DSC2357

Dogpatch Labs - San Francisco held a fun meetup last night with the topic of PR for Startups.  The meeting was a fairly informal general Q&A session with prepared questions from Ryan Spoon and Mike Hirshland of Polaris Ventures, answered by Venture Beat's Anthony Ha and Techcrunch's Jason Kincaid.

My co-founder, Joe, makes a good point that the meeting did an awesome job of showing us that these journalists are real people.  Not just faceless robots who don't act like the rest of us.  In fact it was definitely good to see that they were truly trying to get the best stories and has the same frustrations as normal humans do.  Biggest take-away from the Q&A session was to treat them like real people.

Some other things:

Don't use buzzwords when you pitch through emails.  Buzzwords just makes your product even more ambiguous.

Talk about competitors as well to jumpstart your description.  Sometimes it's better just to use a starting place, and then describe your differences and how you're better.  It probably won't necessarily mean the competitor will be mentioned, just that the writer will understand you better and faster.

The pitch should be only a few sentences otherwise it's too complicated for the writers to wrap their heads around in the short amount of time they're able to read.  It might be nice to include a really short video to your product, though I'd suggest at least telling them it's only 1 minute long.

Timing is important! 48 hours before a launch is a good time to make first contact with a writer.  As soon as possible when you raise a substantial round of funding, and if you put out a feature that isn't just awesome for existing users, but something really cool for people who have never heard about your product.

Feature pitches should be strategic.  Don't try to get press for features that only make existing users excited.  If it's something that will really draw other people who have never used your product, then it's worth pitching.

There's a ton of other things you can do, but just talk to them like real people, and treat them nicely!  They're not out to get you, they're just doing their jobs.  Hopefully your product will speak for itself.

Here are a few photos from the event:

 

_DSC2400

 

_DSC2369

About Arthur Chang

Life
I live in the San Francisco Bay Area and love to surround myself with friends and family. I'm a technology geek with an obsessive startup mentality, a photography nerd, and love to play sports (basketball, tennis, and more).

Startups
I am an entrepreneur with a background in software engineering. Most notably, I founded a company in 2009, Fanvibe.com, backed by investors including Y Combinator, which was acquired in 2011 by beRecruited.com. I am now the Lead of Product and Engineering (fancy title) of beRecruited.

Hacks
I graduated from UC Santa Barbara's College of Engineering with a B.S. in Computer Science in 2005. I've been developing and designing products in web and mobile platforms with large corporations and many of my own startups. I'm obsessed with disruptive apps, cutting edge tech, social game mechanics, social network development, software security, and all things code.

Photography
Photography is one of my biggest passions. Historically, it has been a hobby of capturing stories within still images. I photograph weddings, engagements, travel destinations, landscapes, various events, and many good cause events as a volunteer.

I shoot with a iPhone 4S and various Nikon SLR gear. I'm available to shoot events, weddings, and engagements. I am also always happy to volunteer my time to photograph good cause events.


TwitterFacebookmetaweblog

Search Blog

Get Updates

Tags

Archive

2012 (8)
2011 (20)
2010 (41)
2009 (83)
2008 (2)