Internships

March 15, 2011

This quarter has been utterly insane.

My interest in entrepreneurship, along with my job search, has made 2011 by far the most epic year of my life, and it’s only March. I will never regret my choice of Stanford. I co-founded Dormlink, met the founders of Courserank and Palantir, and had coffee with the founder of BASES, the largest student organisation at Stanford. I’ve also learnt to snowboard, discovered club (and/or partner) juggling and somewhat reinvented my life philosophy (1, 2).

One of the main features of this quarter has been my search for an internship, an exciting but laborious and crushing experience which has been haunting me since October 2010. It hasn’t been easy, especially as a freshman: I applied to over forty companies (from Lockheed Martin and Boeing to Google and Facebook to startups like Addepar). I was completely ignored by about thirty of them and turned down by something like five. I had nineteen scheduled interviews including one on-site interview and two in which the interviewer didn’t call (by the end I felt really bad for my roommate having kicked him out of the room so many times). I got turned down for reasons ranging from poor programming form to lack of experience with Javascript. There were several occasions on which I completely lost hope and I now agree with one of my best friends here that hope is never a positive emotion (and to some extent sympathise with Kierkegaard’s ideas about resignation). I guess that’s what happens when you get your hopes repeatedly elevated then dashed against the rocks by an interviewer forgetting to call you. In hindsight I went through a fairly major (by my standards at least) existential crisis and came out the other side with a reformed philosophy based on perspective and a happy-go-lucky mentality. I’d like to thank my closest friends–you know who you are–for being there for me when I was feeling down and helping me through it.

But I learnt from every dead end, requesting feedback and looking up the things I didn’t know afterwards, and ultimately ended up with several offers: Google Associate Technology Manager, Facebook Software Engineer, Addepar (a truly awesome startup created by a co-founder of Palantir) Software Engineer and Ning Software Engineer. A man can be destroyed but not defeated.

So the hard question was which one to go for. I ultimately chose Facebook. I didn’t really have a particularly rational reason for this, but the closest I could get was:
1. I plan to work on the Stanford Solar Car this summer and Facebook is right next to campus
2. The sheer impact I’d be having on the world at Facebook is ridiculous. The user to engineer ratio is something like 1.2M and I’ll be pushing code to 600M people within weeks of starting. This definitely satisfies my epicness criterion.

Throughout all this I’ve become increasingly disillusioned by Google. The more I read about the company, the more I realise that it’s no longer the promised land. It’s become too big and has no choice but to give in to shareholders who are in it just for the business, and whenever engineers cede power to businessmen, bad things happen. Software engineers (and even chefs!) leave for other companies and startups like Facebook (the usual reasons cited are better pay and bigger impact). The recruitment process is revealingly slow, indicative of bureaucracy – to illustrate, I’ve included an approximate chronology (see below). The Google process took almost half a year.

Everything culminated today, Mar 14 (Pi day). I called up the recruiter at Facebook, cycled over and signed the documents. This summer is going to be amazing.

Google

Oct 2010 – Submitted application via website for their Software Engineer summer internship

Nov 2010 – Received email saying they want to interview me for an Associate Technology Manager internship.

Dec 2010 – Interview #1. Went terribly.

Jan 2011 – Still no response. Sent follow-up email. Received an email saying they want to go through to a second interview. The recruiter called to give me some advice (Google Voice dropped the call half way through). Interview #2 was scheduled but they didn’t call. I scheduled another interview.

Feb 2011 – Interview #2. Went OK, not brilliantly. Asked some business (i.e. not technical) questions which really threw me.

Mar 2011 – Received email saying I passed the interviews and they’re trying to match me with a project. They sent me an acceptance email soon after.

Facebook

Feb 2011 – Applied via the CDC Website. Interview #1 and #2 on Mon and Fri of the same week. Quote of interview #2: “[tersely] Doesn’t work. Try ‘[some input]‘. Oh wait. [pause] Actually, I think it works.” At the end I asked my interviewer what the next stages are. He said he’ll submit feedback and “to be honest it’s going to be very positive” – AWESOMEZORZ!!!!!!111one. At the end I asked him facetiously about The Social Network. He said Zuckerberg is really a normal guy, the film is completely factually incorrect, but it’s cool that there’s a film about his company :) Days later I was accepted. They called me to tell me about the offer.

Mar 2011 – Intern Day. Went to Facebook HQ (a 5 min bike ride from the Stanford campus). Very cool. A few weeks later I accepted the offer.

Addepar

Feb 2011 – A friend suggested I apply. I sent the CEO my resume + cover letter. Interview #1 and #2 happened. I also had lunch with the team at the HQ in Mountain View. They showed me the product and I got to know the team. I’m really excited about this – I think it’s going to be really big. I emailed them saying I have an offer from Facebook and that I will probably not be doing their on-site interview. They emailed back and persuaded me to do the on-site anyways.

Mar 2011 – Addepar on-site. Got interviewed in turn by several of their engineers. Got accepted.

Ning

Feb 2011 – Two interviews. A couple of weeks later, within the same 5 minutes, I got an acceptance email from Ning and a rejection email from Dropbox. Ning called, telling me about their programme.


Dormlink: One-window dorm bonding and coordination

February 7, 2011

Since November, I’ve been working on Dormlink, a social network for dorms that enables residents to connect in a more useful and private way than any other social networking site does. Alex and I came up with the idea while trying to find a good solution for dorm websites (in a somewhat reminiscent fashion to how Firefly Solutions began). Its primary strength lies in its dorm-centric-ness (yes, that’s a word), making people feel more comfortable to share and open up than on (for example) Facebook. So far we’ve applied to the BASES 150k challenge and sought the counsel of some really awesome people. If this gets big, Dormlink will be my first start-up. That’s a somewhat scary thought.

For the techies, it was written in PHP/MySQL and made use of jQuery and the Google Maps API.

Check it out! http://dormlink.me/. So far we’ve only released it to two dorms at Stanford, but you can sign in on the demo account to see what it’s like on the inside.

I don’t have too much time now to do an in-depth blog post on it, so here’s a feature list (some items are yet to be implemented).

Corkboard

RAs often create forms and surveys online and try to get people to fill them in. The current mechanism for getting responses involves simply repeatedly spamming everyone via the mailing list. The surveys aren’t aggregated anywhere so residents tend to lose track of them and there’s no easy way to find out who hasn’t filled in a form.

We solve this with our ‘corkboard’ feature, an integrated mailing list that combines the best of both Facebook groups and email lists, builds upon it. Here, you can sharem comment on and ‘like’ text, pictures and links. With surveys and forms, when an RA links to a SurveyMonkey form (for example), each resident will get that added to their list of surveys to complete and tick off items as they’re completed. The survey poster can then get a list of people who haven’t filled out the form.

People

You can get a list of residents of your dorm. Further, when you register, you enter your room number and you and your roommate get your own webpage. On this page there is a whiteboard on which other people can doodle.

You can also add your classes and major to your profile and find people with whom you share classes and majors. You can then contact the entire group to (for example) arrange a study session.

Stuff

The stuff page is where you can post things you want to sell / lend to others within your dorm. Since the only people with whom you are allowed to interact are people in your dorm, you save yourself having to go into commercial transactions with strangers.

Calendar

Dormlink has Google Calendar integration so if your dorm has a calendar, you can add it to Dormlink.

Places

You can share places of interest with other people in your dorm on an interactive map. I stayed up till 3am implementing this, learning the Google Maps API on the fly.

Projects

We’re considering renaming this to ‘workspaces.’ Here, you can create your own social workspace based on a theme of your choice. This is probably best explained through our archetypal example of dreams: you create a project called ‘dreams’ and post in the description something like ‘post your most interesting dreams.’ People can post, comment and vote on dreams, then sort the entries by popularity to get a list of the top ten dreams of all time. We’re considering extending the functionality of this to other things to enable collaborative workspaces, notes sharing and elections.

That really wasn’t that brief; I should stop doing this whole obsessive writing thing… Oh well, definitely check it out – and watch this space!

Oh yeah, the Stanford Daily also ran an article on it which was pretty awesome. It’s the first result on Google for ‘granola bar stanford daily’ :P


Inovazone

June 25, 2009

It suddenly strikes me that I haven’t been blogging much recently. Exams finished several weeks ago but I have been somewhat busy.

In particular I’ve been working on a new site for a client, Inovazone. In the words of the site’s inventor, Alastair Darwood:

How does an invention go from a scribble on a page to a world-changing product that advances humanity? The answer is that at the heart of the invention there lies a set of distinct and crucial necessities that the invention is addressing … Until now, the only way in which necessities were discovered was through large companies carrying out expensive research, or a spark of genius from someone who suddenly sees one and thinks of a solution. Inovazone is designed to change this. The idea is that users of the site post their ‘necessities’ (short explanations of problems, ‘necessities’, they think need to be solved to benefit them (or humanity)), or rough outlines of inventions they would like to see and anyone can browse the necessities if they want to and look for interesting problems to try to solve through innovation. This could be in the form of an invention or simply a quick online response to the post on our comments system.

