Who Stole The Hill?

You wouldn't know it from this photo but the white of the cloud hides a whole Wellington hill with a very famous view. 10th Feb, 2018

Isn't this the attitude we'd want in all our software-type people

Source: Developing meebo

Welcome to Meebo! 12/7/2005

We're just shy of our 3 month birthday but it feels like forever. Lots of you have asked us a little bit about how we develop meebo -- so I thought I'd give a little overview. Maybe it'll be helpful if you're trying to get something off the ground.

Working on group projects at school and for fun taught us a lot about organization and how important it is to have systems in place that make you more efficient. We started out using CVS as source control (even with only 3 people, typing rm -rf * is too easy) but then switched over to Subversion. Atomic changes are great and working with branches is so much easier.

Setting up a backup system is key too; you don't want to lose all of your work! We home-brewed a nightly backup script that keeps the code repository safe, as well as the blog and forum. Speaking of scripts, they make life so much easier :) With so many servers, it's a pain to have to do things by hand -- automation helps a lot. We have an assortment of scripts, from release scripts to server load monitoring scripts.

That brings me to statistics (Elaine loves statistics). We currently use RRD, awstats, cacti, and various other tools that help us keep track of how we're doing in terms of load, growth, and overall health of the system. It also gives us something to share with everyone.

Balancing efficiency with scalability is a tough task (it keeps me up at night). We have to think about how efficient we are, and what kinds of things we need to do to up that value. This is where scalability is key, and why it is so difficult. AJAX apps are really hard to scale well -- a core tenet of ours is to keep the user experience the best it can be (no compromises here), and we have to constantly think about upholding that tenet while scaling (OProfile and gprof are great profiling tools to use) . When we're not releasing features, I'm constantly pushing new backend releases.

Server management! Now that's a handful. Elaine and I run around in our sleep chasing off server demons. We constantly monitor our boxes to make sure everyone's happy and running; I regularly have to update the software packages, check for changes to LightTPD, restart system procs, and on Friday nights, reboot if necessary. Seth wakes up early to make sure he can still login, and Elaine and I pop up a few times a night to check server loads. This is where I say again, scripts are essential!

Once we're ready to release, we test test test. We have to support multiple versions of multiple browsers on multiple operating systems. We set a high standard; we won't release anything that we think is incomplete or we would not use ourselves. We spend at least two days per cycle running through hundreds of tests -- TestLink, Bugzilla, Valgrind, and ViewVC (formerly ViewCVS) are just a few tools we use to help the process.

Which brings to the last and most important part of our setup: you guys! We rely heavily on the forum and the blog to gather feedback and suggestions. They help us spot bugs really early, and let us know when we're on the right track. Also much appreciated is the help we've gotten from volunteers that moderate and answer questions for us in the forum. You guys rock!


I know, I know - I'm in love with the meebo concept and will push it harder than I would Google. But this is what it's about. Doing it. Not just being geeks and pretending to know stuff but actually doing it.

The difference between those that know it and those that do it. They do it!

That's why I will support Mike Kirby and his dream to be in the NZ Archery team for the Beijing Olympics - he's doing it!