
Back Office Exposed: Bingo Card Creator - paulsingh
http://www.resultsjunkies.com/blog/back-office-exposed-bingo-card-creator/
======
nicpottier
For all those reading this thinking, man, I could never do this or be
successful at my own business, follow his advice, JUST DO IT!

It isn't that hard, it is especially not that hard if you approach it like he
did and grow very slowly and keep your costs down. I did the same thing with
my best friend years ago, starting off while still having a job, then making a
leap when things were slightly vetted.

Best decision of my life. I've travelled the world, set my own schedules,
always worked on what I wanted to work on and had a far more interesting set
of challenges than I would have staying coding at another startup.

The key is not to aim for the moon, aim to pay the bills. We reduced our
expenses to $5k (pre tax) a month, then set that as our goal our first year.
It was achievable, but more importantly we eventually grew to making far, far
more than that. But I've still always kept my expenses low because I've always
wanted the freedom to do what I wanted.

I'm now in Africa, doing a startup here because it is new and exciting and
satisfies my need to do good. Never would have been here if I had stayed at
the day job.

DO IT!

~~~
cdr
Actually, I found patio11's background to be generally pretty average and
unexceptional - I was thinking "if he can do it, anyone can".

(no offense intended to patio11:)

~~~
patio11
None taken. I agree with "anyone can do this", with the proviso that it really
helps if you can do at least one kind of programming and enjoy learning
things.

~~~
dublinclontarf
Never give up, never surrender!

------
m_eiman
_While this was going on, their copy of Bingo Card Creator has been
relentlessly polling the server: “Has she bought it yet? Has she bought it
yet? Has she bought it yet?” It does this by passing the same random ID to a
web service running on the server. If the transaction has been consumated, BCC
will learn the Registration Key, and then automatically upgrade itself to the
registered version. This removes a /major/ source of customer support
complaints, since Registration Key management is a hard concept for many
shareware customers to grasp. From the customer’s perspective, she just got
done putting her details into Paypal, and by the time she closes the browser
(after ignoring the instructions) and goes back to Bingo Card Creator, it
already says “Thanks for your purchase!” That little psychic saves me hours
every month in support email._

I wish all trial software did this!

A definite usability improvement and just generally better for both parties.
The usual email with the reg key for later use should also be sent, of course,
but saving that hassle for me when I just want to get on with using what I've
just bought is a very nice touch.

~~~
patio11
There is a program called Stylizer (visual CSS editing, highly recommended)
which inspired this. Their implementation required you to copy to the
clipboard (via a Javascript onclick event on the last page of the purchase
flow), but the software sniffed the key right out of the clipboard and
upgraded itself automatically. This avoids pasting problems. (Useful factoid:
many computer users cannot copy/paste, and many who can can only do it with
the MS Word copy/paste buttons onscreen.)

I thought "Dang, that is great", implemented it, and then started looking for
a way to extend it without requiring people to read the instructions for
copying.

------
jswinghammer
I can't help but always be totally impressed with Patrick. I admire the way he
focuses on every detail of his business and is so thoughtful about everything
he does. He is a big reason why reading the comments on this site can be so
rewarding.

This was an excellent read.

------
troygoode
Great article and always good to hear more from Patrick. I still find it
incredibly humorous that one of the more influential startup stories on HN is
a "simple" Bingo Card Creator. Patrick continually shows that there is no such
thing as "simple" when you're striving to be successful.

Favorite bit from the article: "Prior to running a business I ran a WoW guild.
It was rather substantially more work and more drama than running a business,
for dramatically worse loot."

~~~
patio11
I get a lot of credit (perhaps more than I deserve) because I talk a lot, am
amicable, and write in a compelling manner. Communication is the great
underlooked startup/engineering skill.

I prefer taking the opposite tack [+] with regards to simplicity: there is
indeed such a thing as simple. Your business, on day one, is simple. It will
gradually become more complex as you learn things and learn what the business
needs, but you don't need to let the complexity coming down the pike scare you
away from starting something today. (And compared to many businesses -- from
megacorps down to a lot of the startups around here -- BCC is still pretty
simple, even four years in. My best marketing strategy can be explained in
three Powerpoint slides, all the code I have is under 10kloc, and the core
customer need is pretty much unchanged.)

[+] Some day I will learn this English idiom properly, but until I do, thank
you guys for correcting me on it.