Interestingly enough, there doesn’t actually yet exist a site or system available to the general public that serves this particular function by providing a framework within which ideas for inventions are openly submitted and accessed, so I agreed to work on it, especially considering the core of submitting and displaying necessities is a relatively simple PHP/SQL project.

Submitting a necessity

Submitting a necessity. Click to embiggen

What I found particularly compelling was that, according to Alastair, everyone with whom he’s discussed the site has expressed enormous enthusiasm for it, and even a seasoned inventor he’d talked to had described the idea as long overdue and predicted huge success. Although I originally liked the idea and somehow felt it would do pretty well owing to its novelty, I for some reason assumed one would obtain mixed reactions in discussions.

In terms of the hard sell, we’re employing several different methods to publicise Inovazone. We’ve created a Facebook fan page and a Twitter account – feel free to follow us (@inovazone). One.com also kindly provide adwords coupons so with some SEO we might be able to appear in ads on relevant Google searches.

The site is currently about to go into beta testing. From wiki:

Beta testing comes after alpha testing. Versions of the software, known as beta versions, are released to a limited audience outside of the programming team. The software is released to groups of people so that further testing can ensure the product has few faults or bugs. Sometimes, beta versions are made available to the open public to increase the feedback field to a maximal number of future users.

The idea of this is simply to fine-tune what we already have rather than to add more features, though both these are desirable outcomes from this round of testing; though for me personally the primary objective is to see whether the system works well with a large user base. So for that to happen we need some willing volunteers to go test out the site: anyone reading this is welcome to join the test group. Go ahead and post as many necessities as you deem reasonable, and comment on existing ones. Try out creating new subcategories and send us feedback about features that you think should be created or made better via the awesome uservoice-powered feedback utility. I’m especially interested in bugs and vulnerabilities you find; if you somehow work out how to delete posted necessities or spam the site with adverts, or if the site spews out a series of errors while you’re using it under normal circumstances, get in touch (there is a contact page). Chances are the database will be reverted to its initial (more or less empty) state before the site is released in a few weeks’ time, so disasters should be recoverable.

Before you (readers) go, I’d be interested to hear your feedback on the idea of the site – do you think it has potential? Will it be useful?

That’s all from me for now. The site will get a working and hopefully regularly-updated blog pretty soon for general status information and news so you probably won’t be hearing much more about it from me.

๏̯͡๏﴿


Songbird v Foobar

April 29, 2009

Interestingly enough I switched away from iTunes 7 and haven’t touched it ever since their highly hyped update to 8. I switched to foobar2000 which is actually a pretty awesome bit of software. I have however been constantly hearing about Songbird and its amazing features so I’ve now finally got round to installing it and testing it out. Here are my thoughts.

Foobar > Songbird

One of the reasons I switched away from iTunes in the first place was obscene memory usage. I’m not sure how iTunes 8 is with memory but I had many grievances about the performance of iTunes 7 when I used it. Testing Songbird on a decent laptop (3GB RAM, Intel Core2 Duo T8100 @ 2.10 GHz, a processor that benchmarks faster than most in its clock speed range), it took 5 seconds for the program to start up fully while foobar loaded instantly. Foobar’s memory footprint was absolutely miniscule at 10MB while Songbird required a hefty 80MB, though that’s fairly unsurprising considering its capabilities as a browser.

In terms of usability, as a foobar2000 user, I miss features like Cursor Follows Playback (and more importantly Playback Follows Cursor), complete ID3 tag control, advanced syntactical filters and fully customisable shortcut keys, for which I have yet to find Songbird extensions. Whatever the case these are minor concerns and are bound to be ironed out / provided in the long run by extensions or built in natively. However my concern is that Songbird seems directed more at less savvy / control-freak users who don’t necessarily want to use something like a RegEx string or SQL query to perform operations or filter their music – the functionality is based more around forms and buttons rather than console, debug window and command prompt. While most people probably welcome this user-friendly approach, I personally enjoy the ‘hackability’ and almost complete controllability of foobar. Of course, since Songbird is open-source a real hardcore user may prefer to hard code in mods, though I for one prefer not to have to recompile software to make it do what I want.

There are also several components which come natively with foobar (or as pre-installed plugins) such as ReplayGain (very important; Songbird’s equivalent is the ‘VolumeProfiles’ addon); minimise to tray (again critical [to me]; Songbird has the ‘MinimizeToTray’ addon); and a ‘resume playback after restart’ option (a nice touch to foobar; Songbird has an addon called ‘last track resume’).

This demonstrates the syntax of a Foobar preference element - a lot of the preferences are like this. Theres just so much control

