Compensation increase, salary decrease

Yesterday I got the great news that my total compensation was going up 10%! My 2nd line manager, filling in for my 1st line whom is out on vacation, let me know. When he gave me the paper with the information on it, he warned me that he noticed something odd about it and that he would look into it. The odd thing is that while my total compensation went up by 10%, my salary went down by 1% meaning I’d be getting less per paycheck than before.

You see, all of the compensation adjustment went into the (really fucked up) “bonus” structure EMC uses. Bonuses are paid out quarterly based on the completion of your quarterly goals. As such they are not guaranteed and, of course, no rational person would ever rely on them. That said, the bonuses aren’t quite as capricious as it might seem and any half-way sensible employee knows how to write their goals to ensure they can complete them to get their quarterly bonus.

The better news I found out today is that this was an out-of-band adjustment and not part of the yearly compensation discussion. EMC realized what we’ve been telling them for a year now: they don’t pay enough. Back when Isilon was Isilon, a portion of someone’s compensation was from stock. EMC doesn’t operate that way and thus their overall compensation isn’t competitive with those of regional competitors like Amazon and Microsoft. Yesterday’s adjustment was an attempt to fix that.

My 2nd line manager said he’s going to fix the adjustment such that more of the compensation bump goes into my salary and not just into the bonus. I don’t know how much power he has in that area and how successful he’ll be, but I trust that he’ll do his best.

On the bright side, while I want to be compensated well I live well below my means as-is. Also after 10 years at IBM I’m an old pro at writing aggressive but achievable goals and I’m confident I’ll get the full compensation even if the oddness isn’t fixed.

And of course, there’s still the usual compensation cycle that is supposedly still happening next year which offers additional possibilities.

Update: After I got home I did some math. After the adjustment, I’ll be making 4% more than what I was making at IBM if I had stayed through the end of 2010. Granted, that was in Denver and the cost of living in Seattle is more than 4% higher than it is in Denver. Still – progress!

“Think of the children” public: judge, jury, and executioner

I don’t know if Jerry Sandusky had inappropriate contact with minors or not, but I do know two things: 1) he, coach Joe Paterno, and Penn State president Graham Spanier (among others) have been found guilty and sentenced merely in the face of public outrage, not due process and 2) regardless of the outcome, this is yet another disincentive for men to interact with young kids.

I’m not a fan of football, so this has absolutely nothing to do with the sporting side of it. It’s about the public outrage and the resulting knee-jerk reactions based on that outrage — not evidence. I do believe people in the public eye are held to a higher standard (or lower standard from what I hear about Jersey Shore) than the average Joe, but what we’re seeing play out in the media is nothing more than “think of the children” nonsense. And it’s the typical evil cycle of the media riling up the public which is giving the media the sales to rile them up some more.

In the end, there are no winners here. Even if Sandusky is found innocent, he, Joe Paterno and Graham Spanier aren’t getting their jobs back.

And regardless of if Sandusky is found innocent or guilty, the media attention and public outrage is yet another nail in the coffin of men interacting with kids. As a man, I’m paranoid about being around small children. Paranoid that perfectly acceptable horseplay with my nieces and nephews might been seen by an outsider as somehow inappropriate. Because today men are assumed to be suspect, if not guilty, in circumstances that women would not be questioned on.

Inappropriate contact with minors is utterly unacceptable and unexcusable, period. But we as a society need to stop the knee-jerk reactions of “think of the children” and assuming everyone is guilty and hanging them in public. Such reactions are to the long-term detriment of our youth as they’re less and less likely to have mentors because of it.

Use a credit union? Switching banks? Read this.

I’ve been a member at Amplify Federal Credit Union for over 10 years now (I joined back when it was still IBM Federal Credit Union), and I love it. When B and I moved from Austin to Denver we opened up an account at a WAMU, now Chase, for our day-to-day banking needs (ATMs, depositing checks, etc).

Recently, due to enhanced minimum balance requirements at Chase and philosophical issues, I began researching local credit unions with the intent of closing my Chase account. This only solved half my problem as I would still maintain two separate checking accounts. Then through happenstance I stumbled across CU Service Centers and discovered that not only can I access my Amplify accounts through local credit union ATMs without fees, but that I can also do other in-branch actions like depositing checks!

Today I walked into Prevail Credit Union here in Seattle and deposited a check into my Amplify checking account. I went expecting it to be an ordeal — I was armed with routing numbers and Amplify contact information. To my surprise, it was a breeze needing only my ID and my account number!

This solidifies my plans to close my Chase account and transfer those funds to Amplify. For the first time in a decade I’ll have just one checking account. The ability to access my account at local credit unions is, hands down, the best financial services find all year.

Credit unions: this feature is a huge selling point and needs to be advertised more! Particularly with the current feeling towards large banks. This feature was maddeningly undersold on the Amplify website (I’ve just sent Amplify an email with my story and suggested they fix it).

Credit union members: you have many more ATMs and branch locations available to you than you think. If your credit union is a part of the CU Service Centers network (BECU, Prevail, Puget Sound, and Salal all are), you can find a network ATM or branch here. They have an iPhone app too. As with anything else, some caveats apply for some services.

Switching banks? Give a credit union a shot. They’re obviously not just local anymore.

