After almost six incredible years at Fanzter, I've decided to move on.
There are no words to truly express my gratitude for being a part of such a special company. Founded back in 2007, we've gotten stronger each year, we've built some great products, and the team's commitment to excellence has never wavered.
Sujal Shah, our current CTO, has assumed the role of CEO. Sujal is an engineer and product builder with a passion for inventing. He's been with us since day one and I can't imagine a better person to lead Fanzter into the future.
Lastly, I'd like to thank Fanzter's employees, customers, and investors for their support and encouragement over the years. It's been an experience I won't forget, and I'll always be proud of what we built.
Fanzter's best days are ahead of it, and I look forward to cheering from the sidelines.
p.s. Congratulations Sujal!!
RailsConf is an annual conference held in the United State which gathers
together members of the Ruby on Rails community, new and old, for a few days of
education, debate, comradery and pot pies. The 2012
conference took place last week in Austin,
Texas and Fanzter was there. Most of our server-side software is written using
Ruby on Rails and our team strives to keep pace with the latest developments in
the project. Most of the time following blogs and watching screencasts and
video recordings from conference talks is sufficient. But sometimes you just
need to get face-to-face with other developers and feel the pulse of where
things are headed.
I was asked to participate in a panel discussion titled "Real World Rails Apps
at Massive Scale" along with some
impressive other panelists from Zendesk ,
Groupon , Uken Games and
Blue Box Group. Speaking to a packed room, we
discussed the core strategies used to bust the myth that "Rails doesn’t scale".
Further topics ranged from specific tools used, to how each company kept
performance central to their product’s life cycle. A Q&A period closed out the
talk and continued throughout the conference as attendees stopped panelists in
the halls to dig into more specific topics.
The big opening keynote speeches are always a major draw. With RailsConf, the
almost celebrity nature of the best known members of the community takes that
to a higher level. The event kicked off with a keynote from the creator of Ruby
on Rails, David Heinemeier Hansson (aka
DHH), speaking about the nature of conservatism and fear of progress, exhorting
upon the audience to look at progress as a way forward, not as a threat. The
topics and language of the keynote were typically lively, though the cursing
took some time to get warmed up to DHH’s usual level.
Monday’s closing keynote was by Rich Hickey, software
guru and creator of Clojure, and focused on true meaning of the word simple.
Rich urged us not “complect” concerns within our systems. His functional-driven
approach was a refreshing reminder that there is a huge range of patterns and
possibilities in software design, over which our job is to filter and select
those which are appropriate to the problem at hand.
Day two opened with a crowd favorite, Aaron “tenderlove”
Patterson. Aaron’s talks are legendary and this
one opened strong and finished softly, with plenty of humor to lubricate the
audience between the presentation of new ideas. Aaron presented a few ideas
he’d like to see come to Rails 4, most notably a simple ActiveQueue interface.
He also expressed his own riff on the Fear of Features mantra, organizing
change into three categories: cosmetic, refactoring, and course correcting. The
talk ended abruptly with an almost fear inducing call: “We need to be
prepared.” Following Aaron was the presentation of the Ruby Heroes awards and
a packed schedule of talks and pot pies.
An impromptu Rails Core panel lead into Tuesday’s closing keynote, a talk by
the founder and CEO of TechStars, David Cohen.
David’s talk may have struck some as a bit too heavy on the TechStars pitch,
but plenty of ideas were applicable to most startups and mirrored much of our
philosophy here at Fanzter. Especially resonant were the final two, “Quality
Over Quantity” and “Usage is like oxygen for ideas”.
The final day of the conference was headlined by a live taping of the Ruby Rogues podcast. A popular and sometimes controversial group, the RR team donned silly hats and proceed to riff on each other’s ideas and the questions from the audience.
There were dozens of sessions during the conference, ranging from page speed
optimization to using Ruby to hack a Roomba. The community had been challenged
to make this the most public RailsConf yet, and the intrepid members of the
New Haven Ruby Brigade took up the call. They lead a
collaborative effort to document each talk in near real-time via a public
GitHub wiki. These notes,
combined with the upcoming videos from ConFreaks, should achieve the goal of
making much of the knowledge shared at this RailsConf available to everyone who
couldn’t make it to Austin.
The conference closed out with a long session of “lightning talks”, short talks done rapid fire on just about any topic the speaker wanted. These were quite fun and overall went off well. Everything from Sidekiq (a new background processing library) to “hacking” the airlines’ frequent flyer programs. RailsConf went out not with a whimper but with a roar. And pot pies.
As mentioned previously, Fanzter loves having great tools to help make our products better and help us maintain the creative fever. While fast laptops and big monitors are certainly nice, a less visible tool that I find indispensible is the application performance monitoring service from New Relic. It can be difficult to explain the comforting feeling of seeing my applications' performance in near real time, and then being able to slice and dice the data right down to the individual (rare) slow request.
Recently, I talked with Diane Davidson of New Relic about Fanzter's use of the service and how we've grown up along with it. New Relic was kind enough to compose a case study dubbed "Fanzter scores spot on performance with New Relic". It was quite interesting on our side to reflect upon how much this tool has meant to us over the years. If a site has a hiccup, it's the first place we turn to. Often New Relic is the source of the alert telling us something is wrong. And even when things are humming along, we've got the graphs up on our screens. Knowing what "normal" is for an app is critical to understanding what has happened when performance skews outside the norm.
As Ferris Bueller said, "It is so choice. If you have the means, I highly recommend picking one up."
What's changed since my first post on the
technologies that power Fanzter's products? LOTS!
We often get asked by other entrepreuners, engineers, and even former
co-workers, "what's your stack?". I thought that it would be interesting to
give a high-level overview of the technologies we use and how our stack has
evolved over the last few years. These technolgies helped us to serve over 20M
users in 2011.
We've kept the best of what's worked well for us (Ruby on Rails,
improved on a few components, and brought some fresh players into the game as
well. Our playbook builds on three guiding principles: agility, simplicity, and
performance. We're a small team devoted to building the world's best consumer
internet products. Our tools are the equipment we field to win the day. As
such, we choose them carefully and evaluate their usefulness over the long-term.
The star new player on the team is Percona Server with
XtraDB. Their motto might as
well be "We don't make MySQL, we make MySQL better." We've recently migrated
our primary database over to Percona Server 5.5 and the results have been quite
pleasing. The changes they've made make the performance characteristics of
MySQL smoother and more predictable. And the improved diagnostic controls allow
us to dig in and answer questions we previously had to guess at. I highly
recommend anyone using MySQL check out Percona Server.
NoSQL databases systems have had a huge year in 2011, and our team has been
working with these technologies throughout their gestation and growth periods.
On the NoSQL side we've got Redis and
MongoDB powering components of our operations. We've
shifted much of the heavy lifting in our web apps into
Resque worker jobs, and our in-house
analytics (or as we call it, Fanalytics) is based on
Sinatra and MongoDB. We like the speed and
flexibility of these new players in the data storage space, but have been
careful to prioritize shipping new features to our users over engaging in the
lustful pursuit of new technologies for their own sake.
Taming The Cloud
Fanzter's products have always lived "in the cloud", but how we manage the
servers that run our products has changed dramatically in the last year. We've
pulled in the reigns of our server management and "in-sourced" it using
Chef. We've been able to combine open source
"recipes" from the Chef community with the
system integration tools from OpsCode to simplify
our server deployment and reduce our costs. Best of all, Chef recipes are
written in Ruby, our preferred language.
Not every product is served from our own servers. We've moved some sites and
services to PaaS juggernaut Heroku. The page you're
reading is served off Heroku as a matter of fact. Working with Heroku's
platform has been very interesting. While the platform has experienced some
growing pains, stability and capability continue to improve.
Fanzter continues to focus our cloud efforts within Amazon Web Services
(AWS). We've added their Simple Email Service
(SES) and Simple Notification Service
(SNS) to our acronym soup mix. We've even released
a little ruby gem to make it easier
to tie the God monitoring agent to SNS. Look for
more open source software from us on Github in
Monitoring & Performance
Like many of our peers, we're adicted to data. Graphs, live streams, slicing
and dicing to distill knowledge from numbers. In the last year or so we've
nurtured this habit with expanded tools and services to help us better
understand our applications, servers and users. We've upgraded our subscription
to New Relic's application performance monitoring
platform and licensed it for even more servers. Every new server we launch with
Chef is automatically added to their recently added Server Monitoring service
as well. Being able to drill down and pinpoint performance or availability
problems quickly is key to allowing us to sleep well at night, and to keep our
operaitonal staffing lean and mean.
Besides New Relic, we've also added to our display components. My favorite is a
set of Hubot-based interactive agents in our
company Campfire chatrooms to report on iOS
downloads, social media interactions, and we've built a live world-map that can
show different types of activity from our various products as they happen,
where they happened. Finally we've added the
Graphite scalable realtime graphing system to
our kit. This, combined with the extremely handy
StatsD system allows us to quickly add
metrics to tracking without adding configuration burden.
The challenge isn't collecting the data, it's having enough LCD monitors to
display it all!
2012 is going to be a huge year for Fanzter and we've got a great, fresh
toolbox to work with. Sound good? We're hiring!
For as long as I can remember, Streaks' users have been asking for a way to back up and restore their Streaks data. Back in the old days, there were no easy ways to transfer app data to and from an app. Since Streaks doesn't rely on any kind of web service, getting and sending data was never something that was very approachable.
But alas, we've finally made your Streaks data available! By simply using the iTunes File Sharing functionality (iOS 3.2+ required), you can now attach your device to your computer, open up iTunes, and transfer your Streaks data off of your device. When you want to restore your data, just copy it back over. Easy as pie. No weird web services, no weird new UI inside the app, just simple file access to YOUR data.
Thanks again to all you awesome Streaks users, keep up the good work with your goals!