This demonstrates the syntax of a Foobar preference element - a lot of the preferences are like this. There's just so much control

You can even control exactly what text is in the window title, status bar and system tray tooltip

You can even control exactly what text is in the window title, status bar and system tray tooltip

Songbird > Foobar

Enough nitpicking. Songbird really does have some really awesome features. Its integration with the web is very nciely done – I get the impression more or less every online music service is supported to some extent, and the whole browser integration is a brilliant idea. Foobar’s web integration comes in the form of ‘freedb’ which I assume is some sort of tags downloader though it’s never given me any vaguely sensible suggestions so isn’t very good. There’s also a mini player built in which foobar doesn’t seem to have without resorting to skinning. Ratings are native which foobar is critically missing – you have to use ‘quick tagger’ [addon]. The default iTunes interface was offputting at first but the browse library by artist/genre/album etc at the top is another feature foobar lacks but Songbird has. And, of course, Songbird is open source.

It’s interesting that Songbird was developed as an open source project thus appealing to the techies while also being amazingly pleasant to use with some of the most useful and critial features built in and vast extensionability. Someone commented Songbird is like the Firefox of media players. I can’t say I disagree.

I find the way theyve built a media player around a browser quite cool and certainly in line with the whole web integration thing

I find the way they've built a media player around a browser quite cool and certainly in line with the whole web integration thing

Songbird has a clear iTunes-like interface and the mashTape (web integration with artist/song info, reviews, even youtube) is a pretty cool feature IMHO

Songbird has a clear iTunes-like interface and the mashTape (web integration with artist/song info, reviews, even youtube) is a pretty cool feature IMHO

Songbird, Foobar > iTunes

Despite a slow load time, Songbird wipes the floor with iTunes when it comes to performance. There was a problem with iTunes 7 in which scrolling through a large library was a misery owing to the intense slowness of just about everything. Songbird on the other hand is actually pretty snappy. And of course Foobar runs like lighting.
Both are extensionable. I know there are iTunes addons etc. but both these alternatives take extensionability to a much higher level. Songbird probably uses extensions about as much as Firefox while Foobar takes extensionability to an extreme by more or less requiring them to function normally (hence the pre-installed ones).
And of course neither associates itself with a store that sells DRM music ;) So it’s all good.

Overall, based on my experience of them so far, both are far more than adequate replacements for iTunes (unless you’re a fool and actually use the iTunes store in which case your music is useless if played by anything but Apple products). Foobar even has support for iPods (not sure about Songbird). Neither has performance issues, and both are more or less customisable enough for the standard user. If you’re after an easy and pleasant-to-use player with an automatically decent-looking interface with truly wonderful web integration, go download Songbird. If you’re a control-freak in search of hackability and control almost to the extent of writing your own RegEx (and also a completely no-nonsense player), foobar’s the one for you. On the other hand if you want a program that is slow, memory-hogging and defaults to buying music from a store with hideous DRM, go ahead and download iTunes.

๏̯͡๏﴿


Techie's Take on Snow

February 2, 2009
White grass?

White grass?

I don’t think there’s anyone out there who needs to be told that the UK ground to a halt today thanks to a freak downpour of snow. But I think some of the stuff that happened today was actually a great metaphor for the current status of technology in the UK as a predominant part of virtually everyone’s daily life, a phenomenon that I hope will flourish in the future.

Denial of Service

Slashdot and Lifehacker tend to inflict DoS attacks on websites and webapps whenever they feature them simply owing to the sheer traffic generated. This morning several sites began to have problems due to similar reasons: thousands of commuters simultaneously looked out of the window, smacked their heads and immediately tried to find a way to get to work … using TFL, subsequently causing the route planner to slow to a crawl for a few hours. The school intranet also managed to get DoS’ed from all the 900 Paulines attempting to discover whether the wonderful terrible rumours of school being snowed off were true. I suspect this reflects the current trend in general load balancing (including non-techie things: apparently electricity usage peaks just after some TV show ends in the UK owing to kettles being put on) and the clear necessity to move computing power to the so-called ‘cloud’ where it can take the strain of flash-flood traffic.

The Lifehacker Effect occurs when a site goes down owing to overload from traffic emanating from a Lifehacker post

'The Lifehacker Effect' occurs when a site goes down owing to overload from traffic emanating from a Lifehacker post

Social Websites

The majority of Paulines used Facebook as their primary source of information regarding the school snow-off. Sitting there watching my Facebook feed reload every few seconds, I couldn’t help but notice that virtually every wall post, status update and note seemed to be asking and/or confirming rumours about school being snowed off. Twitter was also buzzing with activity which concluded with a jubilant remark from @the_unnameable:

