2008-12-11

Looking at Steve Muench's blog with its screenshot of JDeveloper 11g production makes me feel a little bit proud of what we built. Somehow I left Oracle with the feeling that I hadn't been very productive for a while, but seeing what Steve posted reminded me that the team really poured a lot of stuff into 11g.

Just visually from the screenshot, you can see the new look and feel I implemented based on a design from our talented visual design team. It got a lot of flak (experience is teaching me that fear or dislike of change is a very common trait), but apart from being unbelievably blue, I think it's quite attractive.

Also shown in the screenshot is quick search (which, honestly, we always referred to internally as "Google-like search". Hehe). This was something I wanted and so hacked together on a lazy afternoon without any kind of design or project plan while we were supposed to be in bug fixing mode. Despite its birth, it somehow made it into the final product in a very visible way. A very talented member of the team (Neil) did some fantastic work improving the visual design of the component while I was buried under classloading related tasks. One of the things I loved about the JDev team in the early days was the freedom to do this kind of innovation. Although that flexibility to innovate had been almost entirely crushed by the time I left, you could sometimes still get away with it and succeed.

Finally, Steve blogs elsewhere about log window search, which people begged and begged for until we finally relented and I was assigned the task late in the day.

I'm still very proud of these things, and even prouder of all the other innovations my old team implemented.

2008-12-07

I was pretty comfortable, and definitely not bored in my old job. Had a lot of stuff to do. The trouble though with saying in the same role for a very long time is that it's really hard to find time, reason, or energy to step outside your main job responsibilities a little bit and learn something new. I must have encountered a gazillion technologies and products that I really wanted to get a chance to play with but never did.

I wasn't sure when I quit my job at Oracle that working at Google would be any different necessarily. I felt like I'd probably swap my old batch of responsibilities for a new batch of responsibilities, and it would kind of be similar (but hopefully more fun). One thing I somehow failed to realize was that the really great thing about changing jobs is that it gives you that rare chance to really stretch a bit and learn something new.

So in my three months at Google so far, I've been able to get to know some fun new stuff. And instead of just reading about this stuff, I actually get the chance to play with it all the time. For me, this experience has reignited my passion for learning. I'm hoping that I can keep up the momentum.

Here are a small subset of the things I've learned about and used so far (not necessarily all Google technologies):

GXP is a templating engine that's really useful for putting together dynamic web pages. I never got much of a chance to play with JSP, JavaServer Faces etc. before. I like that GXP is straightforward and easy to use. Haven't built anything spectacularly complex with it yet, but it works fantastically well for simple dynamic web content.

IntelliJ Plugin API. I'm still getting my head around this. It's familiar to me in many respects (there seem to be only so many ways of designing IDE plugin APIs). The API is a tad on the underdocumented side, and there sometimes aren't enough samples. I'm really learning "from the other side" what it's like to have a plugin API without source code. I really wished we'd been able to do better about that at Oracle with JDeveloper, and I hope one day JetBrains might see the light too, and make it easier for its plugin developers by giving them access to source code. But it's still a nice API, and you can get a lot done with it.

SWT. I've been using Swing for 10 years, and somehow got into the "SWT is evil" mentality without really giving it a chance. It's actually a pretty fine API for most UI problems. Slightly depressing to see that layout seems to be an intractable problem that all widget toolkits seem to have trouble making straightforward.