I’ve been working feverishly on my developing world capstone project, which is a Ruby on Rails e-commerce+content management website. I’m starting to realize that I’m slowly becoming burnt out on web programming. I’m fairly certain that this is just a phase; this is what I’m thinking:
Making websites is great because your products can be used and seen by huge numbers of people with very little upfront time and cost commitments — this is the main reason why I fell in love with the web in the first place. I remember when I made my first website and got my first user contribution from a stranger; I was so happy I jumped out of my chair and ran around the house for a while. It’s an awesome feeling having regular people use your product; I’d even go so far as to say that I live for it, partly at least.
What interests me the most about the web is scalability. I would love to be Twitter’s lead softare engineer right now, facing tons of downtime and pissed off customers, figuring out clever ways to deal with insanely computationally-intensive problems. I get excited just thinking about it. It seems to me that the only way a 22-year-old kid could be involved with scalability whatsoever is if the company was a very, very small startup. Otherwise the chances are high that an older, more experienced developer will own scalability issues.
Lately I’ve been recalling all the hours I’ve spent in the CSE labs hacking Linux kernels, extending a poor implementation of the EXT2 filesystem, creating peer-to-peer networking applications, taking a single-threaded web server and making it multi-threaded, creating my own preeumptive thread library in C, lexical analysis to create a timeline of events, creating Netflix movie recommendations, computing PageRank for Wikipedia, etc. I badly, badly want more of this. I want meaty, huge, disgusting engineering problems that make people scour and cry at the mere thought of them. Now I’m not arguing that I’m capable, qualified, or what have you; I’m merely stating my interests — to be engulfed and overwhelmed with vomitous engineering problems dealing with scalability.
Partly what has motived this post is my frustration with web programming. The recent Mars mission, Phoenix, has also got me thinking some. I’m hoping that my desires will be fulfilled while at Google this summer. In fact I’m confident they will be. A wise man once said, “Be careful what you wish for.” Hopefully I won’t regret this post in the future :).