No school. Yipppppeeeeeeeeeeeeeeeeeeeeeeeee!

Eventually intelligence was obtained from the few people who had managed to contact the apparently grumpy porters by phone (and of course sons of teachers) and information was seeded in the form of status updates on both Facebook and Twitter which spread virally and reached most people. Of course, this merely illustrates the increasing reliance on the web for up-to-date information and the power of viral marketing (well, spread of information). As a sidenote, David Smith, a teacher at the school with the foresight to see what is needed, has created a Twitter account for one-way updates from the school: @stpaulsboys.

And of course, since the school was closed for the sake of safety and preventing us from having to brave the weather, everyone was out and about, efficiently organising events through Facebook, Twitter and mobile phone.

Social Website Logos

Social Website Logos

Cameras

Of course, every such event is a photo op. There was a point when digital cameras were associated exclusively with Japanese tourists, but today during a photography outing with George, virtually every person we saw who wasn’t building a snowman was pointing a camera at something (often with flash still turned on *sigh*). In the age of twitpic and flickr, digital cameras have become day-to-day objects embedded into just about everything which are used as a means to record moments of one’s day. If this had happened just a few years ago, I don’t think anything like the number of cameras I saw today would have hit the streets, as the idea of having to record every precious last moment of one’s life on an SD card hadn’t quite caught on.

//www.flickr.com/photos/27996002@N05/My Flickr Photostream/a

My Flickr Photostream

Personally, I ended up with a pretty cool collection of photos (including some of Doc Mayfield & co. having fun), a new way of getting school updates (@stpaulsboys), the beginnings of a raging cold, a free Sodexho school lunch and confirmation that school is off tomorrow as well.

John Colet Statue looking rather cold

John Colet Statue looking rather cold


Failbook

October 24, 2008

Since Facebook had a … facelift, it has become the talk of the town among my Facebook-oriented social groups, and it appears to have received quite a lot of angry fire from furious users who have become disoriented by the changes. I personally think in terms of usability Facebook has improved, however there are still several huge problems which are beginning to turn me away from Facebook.

1. Facebook attempts to do everything. It is an amalgam of all sorts of different social networking services which at first sounds fantastic but actually ends up really quite a mess. My philosophy on social networking is that each site serves a single purpose and serves it very well; an example of such a site is Twitter – it’s for status updates and it works pretty damn well, even from text and other non-web interfaces. Facebook on the other hand attempts to incorporate status updates with notes (a sort of excuse-for-blogging concept), links (sort of mimicking Pownce), photos (imitating Flikr), groups and networks, events and private messaging all rolled into one enormous bundle, and even more ‘applications’ can be added. This used to be a huge problem as to get to someone’s wall one had to scroll past ‘Hatching Eggs’, ‘Top Friends’, ‘Compare People’, ‘Superlatives’, miscellaneous flash games and all sorts of other rubbish. Fortunately the new layout circumvents this annoyance, although nonsense with invitations like ‘xyz thinks you are gay – add Facebook Gay Application Version 2.4 to return the favour’ (??) still goes on in bulk.

2. Ajax/javascript etc. I presume the auto-complete when searching and Facebook chat are based on Ajax or something similar, and it simply doesn’t work half the time. The number of times I’ve started searching for a person and ended up having to refresh the page just to get that drop down menu exceeds my tolerance thresholds and I just end up giving up and doing something else. I can’t stand working with a site that doesn’t work. Plus the site loads unnecessarily slowly.

3. Facebook Chat. Socially awkward. Incompatible with Pidgin (last time). Breaks a lot. Distracting when in the middle of doing something on Facebook. Pure evil.

4. Facebook messaging. Bulk messaging is a complete mess and there’s no way to opt out of a spam thread which contains many people all spamming you – you just have to sit there and watch your emails pile up. Even unfriending and blocking them lets them spam you for 30 days.

5. Privacy. Facebook, with its reputation for refusing to delete users from their database and vulnerabilities to maliciously coded applications, is possibly the most anti-privacy website around; it is the antidote to anonymity. The fact that they refuse to delete information on anyone is just incredibly unnerving, and the possibility that Mark Zuckerberg will in the distant future have access to my entire online social history is disturbing to say the least.

Facebook is definitely useful, but I’m beginning to drift away from it. If I want to share links I’d much rather use Digg or StumbleUpon or Pownce than a system in which the link will be quickly buried under a sea of spam application invites, fan page joins and other people’s wall posts.


Follow

Get every new post delivered to your Inbox.