~~~
ismarc
I think the idiom is difficult because it's not a properly understood idiom
for most people who speak English. It's a sailing term. When you're sailing
into the wind, you criss-cross against it, changing the side of the ship the
wind is coming across, so the ship ends up taking zig-zag path through the
water. Changing the orientation of the ship so the wind comes across a
different side is tacking. It's the opposite of jibing, which is changing
which side the wind is coming across with the wind at your back.

Hopefully the context of it helps, taking "the opposite tack" is changing your
orientation to reach towards the same goal on a different approach when you're
getting off-course with your current approach.

~~~
cromulent
To add a little more, it is often a good tactic in competition. If you take
the same tack as your competitor, then you are simply following them in their
"dirty wind" and are unlikely to overtake.

If you take the opposite tack, then you may well find clean wind, or better
wind, and you may also be able to approach them on starboard tack, forcing
them to give way.

Don't follow your competitor - take the opposite tack.

------
skmurphy
This was the best exchange in the interview:

    
    
      Q: Can you share the key metrics you watch on a   
         daily basis? Why are they important to you?
    
      A: I have published a variety of stats but I don’t watch
         metrics on a daily basis because I don’t make    
         metrics-based decisions on a daily basis, and absent 
         making decisions watching metrics is only as     
         productive as playing WoW.

~~~
alnayyir
I find this doubly amusing because he used to play WoW.

~~~
gwern
So, as usual, the man knows what he's talking about?

------
d_r
"But if you _say_ you’re booked solid with your children and yet you still
find time to watch television and play online poker, then it is time to have a
frank discussion about your true priorities in life."

Besides the very honest and insightful write-up (thank you!), this last
sentence is worth its weight in gold. It's too easy to make excuses for not
following your goals and blame something other than your own lack of
motivation/focus.

~~~
gruseom
I think that sentence is unfair. If you have a job and small children, it's
easy to be so exhausted after putting them to bed that there is no energy left
to think about anything important.

It's true of course that children are the handiest excuse around. But it's
also true that once you start down the job-and-family highway it can be
exceedingly difficult to get onto an exit. The implication here -- that if
you're not pursuing some major third thing, it's because you're lazier or care
less than people who (under considerably different circumstances) _are_
pursuing that thing, is glib.

While there are ways out of this dilemma, they require more than re-sorting
your todo list and cutting back on the online poker. Failing that, the default
rule seems to be "Job, family, school, startup, pick two".

~~~
loewenskind
Agreed. And what's more, marriage and raising a child both take a lot of time.
I often don't even open my laptop at home because I just don't have the time.

