Blog | Admin | Archives

Autumn 2008 Schedule

Going along with the newly minted Graduation Plan 2.0, here is the first installment of my quarterly schedule.

Monday Tuesday Wednesday Thursday Friday
8:30
9:00
9:30 CSE 467 A
CSE 303 (TA)
CSE 467 A
CSE 303 (TA)
CSE M 544 AA
THO 202
CSE 467 A
CSE 303 (TA)
10:00
10:30 CSE M 544 A
MGH 231
CSE M 544 A
MGH 231
CSE M 544 A
MGH 231
11:00
11:30
12:00
12:30
1:00
1:30 CSE 473 A
GUG 218
Office Hour
CSE 003
CSE 473 A
GUG 218
Office Hour
CSE 003
CSE 473 A
GUG 218
2:00
2:30 CSE 467 AA
CSE 003 (TA)
CSE 467 AB
CSE 003 (TA)
3:00
3:30 CSE 590 C
EEB 025
4:00
4:30 CSE 490 H
CSE 305
CSE 590 G
CSE 303
CSE 490 H
CSE 305
5:00
5:30

Graduate Student TA

Starting today, that’s me!

Google App Engine: Too Many Bugs?

I know that Google App Engine is “Beta” and all that. I also know that there are ways to work around both of the egregious bugs I have run into so far. However, after spending a large amount of driving time and downtime during my recent visit to Glacier National Park to refactor a huge amount of code in Concurr in part to work around the first of these bugs, only to be thwarted by the second bug, it begins to feel like Google App Engine is too immature for the real world. I mean, for heaven’s sake, I’m working on a simplistic game and GAE seems too immature even for that.

The first bug, we seem to be the first to discover: sometimes, entities in the data store don’t actually get deleted when App Engine says that they are deleted. I was able to work around this bug by adding a “valid” field to fleets, and invalidating any fleets that should never be returned again. Since storing updates (“putting”) to the data store always seems to work, this workaround seems to be effective. But the fact that it is necessary is disturbing.

The second bug had been discovered before I ran in to it; it was first reported way back in May, but it remains unresolved.

Unfixed four months later, I have to question whether the bug will ever be fixed.

And with two bugs of this magnitude, I have to wonder what other problems lie out in the murky depths. Certainly, I would not trust a “real” application to GAE. At this point, I think going towards the traditional server/database model is the right move for Concurr, and again, it is just a silly game that I happen to love.

My Summer at Amazon

This summer, I worked at Amazon.com as a Software Development Engineer Intern. When I started, I was very excited about the new possibilities and challenges.

Before long, however, my excitement gave way to what seemed like endless frustrations magnified by a bit of bad luck: my first month saw me miss two days to vacation, one and a half to being sick, my mentor away due to a newborn baby, the team member who knew the most about my project on a vacation for more than half the month, and a generally depleted team due to a sabbatical and two recent team member departures. One particularly memorable early team meeting consisted of my manager, one full-time employee who started in January, and two interns.

The result was that most of the time, I felt pretty on my own. Because some frustrations are normal with any Amazon new hire, my manager didn’t seem to think it was a big deal when I voiced concerns to him about my progress. Also, my manager initially thought the project would be smaller than it ended up; this led to more confusion between us, and on my part, a bit of distrust about my manager’s motives.

The first month was so bad, in fact, that there were times at work I actually considered just getting up and walking out on the whole thing, telling Amazon to forget it, never to come back, and just go on to enjoy the rest of my summer instead of dealing with the painful daily grind that my work had become. However, I had committed two three months, and I wanted the money too, so I decided to stick with it.

The worst case scenario, I thought, would be that Amazon wouldn’t want me back. That didn’t concern me too much, because at that point I certainly didn’t want to come back to Amazon; at least not with the team I had been working on. I suppose I did want Amazon to ask me back, but mostly just so I could revel in telling them “no” when the time came. Furthermore, there was the possibility of working for another group; all of my intern friends seemed to be having a much better time than me, so I mostly decided that it was just a group dynamics thing. I guess hadn’t totally given up on Amazon, and I didn’t want to burn any bridges.

Some time during the second month, I had made up my mind to stick it out. Occasionally, some breakthrough at work would actually get me excited to go to work the next day. Invariably, another problem came up in short order. Progress was excruciatingly slow. The entire second month went like this. A small bit of progress would lead to yet another problem. My motivation waned. I admit I didn’t spend 40 hours a day at work. Nevertheless, I did keep going back. Maybe my pursuit of the Bioengineering degree prepared me for this somehow: at times, both seemed fruitless, but in the end, I hoped, my time at Amazon would be worth it.

