Sunday, October 26, 2003

Thursday afternoon I flew to Seattle for my job interview with Microsoft. Kudos to them for making the trip so painless. The flight, hotel, rental car was all arranged. And even though I didn't have a direct flight, there was virtually no waiting at the United hub in Chicago -- I stepped off one plane and onto the next. Future candidates, I have to recommend taking the rental car transportation option over the taxi. Getting from the airport to the hotel to the campus by car is really easy and following driving directions is a good way to take your mind off the stress of the upcoming interview for a bit. Also Redmond is so suburban -- you need a car to go anywhere -- like finding a place to eat dinner for example. 10AM, Building 19, Met with my (third) recruiter contact, Jenna. She was very nice, gave off the impression that she wanted me to succeed, and gave the standard technical interview tips: ask questions, think out loud, yada yada. After that she put me on the shuttle to do the interview circuit, first with .NET compact framework, then with Visual Studio for Devices. Since I didn't totally bomb out, I "survived" until the 5th (as appropriate) interview at about 5pm. Here's a pretty complete list of the questions I got asked during the day
  • As a busy student, how do you keep up to date with technology developments in industry?
  • What was the last technology that you heard of and thought 'that's really cool'? 'uncool'?
  • Suppose you're locked in a building and can't leave. How many ways can you think of to measure the exterior temperature?
  • Resume related questions: Fairtunes, C&O, Waterloo.
  • How can you prevent deadlock in a concurrent system?
  • Write a function to add 64 bit numbers using 32bit arithmetic.
  • What is a thread? What is a process?
  • Write a function that, given an alphabetic string, outputs the characters a) sorted b) duplicates removed and c) in lower case. Do it using only a few (<26) bytes of storage. (eg: "Mississippi" -> "imps")
  • Insert into a circular doubly linked list.
  • A square island, with side length n meters, lies in the center of a square pond, with side length n+2 meters. Given only two boards of length 0.99 meters, how can you reach the island from the mainland?
  • ASCII strings are typically encoded using 1 byte per character, even though for alphanumeric text, only the first 7 bits are used (the MSB is always 0). Write a function that compresses a c string by outputting a string of bytes where each group of seven bits represents each character of input. For example, the 3 byte string 01111111, 01011100, 00000101 would compress to the 21 bit string 111111110111000000101.
  • itoa() (He first suggested "reverse the word ordering in a string", then malloc()/free())
  • Tell me about a time your beliefs were challenged in the workplace.
  • Tell me about a time when you discovered a fundamental error in the design of your project.
  • Design and implement the "shuffle" function for a 200 disc CD changer. Your only constraint is that no song may be repeated until every other song has been played once.
At the end of the day, I drove back to the hotel and went to sleep, wanting never to think about programming again. I felt happy to have survived the experience, but I don't feel like I came off as being that stellar. We'll see what happens.

Monday, October 20, 2003

Our RTOS now supports paging. Each process runs in its own virtual address space. Sweet!
Operating system kernel development -- The only situation where a 0 pointer might actually be valid!

Friday, October 10, 2003

Safety Tip for would-be operating system authors: Make sure your stack and your uninitialized data section do not cross paths, or you'll be up until 5am wondering why user programs crash. We're doing a bit more than other groups this term. Instead of the stock toolchain and libraries provided in the CS452 course account, we're using the latest gcc/binutils/newlib and booting according to the multiboot spec. implemented by grub. Furthermore, our binaries are ELF, not a.out. Translation, we can use // style comments, declare variables anywhere in a function body, boot on any PC with a floppy drive, and run in the bochs i386 emulator (think "work at home" and built in debugger). Stefanus has a page all about this setup, which will probably become standard in future terms of the course.

Monday, October 06, 2003

From: xxx@microsoft.com Sent: October 6, 2003 7:40 PM Subject: Microsoft Interviews Hi John, We still have not heard from you! If you are still interested in a FT SDE position at Microsoft please respond ... -----Original Message----- From: xxx@microsoft.com Sent: Wednesday, September 24, 2003 4:52 PM To: jdcormie at u-w-a-t-e-r-l-o-o dot c-a Subject: Microsoft Interviews Hi John We would like to talk to you further about Fulltime opportunities at Microsoft. We would like to interview you for a Software Design Engineer position at our Redmond, WA campus ...

Holy Crap! Thanks to UW's lossy mail servers, I never got the original message and almost missed out on booking my interview! I was just about to give up hope on this one too. Redman was speculating that UW was blocking mail from microsoft.com during the recent e-mail virus epidemic.

Thursday, October 02, 2003

A few days into the term, and after determining that there were no women in our class, someone bought "The Kiss", a poster of two (fully-clothed) girls kissing on a bed, and put it up in the real time lab to keep us warm on those long nights of coding.

Just ten minutes ago, two people I've never seen before came into the lab and informed us that there's been a complaint and the poster needs to be moved so that it's not visible from outside the lab. We happily complied.

Just five minutes ago, a different guy came in, and said that in fact it had to come down altogether. Since the guy who owns it isn't here, this hasn't happened yet.

I don't really care about the poster, but what bothered me is that the guy said something like "Do you guys wonder why there are no girls in this class? Use your brains." Actually, I do wonder about the lack of women in math, and especially CS452, but I don't think the reason is that simple. After all, the poster went up long after every woman in 4th year CS decided not to enroll in the class. Sure a group of guys behave differently when there are no women around, and that explains the poster, but I don't think it makes the environment hostile to women. In fact, most CS students would be happy to see a more equal gender balance in their classes.