How BuyMePizza.net Launched in a Week
A place where you can buy starving strangers a pizza gift card and win prizes
Once upon a time I got a job interview for a software developer position with a company whose two co-founders were so proud that they crammed this business together and launched their webapp in a day. It was a confusing and mysterious product, and not the greatest webapp. I’ll just leave it at that. The initial technical screening had 10 aspiring developers pulling their code from bitbucket and pushing it back in after we made improvements. Pretty smart on their end — get 10 developers to spend 4–5 hours on improving your webapp — they just got a free week of work! Anyway, I didn’t try to improve their code so I didn’t get the job, go figure. I’m not sure if any of the aspiring developer pool actually got hired, maybe it was just a ploy for some free work. I’ll never know. Anyway, that process did inspire me to launch buymepizza.net in a weeks time, though. I thought if these guys could make a business in a day, then why don’t I give it a shot with one of the great ideas I sit around and brood about? I didn’t want to launch a piece of crap, though, and some things I dream up might take some research — so I set my target at a week.
The initial idea
#Buymepizza came from a shitty day I was having — this company I had given a chunk of my soul to was asking me to move away from my beloved home in Hawaii, I was trying to blow off some steam in the surf that day and my board nose-dived in to the reef and snapped in half, and my bicycle had a flat tire! It was just crap.
I went for a drive and called a friend to vent, he invited me over that night for a beer and pizza at sunset. That moment couldn’t have made me happier — that ice cold beer, that warm beach sand, the saucy pizza, squinting and laughing my ass off all the way through the golden hour.
That’s when the idea popped in my head “Why don’t I create something so we can all help each other out and send each other a little pizza on a shitty day?”. Vent your shitty day, someone out there can read it and buy you a gift card. The buyer gets rewarded by being entered in to four separate prize drawings. Sounds cool, and it might help some hungry college kids out, too!
Great, I decided on an idea. Now, let’s plan the work. Then, work the plan.
Design and Plan
I used to be so shoot from your hip it would make you sick. I was the guy who would just attack work like I was heading out in to the jungle with a machete trying to blaze a path to a waterfall with no research online, no talking story with local folk, no indication of how much food and water to bring; No plan, just pure execution. Then I figured out I was doing a lot of backtracking, rework, and sometimes never even catching a glimpse of that proverbial waterfall.
I’ve come a long way from that, though. I eventually made the jump to chicken scratch in a cool notebook and then the subsequent quantum leap to utilizing online tools after I got certified as a PMP and actually realized the value of planning ahead. I’m not one of those advice giving guys, though my friends tell me I could be (life has thrown me curves, and I’ve driven myself to some pretty wild ups and downs in life). But, I’ll give new developers one critical piece of advice that will give you some zen and allow you to flow through your projects with ease and serenity with a quote I stole from Eisenhower: “…plans are useless, but planning is indispensable.”
I typically design first. I want to get what the end product looks like out of my head and then on to paper. You know that little eye trick where you cover one eye, look at a plus sign on a piece of paper (or monitor, it’s 2017) that also has a circle on it and you move closer or further away with your uncovered eye fixated on the plus sign to find your blind spot when the circle magically disappears? I feel like I find my blind spots when I go through the exercise of putting my design down on paper. I use balsamiq for slapping wireframes together. It’s a powerful little tool and generating some actual mock ups to bounce ideas off of someone else is an invaluable asset. Here’s what I came up with for an initial design:
Simple, but it gets the job done. You’ll see I didn’t stray too far from the initial design in the final product. There were some things in my blind spot — a moderator login, an about and contact page, so on. Also, I have an edit link in the initial design which would likely require a post be tied to a user. But, I didn’t want to go with a full fledged user model because I wanted this to be absolutely simple for users; visit, post, buy someone pizza, nuff said.
Next up was planning. For project plans, I use trello. You can go simple with trello, or super in depth and get complicated, that’s why I love it! I’ve had 6 month projects on trello using their github add-in and others to connect with team mates, assign work, follow up on things, and really document all the ass we’re kicking. For a quick project like this where I want to tackle it in a week I keep it simple with three lists: Completed, In Progress, Not Started. I add “cards” to not started and move them around as I attach this solo project with ferocity.
ATTACK! The Plan.
When I say attack, I don’t mean line up your infantry, sound the bugle horn and war drum, and take turns shooting like gentlemen. No, I mean act like a savage beast, use guerrilla warfare, blood and guts EVERYWHERE, be relentless, take-no-prisoners-make-that-thing-your-bitch, ATTACK!
So, that’s what I did from ‘rails new buymepizza’ all the way to dropping in my production api keys and going live. I started it all on a Friday morning while on vacation, and worked relentlessly until Friday morning of the next week. Built the main landing page, new post page, and got to work on all the innards of the system. I used carrierwave and S3 on AWS for letting users add a picture to their posts, recaptcha for weeding out spam posting, heroku job scheduler for recurring rake tasks, bootstrap for the overall look and feel template, stripe for getting paid, setting up subscriptions for people who want to pay it forward each month, and so on. I won’t go in to specifics here about the exact code I was using or the steps I took to set things up — those are all blog posts for another day. It helped to have done similar things in code before so I could reuse a lot of things I had already done. I worked morning, afternoon, and night on this thing so much so that I was working it in to my daily conversations with friends and family. I became obsessed. It felt good to be inspired by my work. It didn’t feel like ‘work’ at all. I haven’t felt that way in a long time.
Plans never go the course in war, I think that’s what Eisenhower was getting at. Which is always the case for developing, too. For instance, I started out in my mind working with one company’s API for their gift card delivery services. I worked in their sandbox test API, got all set up with their testing server and was ready to go with them. Loved the look and feel of everything and all our interactions. Then, when I moved to production I realized they only had one pizza vendor on their list of gift card options even though in their advertising they had 3 or 4 different options. Not cool, man, this is #buymepizza! Pizza is what gave this idea flight in the first place. So, last minute, I had to completely switch companies. This meant I had to restart all that API interaction from ground zero and code it up all over again using a different API. Luckily, because I had been crashing and bashing my way through this I only wasted a day and a half or so on it. It was really unfortunate because the first company had really great customer service and their response time was blazing fast. Maybe I can still incorporate their API down the line.
Behold, A Product.
“Any product that needs a manual to work is broken.” That’s a quote by Elon Musk. That’s exactly what I was going for with BuyMePizza.net. You come in, you post, someone buys you pizza, they get entered to win. Simple, fun, it helps people in need of some cheering up or with a hungry belly. Does it mean I’m done? No, there’s always a next iteration. The product doesn’t have to be perfect, but the process should be aimed to excellence. That’s why I plan, research, design ahead of time — to try to alleviate any pitfalls that may come up in the process of building a product.
At any rate, BuyMePizza.net’s first iteration did come together in one weeks time, which I’m extremely proud of. Will it break? I hope so. I had a lot of fun and I’ll continue to work on it. But, I worked really hard on this idea because I believe in it. There were rough patches where I thought about quitting, and other times where things were easier than I remember doing the first time.
That said, I hope users find BuyMePizza.net a pleasing place to interact, post stories, beg for pizza, and pay it forward and buy a pizza for someone who really needs it. I set out with this dreamy image of hot sand on my bum, cold beer in hand, and a juicy slice of pizza in the other with a side of laughing friends and tanned skin. Hopefully, that same happiness I felt that night gets delivered to some lucky #buymepizza posters.