Tuesday, July 31, 2007

Code Monkey

Having met up with other Kellogg students over the summer, I have decided that I definitively have had a very atypical summer. I guess that was a given after deciding not to do a standard MBA summer internship. But I am very happy with my summer and am excited with how things are going. Let me give you a breakdown of my typical day:

10-11am: Wake up at 10-11am and eat some breakfast in my boxers.
12pm: Check my email and look at where I left off coding from yesterday (still in my boxers). Figure out what I am going to do today.
1pm: Make some lunch and watch SportsCenter (boxers).
2pm: Head over to Cafe Ambrosia (no longer in boxers...but usually in a t-shirt, shorts, and sandals). Order a medium iced mocha. Plop down and start my daily code marathon. I prefer to sit facing the window, which gives my eyes something to look at while I figure out how I want to code something.
9pm: Cafe Ambrosia closes. Pick up some take out and head back to apartment.
10pm: Watch something recorded on my DVR (Man vs. Wild has been my recent obsession).
12am: Return to code monkey state.
4-5am: Get tired. Read a chapter from a book (currently reading Founders at Work). Sleep.

Rinse and repeat.

Mix in some meetings, gym time, and errands, and that's pretty much been my life every day this summer, including weekends. I definitely don't think it is the life for everyone. But I wake up every morning pretty excited to get something done. I have little idea how things will turn out, but I am optimistic there is an opportunity. I also am pretty damn scared. Every morning, one of the first thoughts in my head is, "Crap! I only have x weeks of summer left! I need to have something to show or else people will think I just sat on my ass all summer." Of course I have pretty much sat on my ass all summer, but I was coding at the same time.

Nerd Alert below...do not cross unless a geek.

During the first part of the summer, I focused on learning Ruby on Rails, which is a new web development language created by the guys at 37signals in Chicago. It is probably the best web development language I have used...from the developer's perspective. I now know why people love using it. But the biggest concern for me is scaling. I have done a lot of research on scaling systems that were built on Rails, and people have made a lot of progress with it. Obviously the guys at Twitter have been able to work around its limitations, but not before they hit their own well-published obstacles. I choose to use Rails because I needed a rapid development environment. The initial version of the site is a proof of concept that hopefully will gain traction. If scaling becomes an issue, then that is a problem I'd rather have than a ghost town of a website. Nonetheless, I am keeping the issue in the back of my mind and will definitely be watching for bottlenecks after rollout.

To get to know Rails a little better, I actually began my summer coding a project website, BSchoolCool (http://www.bschoolcool.com). Nothing fancy, but just a way to test out what Rails could and could not do. I am going to soon post the source code for the website on SourceForge and hopefully have others help build out features for it. I guess the end goal will be to create an open-source version of eVite that any organization could use. Thus I will make my second contribution to the open source community...the first being the initial version of ShuttleTrack (http://shuttletrack.mit.edu), which was a low-cost system I developed to track vehicles over the web. Definitely not the prettiest website, but it worked (at least when the drivers didn't tamper with the CPDP modems so that people didn't know they were actually making a 10-minute pit stop at Dunkin' Donuts). It ended up being fairly successful, where a large percentage of the MIT student body used it and relied on it to let them know if and when the shuttle would arrive at their stop. It was written about in several publications like CNET. The lesson I learned from that project was that you have to solve a need to make any technology successful. Pretty obvious, but there are so many projects out there which are just about being technically cool; but with those projects, the user potential is pretty much limited to other tech geeks (i.e. very small).

Anyhow, I'd like to end this post saying that the tech community is very cool. That's not to say it is not geeky, but more that it is geek chic. Haha...if that term has any validity. The community is a microcosm of the greater capitalistic economy and society. You have your open-source developers who you can liken to people that like to bake for others. They do it for free because it's hobby. Then you have the mom-and-pop bakeries that try to make do (early start ups), the franchised stores that try to appear like mom-and-pop-bakeries like Panera and Cosi (Facebook), and the mega food companies like Nabisco (Microsoft and IBM).

Yet it is a bizzaro microcosm because the winds change so fast and the small guys can have a huge impact on the big guys. A company like Google is what Microsoft was 10 years ago, which is what IBM was 20 years ago. Facebook is looking like the next Google. It is where Google was 5 years go. If you think back 5 years to 2002, Google was at a crossroads. It was well known among the tech community, but still a relative unknown among mainstream America. Google was projected to pass Yahoo! as the #1 search engine soon, but search engines such as AltaVista and Teoma were big looming threats. It was pre-IPO and many questioned whether or not Google had a sustainable business model. But that same year, Google launched its PPC (pay per click) advertising model and signed an agreement with Yahoo! to serve as its primary search engine. Facebook is closing in on MySpace as the #1 social network, is pre-IPO, and most analysts question if Facebook can generate a sustainable business model. I believe the people behind Facebook are smart enough to figure out how to make Facebook a successful public company. But the only question in my mind is how successful. IBM, Microsoft, and Google all serviced a basic computing need: IBM (hardware), Microsoft (operating system), Google (information retrieval). Facebook is in a different situation where at its core, it is not solving a computing need, but a social need. We are all getting busier and busier. Our family and friends are scattered around the country and around the world. How are going to have the time to stay in touch with everyone? Facebook aims to simplify all your social interactions and responsibilities. Why call your friends to know what they are doing? You can just read their News Feed. You don't need to join a gossip circle to know who is dating whom. I am certain Facebook will soon add an IM component, as that is the big missing piece in their website. Thus, my question is actually, "Is there a big enough social need?" Or is this something people just grow out of?

No comments: