Just work, damnit

Be thankful that you’ve probably never heard of a Segmentation Fault. Over the past six hours I’ve been through the following process about a hundred times:

1) Modify the code a little
2) Recompile the program
3) Run the program
4) Watch the program die due to a segfault
5) Goto Step 1

Why? We were given seven programs in my Network Security class that are all vulnerable to buffer overflow attacks. This is a very hot topic in computer security. The majority of security patches you’ve heard about over the past couple years are caused by someone exploiting a buffer overflow vulnerability. We’re supposed to learn how to do this by reading Smashing the Stack for Fun and Profit. I’ve got the basic concepts down, but I’m stuck on the second program for some reason. The problem with these hacks is that they’re very hard to debug. The exploit doesn’t partially work, where you can then go through with a debugger and figure out where you messed up. It either works completely or not at all (and the program segfaults). It just sucks because I’ve been working at this since I got home at 6PM and have made no progress. Even worse, I’m about to go back and work on it some more when I’m done writing this :)

This weekend is my trip to Seattle to interview with Microsoft. It’s a weird feeling knowing I’ll be traveling across the United States and ending up in a place where I know absolutely no-one. I’ll have my laptop with me though, so watch for lonely posts from my hotel. I might even be able to put some pictures online, if Denicia is willing to loan me her camera again!

National Instruments

I’ve been doing this school thing for almost 16 years but it seems that I still can’t keep myself from leaving all my homework until Sunday night. I did have one hell of a weekend thought, if that’s any excuse (case races on both Friday and Saturday night).

National Instruments really knows how to interview a person. I showed up on Friday at 8AM and it was nonstop until 5PM. The day consisted of 2 hour and a half interviews and 1 two hour interview, along with some presentations and a nice lunch. My first interview was with the Systems Software group. They’re responsible for creating all of the architecture-specific drivers that sit right above of the hardware and provide a nice abstraction for the higher-level software. The interviewers were two young down to earth guys. I knew I was in good shape when the first thing we talked about was the Texas/West Virginia that had occurred the night before. They asked me a couple behavioral questions and a few technical questions, all of which I think I answered pretty well.

The second interview was with a member of the LabVIEW team. This one didn’t go so well. Unlike the first interview which took place in a typical closed conference room, this guy just sat me down in a chair in front of a whiteboard located right in the middle of the work floor. All of the floors at NI are basically wide open, so there were people not 10 feet from me working at their desks. A little more troublesome was that he didn’t have papers to fill out or anything. This gave me the impression that he either had a photographic memory, or that by the end of the interview he would have his mind made up. We talked about a few of my past projects, and then it was technical question time. He asked me to write a function that given the root of a colored binary tree, would compute the number of groups in the tree where a group was defined as 3 or more adjacent nodes of the same color. I got up in front of the whiteboard, then stood there for a while thinking, then stood there for a little longer, and then just kept standing there. Maybe it was the fact that this interview was right after lunch, or that there were people all around me working on their computers and talking to co-workers, but I just couldn’t get the wheels turning in my head. I started brainstorming on the white board and talking out-loud through possible solutions (they do say that it’s not necessarily the answer you give but rather how you get there). To my dismay though, this guy wouldn’t provide any feedback at all. Maybe he enjoyed watching me struggle, but it was really frustrating standing there feeling like I wasn’t making any progress and him just watching silently. After what seemed like an eternity, I had a solution on the board that seemed like it might work. He asked a few more questions and then the interview was over. Whatever, I didn’t want to work for the LabVIEW team anyways!

The third interview was with the Device I/O team and was the best of the three. He asked me some questions about virtual memory and threading, stuff that was fresh in my mind from my operating systems course. We burned through those questions pretty quick and had a lot of time left in the interview, so he thought it’d be interesting to give me a real problem that he had been working on at NI. He was stuck on one part and thought maybe I could look at it from a different angle and provide some help. To both our surprises, I was actually able to do so. We spent the last 20 or so minutes fleshing out my idea and had something workable by the time the interview was over. These last 20 minutes may have had more impact on my interview than anything else. They said I sure hear back pretty quickly, so we’ll see.

SB2006

http://www.chriskarcher.net/SpringBreak/

Looks like someone has a case of the Mondays

It’s hard to believe it’s over. My last Spring Break, ever. Thank God it was the best one, and probably the best vacation I’ll ever have. Here are some numbers from the trip:

1,230 miles driven round-trip
7 days spent in Panama City Beach
13 people in the house
200+ pictures taken
2 kegs (approximately 330 beers) consumed
4 handles of liquor consumed
2 full games of beach softball played
20+ games of volleyball played
$380 worth of car repairs (explained later)

The weather was great all week long this year, a complete turn-around from last year. We spent every day outside playing in the sun. By the time night rolled around, everyone was exhausted and just wanted to stay home. If you know me well though, you’ll know that I was completely ok with not wasting money paying $20 cover to get into some lame club. Everyone else seemed to be on the same page so we just hung out at the house every night and sipped on the kegs.

The trip was awesome, but it wasn’t didn’t start out that way (don’t worry, nobody almost died or anything). On the way to Florida, Brent’s Mom’s car (containing Brent, Kam, Natalie, and Megan) broke down in a podunk town called Slidell in Lousiana. As you can imagine, being stranded on the highway in some small town isn’t the best way to start your Spring Break trip. It took an hour for a tow truck to come out and tow the car to a local auto shop where they proceeded to tell us that the car wouldn’t be ready until next Tuesday (it was Saturday at the time). Luckily, Brent’s parents came to the rescue. They agreed to begin driving to Slidell with an extra car so Brent and everyone else in that car could make it to Florida the next day. Huge props to his parents for helping everyone out in a bind.

I’m in the process of collecting pictures from everyone, look for them in the next day or two.

Spring Break 2006

I’ll be back in a week!!!