iozone and caching – the bane of benchmarking

iozone is a common tool used by companies and researchers when benchmarking storage systems. What most iozone users don’t seem to realize is that unless care is taken, the test may exercise only the storage system’s cache and not the underlying system.

iozone supports different test types, the most common used are:

  • -i0 – sequential write
  • -i1 – sequential read
  • -i2 – random write / random read

These are often used together in a single iozone execution, like:

iozone -i0 -i1 -i2 [...]

This will do a sequential writes test, followed by a sequential read test, followed by a random write test, followed by a random read test. The problem with this approach is that it will exercise both the client’s VM cache as well as whatever front-end cache the storage system is using. Depending on the storage system, in addition to going to nonvolatile storage, the initial sequential write may also go into the storage system’s front-end cache, so the subsequent sequential read may not hit the nonvolatile storage at all making the read test a pure cached test. Ditto the random read test. Similarly, the client may cache some or all of the file as well making the results even less useful.

The client cache is why the iozone docs recommend using a file size 2x the size of the client’s memory. At Isilon we find this unwieldy — particularly when you have 24GB clients. Moreover it does’t solve the problem of the storage system cache at all.

Instead, we have a wrapper script that will run each test in isolation and between test runs flush both the client’s cache (assuming the client is Linux – sysctl vm.drop_caches=1, or just unmount and remount the storage) and the Isilon cluster’s cache (isi_for_array isi_flush) between each run. This allows us to use smaller file sizes while getting results from the underlying storage and not caches.

The above “-i0 -i1 -i2” test gets broken down executed like this (but in a loop of course):

Isilon cluster cache flush
client cache flush
iozone -i0
Isilon cluster cache flush
client cache flush
iozone -i1
Isilon cluster cache flush
client cache flush
iozone -i2

There’s only one other problem with this approach: random writes and reads are done with the same test operation (-i2). This prevents iozone from being able to provide cache-free results as the random read immediately follows the random write. At Isilon we’ve modified our iozone binary to split the random write and random read operations into separately runable tests to work around this limitation.

If your intent is to test a system’s cache, then by all means run all the iozone tests in the same execution. But if you’re wanting to test the underlying storage you need to run them separately and flush caches between the executions.

Rome to Seattle, an adventure in the making

The trip back was an adventure in unto itself. The last night we asked the concierge at our B&B how much time we should give ourselves. He said 3 hours at the airport and about an hour to get to the airport. Yikes! The forecast was for rain the next day which apparently makes taxis harder to come by so we opted for a private car for only EUR10 more.

The private car was nice and picked us up promptly at 7a. The ride through Rome to the airport highway was like a roller coaster. The streets were virtually empty and the driver was very liberal about the use of lanes. Shortly after we were on a major road out of the city, the driver takes an exit and we find ourselves on a dirt road through a junkyard. Jonobie and I looked at each other with the “surely the B&B wouldn’t have given us a serial killer as a private driver — they’d get horrible ratings” look (which made perfect sense at the time in our sleep-deprived state, less so now). Apparently it was a shortcut as just a moment later we were back on a major road.

We got to the airport with 2.25 hours until our plane boarded which is just as well seeing as it took 1.75 of that just to check in and go through security.

Unlike the flight to Rome, the flight back to the states was less than ideal. Mostly due to the screaming child seated four rows up that cried through most of the 9 hour flight. Add to that crazy sinus pressure due to my allergies and it was a miserable trip. And for the record, while Rome has tons of water fountains, most of which date back to Roman times and some still fed via the aquaduct, the Leonardo di Vinci airport has none.

The excitement didn’t begin in ernest until we got to JFK. Our flight out of Rome was delayed by about an hour, so our 3 hour layover turned into 2 hours. We whittled away an hour of it waiting for our luggage so we could go through customs. Jonobie’s luggage appeared at the very end and mine was nowhere to be found. With only 45 minutes until our flight boarded and a terminal transfer plus security still left to go – I sent Jonobie on to catch the flight while I figured out my luggage. This way at least one of us made the flight.

I went and found someone from Alitalia who directed me to their desk outside security. The gentleman there said I should file a claim form at my final destination, so I sprinted to the next terminal in an attempt to catch my flight. When I arrived at the next terminal, Jonobie was nowhere to be found at the security line. I sweettalked the woman guarding the priority boarding to let me in that shorter security line and waited as the minutes ticked down to my flight’s boarding time. Jonobie texts me that she’s on a train to the terminal. Apparently there are two ways to the terminal and we’d taken different routes. At this point we’re not certain if one, both, or neither of us are going to make it to our flight. I get through security and run flat out to get to my gate about 100 yards away. I turn the corner to my gate and there’s Jonobie walking towards me. Our flight hadn’t yet started boarding.

We dashed through Burger King to grab something before the 5 hour flight to Seattle and made it as one of the last people to board our plane. Needless to say we were a bit punchy that we made it on the plane, even sans one bag.

This is being posted from the plane’s wifi connection, so there’s still the chance that there’s More Adventure To Come until we arrive at our respective homes!

Update: As luck would have it, my luggage somehow magically bypassed customs and made it onto the flight from JFK to Seattle! When I went to file a claim in Seattle, the agent was happy to inform me that it would be showing up on the baggage carousel momentarily!