failing like never before

1May/096

My Google Interview

Its been a while now, but here it is anyways...

About six or seven weeks ago, I scored a phone interview (technically two) with Google's IT department for a summer internship. Nobody was more surprised then I was that Google actually found my resume somewhat impressive enough to warrent a phone interview, especially considering my less-then-stellar GPA and the enormous number of super-intelligent applicants Google recieves every day. The two interviews were each forty-five minutes long, and the interviewers (both intelligent IT guys,  and not technically incompetent manager types) took pretty much all of the alloted time.

These days, almost every CS guy dreams of working for Google and so I've heard a few things about their interviews before, which I would like to mention before I get into my interview. A few years ago when I was an intern at Intel, they had a lady come in to tell all the high school interns about how to be successful in scoring future jobs. She spent a lot of time teaching us how to walk properly, shake hands, sit in a proper manner, dress, and answer generic interview questions. She told us that Google interviewers like to ask broad open ended questions like "how would you sell ice to an eskimo" and "why are manhole covers round," and promptly put us to answering similar questions. A few months later, I went to a Google Tech Talk at my University, where a Google software engineer was asked by someone in the audience if Google did in fact like to ask interview questions like "why are manhole covers round." The Google rep resonded with the following:

"In my time at Google I have interviewed several software engineers and I have never asked a question like that before. Google is not in the business of making manhole covers. If we did make manhole covers, we might ask those kinds of questions."

I think occassionally, a Google interviewer might throw in a brain teaser if they just want to burn some time, but apparently they don't do it too often.

Anyways, going on to my interview... I was interviewing for an IT position, so unlike the software developer positions where they barrage you with an endless stream of algorithim and programming questions (Why is quicksort log(n)? Whats the best sorting algorithim to use in this scenario? What data structure would you use for this? etc.) there was almost no programming invovled in my interview. And since the recruiter and HR person told me pretty much nothing about what I should expect, I went into the interview pretty much cold.

2Mar/091

One Last Try

I hate comparing other blogs to mine, because the conclusion I'm bound to reach is almost inevitably the same almost-painful answer. The problem is twofold: firstly, I'm not a very good writer and I never was, and secondly, I have almost nothing to write about.

Now the first problem I can live with, I will never be an amazing writer and it is not my goal to become one; I can live with being passably decent (being mediocre is something that college has introduced me to). But the second issue bothers me. And I wonder sometimes if its because my life is so monumentally boring that I have absolutely nothing exciting to write about, or if its merely that I'm incapable of turning mundane events into something that others might find interesting (like some bloggers are able to do). (I do so hope that it is the latter, because that would seem to imply that I'm not a total loser.) I tried over the summer, to keep a brief daily log of what was going on in my life, and it didn't take me long to realize that the only thing duller then my daily logs is a grocery list. But what the hey, I'm going to try again to write about my life, and see what happens again. So here goes:

About two weeks ago, one of my suitemates discovered the amazingness that is Heroes, and so after he finished with his midterms, he sat down with another of my suitemates and watched all of the first season of Heroes in one day, all twenty-three episodes (each one about 45 minutes long). Now if only our study habits were that good... But of course my roommate and I couldn't ignore the television extravaganza that was going on in our living room, and so by the next day we had watched two episodes and were hooked. My roommate and I finished the last episode of season one two days ago (and what a terrible and unsatisfying conclusion it was; they should have just shot Peter in the head, he would have healed anyways) and we've vowed not to start on season two until finals for this quarter are over. It remains to be seen of course, whether or not we'll be able to hold to our vows.

I managed to get an internship earlier this quarter, and though I enjoy it, its only another testament to my loser-ness. No other engineer that I know of, besides myself of course, has an unpaid internship, (companies are always looking to hire good engineers and engineers tend to be in short supply, so most companies are willing to fork over large sums of money to hire undergraduate engineers). But of course, I managed to find myself an internship at an internet startup that doesn't have the money to pay its interns, and I took the position because it seems that at the rate things are progressing, no other company is bound to hire me. On the plus side, I actually enjoy my internship position (as compared to some of my previous positions), I only have to go to the office once a week at the very most, and I get to polish up on my Ruby skills. With some luck, I may be able to turn this into a paying gig, although I think that would first require that the startup start making some money first. I spent a good chunk of time this weekend putting some work into knocking together some Ruby code, and was able to produce a new class for fetching and performing operations on e-mails using POP3. Since our web application will occasionally send a user a new e-mail (for forgotten passwords, registration confirmations, etc), I had to have a way to test if the e-mails were coming through OK. So I wrote a class that would grab an e-mail from some arbitrary e-mail account, find the newest e-mail matching a subject line, scan it to check its OK, and then extract the pertinent URL from the message body and follow it. It wasn't a very long class, but the regular expressions took me absolutely forever since I've never been much of a regex expert. I've also been writing a class that will extract data from a CSV file and then return the values from each line as an array.

We're using Selenium RC at work to do our unit testing of the web application, and although I think Selenium is pretty awesome, I've found it to be pretty freakin' slow. One very simple test cases, with only a few button clicks, assertions, and wait-for-page-to-loads, took about eleven seconds to run. Considering that we're going to be dumping over a hundred different sets of data into the CSV files for the test scenarios, running a whole series of test cases is going to be my new favorite excuse for slacking off. The biggest bottlenecks right now, appear to be the setup and tear-down times since Selenium has to start and stop Firefox for every new test case, the amount of time it takes to fetch a new e-mail using POP3, and the page refresh-times.

One of my friends is on the school's triathlon team, and recently proposed that I should join. I thought at first that our triathlon team does the full-out "Ironman" triathlon with a 26ish mile run, 113 mile bike-ride, and similarly long swim, and I immediately threw the idea out as ridiculous. But as it turns out, our school does a ridiculously short version of the triathlon that is more of an all-out sprint then anything else (seriously, their run is what I do every other night for my brief work-out). Its something that I could imagine myself being able to complete without too much of a problem, but I doubt that I'd be able to sprint that long. Of course I'd need a real racing bike first, something that isn't a twenty year-old chromoly steel mountain bike with friction shifters and a knocking headset.

Oh, and I've just checked my enrollment times for classes and have found that my second-pass is today at 4:30, and I have no idea what classes I should take. Woot.

(I guess this wasn't too bad of a write-up, certainly it couldn't be called an instant sleep-inducer for every living person.)