God dammit, I bought a WordPress theme

I caved. I bought a WordPress theme. $45 I swore I would never spend, and what’s more, against the advice of my girlfriend (and she always gives good advice). I don’t know what overtook me, perhaps it was that ad that I have to look at everytime I log into WordPress, perhaps I was bored with the old theme. Whatever it was, it beat my resolve. I feel like the guy who buys the Snuggie because “if you call now, we’ll give you another for free!”.

While purchasing the WordPress theme was probably an impulse buy, it does bring up an interesting question. Does the look of your site make that much difference? Unfortunately, much to the chagrin of hard-core techie programmers, the wrapper often matters almost as much (if not more) than the content itself. People learn best by example right? So let’s look at one.

Hipmunk vs. Expedia

In case you’re not familiar with Expedia or Hipmunk, they’re basically services that allow you search for the lowest airfare. Both sites give roughly the same results back. Here’s a picture of the two homepages side-by-side:


This is immediately obvious when you look at the two sites. When visiting Expedia my eyes seem to glaze over, darting from box to box trying to sift through the ads to find the actual product. I guess Expedia is hoping that by the time I actually find it, I’ll be convinced that if I buy a flight from Expedia I’ll have more money in my bank account (who wouldn’t after reading the word ‘save’ 17 times). In contrast, Hipmunk does away with all the useless ads (do people actually click those things?). The only thing that seems to distract me from finding a flight is the little chipmunk holding a slingshot. And let’s be honest, who doesn’t enjoy looking at the chipmunk? You can lose your audience in the few seconds it takes them to find your product, so although it’s tempting to rack in all  that money from ads, refrain from having more space devoted to ads than content. I understand ads can be an important revenue source for websites, but do it in more inconspicuous ways.


If your site is easy and simple to use, people will come back. Think of Chipotle, they make burritos, but so does every other Mexican restaurant. Chipotle beats them on simplicity, there’s no easier way to pick out a burrito than to simply walk down a line of ingredients and point at an intriguing looking salsa. Other restaurants will often bombard you with menu choices where you’re forced to read the fine print of every item, only to be foiled when mushrooms somehow slip into your burrito. The same idea applies to products. Sometimes choices overwhelm the user rather than aid in the decision process. Expedia presents you with a sea of radio buttons. To be exact there are 12 radio buttons and 1 check box – not to mention that the form changes every time you select a different radio button. Comparatively, Hipmunk has the 4 essentials for planning a flight. They offer more complicated features but don’t force them on you unless you need them. If most of your users only need a subset of your available features, then by all means, only present them with such.


That extra somethin’ somethin’. Every site can more or less do away with clutter and make their site simple, but to really stand out you need something extra. Hipmunk accomplishes this with its friendly and inviting chipmunk. Apple accomplishes this with their sleek and slender products. Expedia doesn’t accomplish this. There’s no intangible force guiding me back to Expedia. Apple can captivate crowds of people in their stores, produce unwavering fanboys and sell ridiculously priced products all because they have pizzazz. Despite all the banter about Mac vs PC, for the lay user, Mac and PC provide very similar products. They both edit text, browse the internet and save photos. But they are sold for dramatically different prices. Having pizzazz is difficult to obtain, but creating a product that has it will elevate you above your competitors. This post talks all about how to give your product pizzazz.

So what can you do?

Cover your bases

Take care of the easy ones first. Make sure your site is simple, direct and to the point. Often this is difficult when you’re the one making the site. Feedback is critical during this stage.

Discover your inner product