The second month was not really better than the first. While it did get me one month closer to the end date, it was the most frustrating month, because I kept hoping that at some point things would start getting better. When they didn’t I eventually evolved a sort of fatalistic attitude towards the whole thing: I would do my part, as much as my motivation made me capable, and not worry about how things turned out. This set me up for the third month of not really caring about anything.

Entering the third month, I was very much in countdown mode. My few successes were sullied by constant failures, both new and old. I knew my last day of work, and I looked forward to it with barely concealed enthusiasm. I continued to plug away at my project, and sometimes surprisingly, I continued to make progress. There was actually a point where I realized that if I stopped running into issues at such a prodigious rate, there was actually a chance (however remote) that my project might actually get finished. As it turns out, this didn’t happen (the coup de grace was another team’s public API that wasn’t implemented; I would end up writing and testing it for them), but nevertheless, by the end I was surprised by how much of the project was complete, given the constant issues I had encountered.

Indeed, as I approached my final week, I was thinking about the blog post that I would write about my experience. I had no particular ill will towards Amazon. I enjoyed everything about the company except the work itself — the interest email lists (particularly bikes-seattle@), the whitewater rafting trip, the Mariners game, the various lunches, the team socials, the Kart racing, the intern tech talks, the principals of Amazon talks — all of these were fun, interesting, and positive things. Around that time, Tim Montague posted about his summer experience at NASA. When I read it, I figured this post would read something like that. The “I learned a lot; I would not do it again,” sort of sentiment.

Then something amazing happened.

It started when my Manager’s Manager set up an appointment with me on Wednesday of my last week to talk about my Amazon experience. Around the same time, HR sent me a survey about my experience at Amazon. With that, the catharsis began. In filling out the survey just before my talk with my Manager2, I tried to be as honest as possible. This really got my mind into the right reflective state for the meeting, and during that, I was able to get all of my concerns off my chest. It was an incredibly liberating experience, and it especially helped that the guy I was talking too actually cared about what I was saying, and wanted to know how the team could do better in the future.

Next, my manager set up a time to talk with me. The catharsis continued, and for the first time since somewhere in the first month, I felt like we were actually communicating healthily again. He apologized for underestimating my frustration, and I apologized for being complicit in letting the situation get so out of hand. We cleared up a lot of stale air during that talk; it was a deep breath of fresh air.

The two talks caused a lot of the bitterness that I had built up over the past three months to wash away. For the first time in over a month, I felt motivated to work hard. That afternoon, I completed an amazing amount of work, especially compared to how much I had completed over the last month. I cared again, and it felt remarkably good. I was disappointed that I wouldn’t be able to finishing my project, and even that normally negative emotion felt better than the indifference I had felt at noon.

That evening, I came home and wrote a one-line post that, as many of my one-liners do, confused a lot of people. Well, now you know.

The end result is that when my last day came on Friday the 12th, I was actually sad to leave. For a month I had been counting down the days; then for just over two days I wondered how it had gone so bad, and marveled at how an amazing Manager2 can set so many things right so quickly. Today, I am happy to say can say that an offer from Amazon will compete with any other offer that comes my way.

Glacier National Park

After a quick stop in Idaho for Cason Dotson’s Wedding reception, my parents and I drove to Glacier National Park. Despite weather that didn’t cooperate very well and a famous highway that was closed in the middle, the scenery was still spectacular and the time was well spent. Definitely a park to return to in the future.

When In Eugene

I drove down to Eugene, Oregon today to visit my sister and nephew. In addition, I am helping to bring my sister’s computer back to life and set my nephew up with my Dad’s old laptop. Setting up the laptop with Windows XP was some kind of adventure. I needed to upgrade the BIOS, but that required a diskette, which I no longer have the ability to create easily. Fortunately, the laptop itself knows how to create diskettes — but it has to have an operating system installed to do so. So I ended up installing FreeDOS on the laptop in order to create the disk to update the laptop’s own BIOS. With that done, I was able to install Windows XP, which on a PII at 300 MHz with 128 MB of RAM, ended up being an all-night ordeal. However, he now has the computer and he’s enjoyoing it immensely, so I guess it was all worth it.

As for my sister’s computer, she or my nephew seems to have downloaded some sort of nasty virus or spyware that does a fairly good job of masquerading as an official Microsoft Windows antivirus program. As her computer is a Pentium III, this is also quite an adventure.

By “adventure” I mean of course a lot of watching progress bars and being patient.

HDR Wilburton Tressel

I did some night photography with Dan tonight. Here is the happy result of about an hour under the Wilburton Tressel in Bellevue, combined into HDR with Photoshop: