Michael J. Radwin

Tales of a software engineer who keeps kosher and hates the web.

Currently Viewing Posts in Yahoo!

Free Bagel Fridays

I’ve been working in the Yahoo! Santa Monica office for about a month now, and I’m still really enjoying it.

Today, like all Fridays, is a Free Bagel Day. In the kitchen are dozens of bagels and about 6 different kinds of cream cheese. Reminds me of the Free Bagel Tuesdays we used to have in 1998 when Y! was at 3400 Central Expy. That was before we quintipled in size and got all corporate and stuff.

When I walk in the door each morning, Dionne greets me by name. She’s not reading it off my badge; she actually knows who I am. It’s like working for a small company again. And I didn’t even need to switch jobs!

Code re-organization

I just spent the better part of the day shuffling some C++ code around in our CVS tree, and then trying to make sure it builds properly from its new location.

I didn’t add any code, just moved it to a new place. And it took me 8 hours to get the thing working again. This stuff is suprisingly complicated.

My office in Santa Monica

Today is my first day at the Yahoo! Launch office in Santa Monica.

LAUNCH - Your Yahoo! Music Experience - Music videos, internet radio, artist photos, music information, and more.

After two years of working by myself in a home office, it is a thrill to be in a real office environment again. Even though it’s my job to be a computer geek, I supsect that I’m really a “people” person.

Many friends and co-workers I’ve spoken to about the move have expressed surprise that I would choose to give up such a sweet telecommuting deal. They wonder why I’d want to give up the ability to work in my bathrobe and set my own hours. They’ve never tried a permanent-telecommuting arrangement themselves, but they imagine that it’s the good life.

On the contrary, working from home every day of the week starts to make you feel cut off from the rest of the world. There aren’t any co-workers to say good morning and good night to, to go out to lunch with, and even to chat about politics or some stupid TV show we all saw last night. This might all seem trivial on the surface, but the social connection is a really important part of feeling productive. This is probably why I’ll never go into the software consulting business. Too much alone time.

Moreover, working from home makes it far too easy work really long hours. Since the Internet connection is always on, I’ve found myself hanging out in front of my computer until 8pm, grabbing some dinner, and then going back to work. That’s unacceptable; I refuse to let my workaholic tendencies take over my life. So I force myself to stop working by turning off my computer. It sits there in the spare bedroom, tempting me to turn it back on.

I’m hopeful that having an office in LA is going to help me to do a better job of keeping work separate from my personal life. I’m looking forward to coming home from work each day, having dinner with Ariella, and knowing that the rest of the evening is ours and not my employer’s. Whatever unfinished business is left on my desk will be waiting for me tomorrow.

Even though I’m in an office here in LA, I’m still working in a remote fashion. My boss (and my direct reports) all work in the Sunnyvale office. So I’m still going to be doing the whole LAX-SJC-LAX commute that I know so well. So far this year, I’ve averaged about 1.5 days a week in Sunnyvale.

Thanks to some help from Laura in the IS department, I just got a network connection set up. Now I’ve gotta figure out my how to use the new voicemail system and maybe order me some new business cards.

Upgrade my servers? Yeah, right.

In software engineering, laziness is a positive attribute. If one can accomplish the same task in 3 lines of code instead of 30, a good engineer opts for the 3-line version. That’s why libraries of code are so popular.

Engineers are also risk-averse. Every change you make to the system can possibly de-stabilize it, so engineers like to leave a running system alone. Fred Brooks writes in The Mythical Man-Month that every change has about a 50% chance of introducing a new bug. Two steps forward, one step backwards.

But laziness and risk-aversion can be really negative attributes. How can you ever make any progress if you never touch the system? What if WordPerfect 5.1 was still the state of the art in 2003? We’d be missing out on a decade of improvements like WYSIWYG.

Consider the hypothetical case of the guy who’s trying to get the other 599 engineers at the company to upgrade their web servers to version N, when the vast majority of folks are still running version M.

If I’m happily running version M, what’s my incentive to upgrade? Sure, the guy who maintains the web server says it’s got some great new features, is faster, gives you some better management tools, and fixes a couple of bugs. But I don’t have time to skim the README to see if any of those features would be useful to me. Version M seems just fine to me, and something could go wrong if I go to version N.

Most importantly, senior management does not require that I pay any attention to the guy who maintains the web server. Even if I procmail all of the web server guy’s messages into /dev/null, I can still get a good review at the end of the year just for keeping my crappy property up and running.

The bummer for the guy who works on the web server is that he also happens to be one of the folks who spent the past 2 years trying to improve development process at the company. He helped build a software package-management tool that can tell you in near-realtime what versions of what software are installed on what servers. And when he checks the stats, he finds out that a lot of folks are running really old versions of the web server: versions J, K, and L. Getting people to upgrade to version N is going to be even more difficult.

Maybe this explains why most of his co-workers are still running Netscape 4.08.

Compaq Evo Notebook N610c

Compaq Evo N610c The Yahoo! IS department delivered a Compaq Evo N610c laptop to my desk today. My almost-3-year-old IBM Thinkpad 390X has been sent off to the place where All Good Laptops Go To Die.

I had been schlepping the IBM 390X from LAX to SJC pretty much every week since fall of 2002. About 6 months after I got it, the internal 56K modem stopped working. Being modem-less was not such a big deal at home (I’ve got broadband), but turned out to be a pain in the neck when I really needed to check email while travelling. Then about a year later, the CD-ROM drive stopped working. Pretty crappy, but I resorted to sticking CDs in Ariella’s computer and mounting them over the network.

Recently, the battery stopped charging. I could get about 7 or 8 minutes out of it before I needed to plug it in again. At that point, it essentially stopped being a laptop (I couldn’t use it on the plane anymore) and started just being a portable computer. So I finally put in a request for repair or replacement, and the IS department opted for replacement.

I’ve had this shiny new replacement for all of 3 hours, and I’m already set up with Cygwin and GNU Emacs. But there’s still one burning issue I need to resolve: how do I disable the Touchpad? It’s got both the eraser-nub pointer (which I absolutely love) between the G, H, and B keys, but it’s also got a trackpad/touchpad that I’ll never use.

I went to the Control Panel (Windows 2000, by the way, even though there’s a sticker on it that says “Designed for Microsoft Windows XP”) and chose Mouse but there are no Touchpad options. There are 4 tabs that say Buttons, Pointers, Motion, and Hardware. But nothing that lets me disable the Touchpad (or turn off the tap-to-click feature). Any ideas? Maybe I’ll call the IS help-line.

[Update: JR had the right solution. It’s a CMOS setting, so you’ve gotta reboot the box and hit F10 to turn off the Touchpad. Hurrah!]