Finding that pizzazz in your website or product is often the hardest thing to do. Obviously it takes a little creativity, but there are good methodical ways to help you through.

  • Create a word cloud – One good tactic that works for me is to create a word cloud. Mapping out a nice web of all the words that are related to your website can help you understand what your website it really about. Sometimes staring at your web long enough will reveal a common theme. Use that theme to make design choices in your product.
  • Take a shower – It’s no surprise that some of the best ideas are discovered during a nice hot shower. There are no facebook notifications or text messages to disrupt your shower time – use the time to brainstorm how you want your product to feel (will it be clean and crisp? friendly?)
  • Don’t stop until you get enough – It’s not enough to simply brainstorm one idea for your product. Maybe your first idea will be your best idea, but many times it is not. Keep thinking of how you want your product to feel. After you come up with 2 or 3 ideas, you’ll have more perspective and be able to choose the best.
  • Be bold – Some crazy ideas work well, some don’t, but either way you’ll get yourself noticed. Play with something bold and new. The Hipmunk chipmunk is a perfect example. A chipmunk as a logo isn’t usually one’s first idea for a airfare finder website, but it was bold, and it succeeded in creating a new feel for the product.
These tips will by no means guarantee success, but it can help you get on the right path.


As hard as it is to swallow, design is important. So do what it takes to make an awesome website – grab those CSS stylesheets by the throat and wrestle them into submission and curse Internet Explorer all the while. You have one shot at impressing the user, so use it wisely.

Stanford Free Classes – A review from a Stanford Student

Recently Stanford has started a new initiative to bring free classes to the public. From what I’ve seen from statistics, this venture has been extraordinarily successful with over 100,000 sign ups. Most likely only a fraction went through with the class, but that’s still a lot of people, especially for the first time. There has been quite a lot of press about these classes, but none seem to take into account the effects it has on the students that attend Stanford. Despite the success and the raves of great reviews, I was not at all satisfied by the CS229a: Applied Machine Learning, one of the three courses offered to the public fall quarter. Before I begin though, I want to say that I completely agree that education should not be locked up for only a few to use and I also agree that since education, in my mind, is a right, then it should be provided for free. Thus the Stanford initiative to do this is a great thing. However, there are quite a few things that hopefully Stanford will change in the future.


First and foremost, the academic rigor of Stanford classes should be upheld. Going into CS229a, I knew it was going to be easier than its counterpart, CS229, since 229a focused on the applied side of machine learning and thus we didn’t have to learn the nasty mathematical part. In case you’re not familiar, the format of the class is such: watch 5-6 online vidoes (~10 minutes each), complete some review questions, complete a programming assignment for each week.

Since the video lectures were excellent in the class, I’ll start with the programming exercises. At the beginning, some of the programming assignments were challenging since I wasn’t used to matlab/octave programming or machine learning. However, the level of difficulty dropped off drastically as the quarter progressed. At its worst, I completed a few programming assignments without even knowing that the corresponding lectures had been released (I have never done machine learning in the past). This is not a tribute to a stroke of brilliance I had, but rather how worthless the assignments became. I completed the program without even knowing what I was doing. The pdfs and comments associated with the programming assignments became so informative and gave so many hints that almost no critical thinking was needed. After talking to a TA (teaching assistant), it seemed that the programming assignments were tailored to fit the needs of the public (apparently large streams of questions came in after the first assignment was released). It’s definitely fair that there would be a lot of questions, people come from all kinds of different backgrounds, but to sacrifice critical thinking so that there are less questions is not something I’m OK with.

Next, there were the review questions. These were simple from the beginning to the end. I don’t have as much of a tiff against these as sometimes it’s good to just refresh what you learned in the lectures, but the questions hardly ever asked anything that the lecture didn’t explicitly state. A little thinking would have made these more interesting.

If these classes are going to be labeled as Stanford classes, then they should be taught as such. CS229a has by far been my easiest CS class (besides maybe the final project) I’ve taken at Stanford. Normally, I wouldn’t have had a problem with this, except now that Winter quarter registration has opened and I have found that half of my classes are now open to the public in the online format, I’m worried that the rest of the classes will follow this trend. If all of my classes suddenly become as easy 229a, I will be seriously disappointed. I came primarily to Stanford to learn and study – classes like CS229a don’t satiate that desire. Perhaps it’s a fluke and the other online classes will be much more difficult, but it is still worrisome. Stanford needs to keep rigor even in their online courses – it’s useless to lower the bar so low that it only takes a small step to get over.


In the future, I think it’d be best for Stanford to separate the students from the public for a few reasons.