Personally, I realized that (a) I can't live with the idea of working at a big
corp until I retire and (b) if I wish to remain married and connect with my
kids (you only have 10 years!) I don't have the time to do this on the side.
Given those two truths I decided to lock in our expenses (i.e. making more
money doesn't help my goal if we just spend it) and switch to consulting. As a
consultant I make enough that I can periodically take 6 months off to give my
start up ideas another go. If the business gets some traction then maybe I can
stay off longer than 6 months. And as a consultant I don't have to "quit" when
it's "working sabbatical" time.

~~~
Poiesis
Personally, I figure that if I stay at $BIGCORP I will have far less time to
connect with my kids--over the long term--than if I work for myself. I might
have to front-load the time a bit as I get set up but this is not a given,
given the small hourly commitments possible.

But the "free" healthcare makes it a tough decision.

~~~
loewenskind
Working as a permi this is certainly the case, but if you can get your living
costs down and work on a more ad hoc basis (i.e. contracting or consulting)
then you can take big blocks of time off to use as you see fit.

Personally I wouldn't want to work in the US right now. The worker protections
are practically non-existent (advantageous if you own a company but if you
work for one, not so much).

Health care has always been problematic in the US but I suspect by your
comment you mean that you don't like that you have to have it now. Not having
insurance would be an insane level of risk to put on your family (especially
when coupled with the risk of a start up). One of the bigger mistakes the US
did with health care IMO was letting companies pay it for the employees. That
creates a terrible lock in incentive and removes health care from the person's
budget so when you do wish to try something else (e.g. a start up) you're not
prepared for the sudden jump in expenses.

------
ecaradec
I find really interesting that patrick build a pagerank on a totally different
population than his customer base. He target hackers for pagerank building
(and invest a lot of time writing articles who are probably not his first
customers), but his customers lands on content created by freelancers (cheap,
lesser quality content probably ).

~~~
patio11
I do seek links from outside my customers and recommend it as a tactic,
although it is not the only reason that I blog or participate with folks. You
can compare it to other companies trying to get written about in the New York
Times despite not selling to newspaper reporters. Programmers and Internet
businessmen control a metric tonne of links, schoolmarms and the Jane Austin
webring not nearly so many.

I do take minor exception to the comment about content quality. With the
proviso that I'm making bingo cards to teach lessons to school kids, I'm
usually making pretty darn good bingo cards. Search for [biology bingo] some
time and compare my site to the other options.

------
pwim
_He lives in Japan and recently left his cushy full-time job_

I don't think cushy is the word he'd use to describe it.

~~~
wglb
Right. It apparently was the ex-ex-job that was cushy, not the salaryman job.

------
jolan
> Apache has a habit of taking down memory-constrained VPSes when hit by large
> amounts of traffic

Give Nginx a spin if you can. I use 300MB VPSes running Nginx + PHP and have
memory to spare to run the dropbox daemon, lightly loaded mysql, etc.

~~~
patio11
Yep. Sometime after this interview I figured out what my Apache configuration
problems were. The short version: KeepAlive, which might as well be called as
TurnThisOnToBlockThisServerTotallyEveryTimeYourSiteAppearsInSocialMedia.

~~~
pvg
There's also just tossing a reverse proxy in front of your apache, it hands
the problem of slow requests, bad requests, KeepComatose, etc to something
lightweight that's a lot more crap-tolerant.

<http://joshua.schachter.org/2008/01/proxy.html>

The simpler of these (e.g. pound) take about as much time to set up as
scrolling through your apache config looking for some mis-set option.

~~~
alnayyir
One task to a machine can save a lot of trouble, ie, not having the database
on the local app server + having varnish + nginx in front of it.

------
JacobAldridge
First time I heard about Appointment Reminder - Patrick's third second product
- <http://www.appointmentreminder.org/>

Certainly a much bigger market than elementary school teachers, while clearly
continuing to leverage the same key skills of making a mundane task automatic,
and metric testing to consistently enhance the real world user experience.
Perfect case study (assuming the market eats it up, of course!).

------
boredguy8
And no credit for fixing his httpd.conf configuration :(

<3 patio

~~~
patio11
Joey gets credit for the part of my config which functions as designed.

~~~
frankwiles
If Apache is eating up all of your RAM with children, you should really look
into using nginx or Varnish out front (depending on how cacheable the content
is). You'll see your need for more Apache children drop considerably, due to
the spoon feeding problem.

Hope that helps, have really enjoyed reading your posts.

------
bryanh
I love the dashboard screenshot. More of these Patrick! How about a tour of
BCC someday?

------
tkahn6
Patrick, this was really a great read.

It wasn't clear to me from the article, but it seems that a lot of the
'syncing' of information between databases and services was programmed by hand
by you. How much time did you spend on this and if you had to re-setup your
infrastructure, would you go with a service that does most of this for you (if
one even exists)?

~~~
patio11
I did all the programming for BCC. I am not sure what you are specifically
referring to with "syncing", but the code to all features discussed in this
writeup is only a few hundred lines. Aside from having to put an HTTP client
in my Java app it is fairly painless.

~~~
tkahn6
I think you answered my question. By syncing I meant that, for instance, when
a customer makes a purchase, a whole chain of events unfolds (databases are
updated, keys are sent out, analytics packages are updated).

~~~
patio11
Yeah, I originally did all of that via ejunkie and now it is all custom except
for e-junkie wrapping the underlying API call. Back when HTML in notepad was
the extent of my programming skill, having ejunkie keep stats and then hand
updating a spreadsheet every month made sense. Now that I'm comfortable in
Rails it is really easy to automate bookkeeping tasks like that.

------
TheSOB88
It took me a minute to realize I was reading an interview. Make this more
evident, please!

------
atomical
"If you spend just a few minutes on Hacker News, you’ll come across Patrick
McKenzie in one way or another"

You can say that again. I am starting to feel the overload.

~~~
dpritchett
Unlike most HN tropes I haven't found the "and here's how patio11 does it"
angles to be tiresome. A one-man profitable non-funded small code-driven
business is chock full of lessons for all of us.

~~~
rmc
Exactly, he's my inspiration to make <http://www.celtic-knot-creator.com>

