I just
attended Boston's Startup Weekend and
I had a great time. This was my first Startup Weekend and I had no idea what I
was getting into. I talked with Darius Kazemi from Bocoup just
to make sure it would be fun - that was my 'must be' criteria.
My first goal
was to pick my team: I listened to the 80 or so pitches and was texting a
friend and my wife to see what they thought. I heard a few cool ideas but
wanted to pick something I had half a chance of coding in the weekend. I was
deciding between an app that orders beers at a bar or a website that located
film sites and movie stars (perfect for tourists and movie lovers). As I
mentioned, the goal was to have fun and of course, explore cool ideas.
The bar idea
was swimming in people - lots of them. They also wanted to work in Cambridge -
I wanted to fight for Boston. The movie guys said they would move to Boston for
me - so the deal was sealed (how could you say no to that?). We also had some
good experience on the team, a UI/UX guy from Amazon and a product manager from
a medical software company (that knew enough javascript to be dangerous). The
business guys were great also. We had a hedge fund VP, private equity analyst,
marketer and chip manufacturing manager. We also had Ollie (but
the team didn't know that yet), my dog.
We then
worked until midnight laying out the plans for Saturday. I tried to get the
free domain promised by a sponsor and
organized a power strip for everyone's computer (I just can't help being the IT
guy).
Next day was
an 8am start at Bocoup. We met for breakfast and then I offered the Pubget
offices for a quieter work environment (10 teams working on crazy ideas is far
from tranquil). Our team had some of the provided breakfast and we then
moved to Pubget where Ollie greeted everyone in
typical miniature schnauzer style - jumping out of his skin he
was so glad to meet everyone.
The business
guys starting talking about the pitch and three of us started the plan to build
the app. I now know that an app is not needed for StartupWeekend, but I would
go mental spending 54 hours building a PPT deck with nothing functional. I was
also curious how much we could get done in the time allowed.
The
technology plan was to only commit to a few very easy features and make them
possible to demo. The original ask was for finding where movie stars will be,
but that meant crawling blogs and unstructured sources. This was a non-starter
for a weekend project - we needed to populate the database fast. So we agreed
to just demo the historical part - where films had been shot across the USA.
After a
little bit of searching we found three services that do this and allowed
crawling in their robots.txt file.
Then within a few hours, I had written the code and imported over 4,300 scenes
with a large amount of duplications. While I did this, our newly appointed
javascript guru (Anthony) was getting a google maps key and figuring out
how to display map points on a page and link to imdb,
street view and some other cool things we actually had to cut for the demo.
After getting
the data loaded, I wrote a JSON API
using Ruby on Rails 3.2
(the latest version). The API was designed to be used by the javascript which
powered the maps display. I also added facebook and google login via omniauth.
The next
feature was to write a photo uploading page to let people checkin and share
their photo at the scene. I started to use paperclip but
switched to carrier wave as
it seemed easier to use S3.
I then needed
moved the html static pages Anthony had been working on into views and showed
him how to edit these and use github to commit and push. To support the
collaborative development, I used circle-ci to
run the tests on each commit and then deploy if the tests passed (continuous integration and
deployment).
The app was
deployed to two existing instances I have running on EC2 in
different AZs (availability zones) running apache and passenger (old
school I know, butI have not moved to unicorn on
those machines). This is behind an ELB and
the domain was registered and running in Route 53.
The database was also in RDS. Did I
mention we had an amazon employee on the team? I was already a fan, and couldn't
resist using as much as I could from their stack.
I also hooked
up google analytics and intercom.io just
in case people started to use it and we wanted a CRM. After
an 8am start and a midnight end, anything was possible.
The UI/UX was
finished around 8pm on Saturday, while this backend was still being developed. At that time we
realized we really did not have the HTML/CSS/JS skills to implement the UI.
However, we had so much functioning (facebook, photos, maps, street view, api,
crawling, etc) it would be a pity not to demo that. The pitch was a strict 4
min - so we could not do everything. We decided to switch from static mockups
and work on the live site instead.
We worked
solidly through to midnight (visiting Bocoup across the street for dinner). We
agreed to return to Pubget on Sunday at 8am. The pitch practice was at 11am so
we didn't have much time. The final hours were spent on the checkin pages,
street view and a simple login home page. We also created a static home page of
what an iPhone app could look like. The site mostly works on the iPhone but we
decided very early on coding an iOS app was in none of our skill sets.
I ran through
the demo a few times as practice. I also noticed that the room had two screens
so could handle two computers. We decided to use one screen for the deck and
one for the demo. This would allow us to maximize the 4 minutes and not have to
fuss about switching from PowerPoint to Chrome.
Having said
that, none of this prepared me very well for the demo. The Google maps locked
up half way through the demo while scrolling. I was not able to demo the photo
upload and facebook features at all. I let the team down and felt horrible - I
really feel for everyone that has a demo hiccup and there is no chance to
recover. The timer was not stopping so we moved on to the business side of the
talk.
I later
googled this and found it happens when you scroll off the screen and the
javascript does not know if you are still scrolling or not. The fix for this is
to click outside of the map and then back in. However, when my screen resized
down from retina display to video projector resolution I had nothing
else on the page to click - so I was just stuck clicking around and nothing
working.
Despite the
demo fail, the business side still managed to impress the judges with their
research and quickly gained knowledge of the tourism industry. We placed 3rd!
Ollie also appreciated the walk when some of the team hit the streets to
interview tourists nearby at the Boston tea party museum.
Ultimately, I had a really great time doing what I love to do, building
software!
A big thanks
to my hardworking team and of course the volunteers/organizers at the startup
weekend.
I'd highly
recommend a Startup Weekend for anyone interesting in startups. It was
definitely fun, fast and best of all - inspiring!
If you would like to see the app, click here to see ontheset.co.