Online lectures suck. Sure, they’re great for rainy days or people learning at a distance or people that don’t go to Stanford. However, these new classes are getting rid of in-person lectures completely. I met barely anyone in my CS229a class. Everything was done alone in my room, which is kind of crappy especially when there is such a nice campus right outside. If Stanford is going to offer these classes, then by all means offer them, but don’t make students take them as well. Have the professors teach as many students as they can in-person and the rest can watch online.

Stanford “free” classes aren’t free. Stanford students have to pay for them. The fact that I’m paying for them doesn’t bother me, the fact that people who aren’t paying for them have changed the class more than the ones who have, does. I’m sorry, but if I’m going to have to pay $50,000 a year to go to Stanford then the classes should be tailored to fit the students – not a working professional who wants to learn a little machine learning on the side. That is why I propose that they should separate the classes. Then if the assignments aren’t clear enough or whatever, the online public version can tailor to suit their needs and the in-person version can tailor to suit the students.

If all of Stanford’s classes are to be open to the public, then all those classes will quickly lose their value. By establishing a separation between the students and the public, Stanford will maintain the value of the classes for its students and the public will still be able to learn about a variety of topics.


The initiative that Stanford has taken to open up education is great. However, God help me if all my classes become 2 hour weekly online lectures with review questions and auto-graded programming exercises. Stanford can expect a letter from me asking to get a cut in my tuition if the classes begin to go the way of CS229a.

Crafting the worst interview process in 8 easy steps

As a student, I’ve had a fair number of interviews and have discussed with others some of the ridiculous things companies do during the interview process. So I decided to put together a guide to concoct the most painful interview process based on things I’ve heard and experienced. Enjoy!

Step 1: Email potential interviewee

Start out normal. Email the victim interviewee explaining how interested you are in finding out more about him – how you’d like to see if he or she would be a good match for the company.

Step 2: Ask for potential dates for phone interview or in-person interview

Keep the facade going, lure him in by seeming like you will actually schedule this interview. This is an important step, this gives the interviewee hope. That ‘hope’ has to be enough so that he will stick with you until the dirty end.

Step 3: Wait until after those dates have passed to respond

Perfect way to start the process. You’ve probably peeved him a little, but his emails are still full of niceties like “Thank you” and “Hello.”

Step 4: Repeat Steps 2 & 3 a sufficient number of times

Break his will by repeating steps 2 & 3. What’s a “sufficient” number of times? Some key indicators are: the failure to address you by your name at the beginning of the email, no more “Thank you”s, noticeable terseness in his responses.

Step 5: Give the wrong address to your interviewee

So you’ve finally worked out a date. He’s probably pretty relieved and he might even ask you where the office is. Nail him here by “accidentally” sending him the wrong address. He’s a busy guy so taking time to drive somewhere during the work day is most likely a hassle at the least. Even better, the interviewee is a student and doesn’t even have a car. Now that student has to pay an arm and a leg to get/borrow someone’s car. Score.

Step 6: Reschedule with correct address

You can lose him here, so your apology email must be sincere. Pretend like you’ve turned a new leaf. Reschedule the interview with new vigor and assure him that you’ve given him the correct address.

Step 7: The interview

Give the guy hope. Toy with his emotions as much as possible. Tell him how much you need his skills and how he would be a great addition to the team. Throw him softball questions that you know he’ll knock out of the park. Make sure the interview lasts a long time – you want to make sure you really wasted his day. Then end the interview with a firm handshake and say “We’ll get back to you soon.”

Step 8: Never Respond

This is key. Up to this point, it’s all tolerable – the interview process is usually not fun. Miscommunications happen all the time, your interviewee can look past this. Long interviews are fine when your interviewee sees the value in it and got a chance to meet some of your team. However, simply not responding after he comes in for an interview, after taking time out of his day, after sweating through all your interview questions is a small push that will make him never want to come back. Maybe it’s because it’s so easy to write a response or maybe it’s because an answer would put to rest his thoughts – whatever it is, this usually does the trick.