Sunday, February 12, 2012

Interviews at Microsoft

This is how my Microsoft paid room looked like at the 5 star Westin
Just this past week I got offered the chance to interview at Microsoft HQ in Seattle, Washington for a summer internship. I got admit, I was a tad bit nervous. I had never flown out to Seattle before, or was familiar with the area. I had never, either, been to this long of an interview process before. Most of my interviews consisted of simple phone interviews followed by either technical in person interviews or over the phone ones. I usually feel like I have much more game in my interviews when they are in person. I hate talking over the phone as for some reason, it taxes my mind more and causes me to relapse in my thinking when I'm talking to people. Truthfully, I didn't feel too scared about Microsoft just because it was going to be in person. The only thing that threw me off was that they were going to be three interview sessions, all of them back to back.
I've gotten a lot of questions about the interview with Microsoft and how I did. I'll answer what I legally can.

What did they ask?
Sadly, I can not answer this question. What I can say is that some questions were technical, others were not. When going into interviews like this, I would recommend just to brush up on what you already know and have done and make sure you can code in one language strongly (know all the library functions and so on). This will greatly help you in your interview process. 

How professional was it?
It was a professional interview. These were professional questions being asked by some of the top minds in Microsoft. They did not want to hear about one's private and social life. That is why I kept on topic with what was being addressed. The only thing I brought in was the different types of community service I do to give back to the community. I also bought up my love for being outside, the outdoors, and how I was interested in the Seattle area because they had a lot beautiful places to hike.

What did you wear?
They said to dress comfortably. By golly, I dressed comfartably. I wore some nice dark blue jeans and a striped blue v-neck shirt. I topped this with a red American Apparel sweater with a fashionable brown scarf. I also had my nice red converse. I looked underdressed compared to everybody else, but I also gave off an air of confidence and audacity just coming in like that. I looked like a CS major who was interested in some cool work at Microsoft and seeing what they had to offer.

How did you do?
I really don't know. If I do get an offer letter, I'll be getting it within the next few weeks. I am interviewing with other places right now, so there will be a little bit of a rush if letters come and go at different times. I already have turned down an early offer with GE Healthcare because I didn't find it to link my exact interests at the moment and because it was so early. I had asked to extend it, before I knew what my chances were this summer, but this was not able to be done.

Any tips on interviews in nature?
A good thing to remember is just to be yourself. Be comfortable, talk and be friendly. Be confident, and not afraid, you got this already! You are a beautiful person. If you weren't, why wouldn't you have been asked to interview. They're interested. They just want to see how you perform, and how well you perform. If you are having a technical interview, you should just talk through every problem that you're doing and make sure to ask them a lot of questions and clarifications. This shows that you want to understand the whole problem before you even attempt a solution. You don't want to make a half-baked solution!

I did all of these things while at Microsoft and I did feel like they really showed Microsoft what kind of a person I am and how I program. That's what really mattered in those whole interview.

-Tron

Friday, February 3, 2012

First startup, Ruby on Rails

I got emailed at the end of last quarter (in December) about the chance to join a very early startup. The deal was that I was going to do all the programming, while the person who is hiring me out to help and join is going to provide me with everything I will need to produce this site.

When I originally signed the contract to finish this site, I was thinking of programming it in pure HTML, PHP, Javascript and AJAX. I've done it before, but for smaller projects then this. Then it hit me to try and learn something new, try something new: Ruby on Rails.

Many startups in Silicon Valley use this language to get their site off the ground and produce a really quick site. The language, seemingly at the moment, provides ways to make things easier by working off the MVC model. The model is very simple. Simply a program interacts with my "view" (the html window), and my code to handle input and output from the sight to my database.

I've never worked with Ruby before, but things are going well now. I'll release what I'm writing later when the code actually does something. What I will not release will be the main algorithms behind the scenes running what the startup is about. 

Thursday, February 2, 2012

A little of my research

So being a poor college student at Stanford, I was given federal work study funds; I just needed to find a job to work for them. I looked at the cdc website and found a job with the Walbot Research Lab. They do work with the genetics of dahlia flowers and zea mays (maize). Some of their research has revolutionized corn production and ways to make the perfect corn.

For them, I do lot website work and DNA blasting. The website work is pretty straightforward. I made this little app on their website to organize all their flowers in a sortable table that depends on a text file stored from the server. This is operable on all current day browsers.

The code was pretty straightforward. I read in all of the flowers using some AJAX and then from there, displaying them with "sort" buttons on top. Anybody can use this code, as long as they mention me in the comments above.

this is how I run the blast
I also do DNA blasting as a bioinformatics research assistant. This involves using a program from NCBI (National Center for Biotechnology Information). It's pretty cool work. I get in their DNA probes that they've gotten from analyzing zea mays and I run the probes against datasets from the NCBI website. This is all done on my personal Macbook pro.

I don't know biology, or don't really understand the fullness of the work I'm doing, but I know I'm helping out this lab. I'm happy that I get to work with them on these exciting projects :)

Wednesday, February 1, 2012

CS 107 Rage

So here I am programming for my class in 107. I'm pretty behind on the assignment due to a long weekend helping out with the job fair and doing my duties to it. The job fair approximately took about 20 working hours out of my weekend, setting me way too far behind. I'm coming up to the deadline, and I need to finish my assignment.

This whole assignment deals with find misspellings in text files and finding the most likely correction.  The main algorithm of this program deals with finding the levenshtein distance between two words. This is basically the number of edits it takes to get from one word to the other. My edit_distance function at the moment was running perfectly, except for the huge amount of recursive calls it was using.
This works on levenshtein distance

I've fixed several errors that were pretty small and simple. A bad find_min function and a missing ++i and it seems to be all working pretty well. What is not working well is my recursive find_edit_distance function. I can't get the recursive statement to quit early. Without going into too much detail on this assignment here, due to Stanford legality.

I knew that I needed a function that could quit out early because I was only looking for the top five misspellings. There was no need to keep recursing if the number of edits was more then the "weakest" function in the top five misspellings. I decided to pass in a max, to try and help with this.

I couldn't figure out how to quit early, though. I should've trusted my instinct and passed in a fourth variable. The thing that bothered me was that this ruined the magic of recursion. There was no need to return a distance then. It was unneeded. Midnight was rolling around, but I still held my head high that there must be some way to cancel out early.

Sadly, midnight passed and I realized that I did need a fourth variable. I turned in the assignment an aggravating 8 mins late, but it was working perfectly and it was as fast as the solution. I felt good, accomplished, but pretty peeved because I had something that I was using this fourth variable. I felt dumb.

This could've been solved by using dynamic programming with a matrix that would allow for me to quit early when I was already computing edit distances that were too big. Sadly, though, I had to butcher recursion. I committed a most high foul crime in Computer Science that I'm not sure I will ever forgive myself about.