Things have been very quiet from me for a while, but I have had one of the most tumultuous, yet exciting 12 months of my life. Some of it has been amazing. Some of it has been frightening. All of it has been an amazing growing experience.
Exchange Web Services
After my last post on Exchange Web Services, I spent quite a lot of time on a commercial Java-based implementation of the code that I had been talking about on my blog. The development went fairly well and I was very close to a beta when I started serious work on resolving the security aspects of the Java connection to Exchange. This did not go very well. While I was able to make a connection based on Digest authentication, this was not satisfactory for some implementations. The NTLMv2 implementation had to work, and doing it with Java just does not cut it.
I sat back and thought about it for a while and came to the conclusion that there really is no compelling need to fight with Java to get it to communicate with Exchange Server. Windows Communication Foundation (WCF) provides a good mechanism for exposing standard WebServices that can be called from Java, OpenEdge, and any of the ESBs. Not only that, because WCF is .NET based, it also allows me to leverage the .NET managed API for Exchange Web Services and that makes working with the API much easier. Most importantly, the security aspect became a simple issue to resolve.
So I made the decision to switch from Java to .NET for this solution and I started work on a .NET version of what I was working on. Over the next few months, I will be expanding the EWS article series to include the last 3 articles that I was planning to write in Java, but I am also going to add a set of articles that describe exactly the same functionality in .NET.
A Phone Call from Oracle
At roughly the same time as I was getting very frustrated with the Java security issues, I was sitting in my office at DIRECTV one day working when I got a call from an Oracle headhunter who told me that a salesperson that I was working with for a DIRECTV product evaluation had recommended me to her and wanted to know if I would be interested in a position at Oracle. I have had numerous interactions with Oracle in my life as a prospective/existing customer, and I have always been consistently appalled at the behavior of their sales team and the disgustingly poor follow through that I have seen post-sale.
Combining that experience with the takeover of Java and MySQL because of the Sun acquisition, and the fact that Oracle has a reputation for buying products to either intentionally or negligently kill them leaves me with a very bad taste in my mouth about the company.
To me, there is a difference between being ethical and being moral. Morality requires more than just adherence to the law and ethical standards. It requires a proactive program of going beyond what ethics require and giving back. Sun, for all its faults, did everything it could to try and foster a strong OpenSource community. While it made money out of the community, it also gave back to the community in spades. Oracle was already showing signs that it was out to exploit the OpenSource community for whatever profit it could make by whatever means necessary. While not exactly unethical, it's not moral and to me, that is value that I hold in very high esteem.
So my response to the recruiter was that even if they offered me what Larry Ellison earns, I would not work for Oracle under any circumstances, so she needn't waste her time calling me again.
A Phone Call from Microsoft
A couple of weeks later, I got a phone call from a headhunter at Microsoft. My natural reaction was to say "Oh heck, no!" But I decided to listen to what she had to say. She indicated that she had found my profile on LinkedIn and they were interested in talking to me about a position in the Interactive Entertainment Business (IEB). IEB is the organization that creates XBox and runs XBox Live and the manufacturing supply chain for all consumer-facing Microsoft products.
My attitude toward Microsoft had always been consistent. While Microsoft has never really fostered an OpenSource community, it has always provided phenomenal support to its development community. Even though MSDN is an expensive investment if you have to pay for an annual subscription, it is also the most amazing library of help you will find anywhere and the value you get for the cost of the subscription is much better than anything else out there.
In many ways, my attitude to Microsoft was that although it was a big ugly giant, it was more like Shrek than the one in Jack and the Beanstalk! So I heard the recruiter out and went on to do an interview with the hiring manager who asked me to fly to Seattle for a round of interviews.
The Problem with California
I agreed to the interview, but I was really in two minds about whether this was worthwhile. Certainly, I loved what I was doing at DIRECTV. DIRECTV is a great company to work for and they had some amazing stuff going that made me very reticent to leave.
The problem with DIRECTV was that I lived in Arcadia, near Pasadena and DIRECTV is in El Segundo which is 35 miles away. That 35 miles took me through the center of Los Angeles, and while it was only a 30 minute commute when there was no traffic (at 5am), coming home in the afternoon could take anywhere from an hour and a half to two hours. Friday afternoons were always the worst and I hated my commute.
Moreover, California is an exorbitantly expensive place to live. It is absolutely absurd how expensive it is and although I was technically near the ocean, I was far enough away that I might as well be in the middle of nowhere. While the sunshine all year round is nice, the air-conditioning in the Summer, which was pretty much essential, was costing me around $400 per month. LA was not my favorite place in the world to live.
I flew up to Seattle for the interviews process, and while Microsoft does WOW you with the campus and the area, the interview process is grueling. I left feeling positive about how the interviews had gone, but I also left feeling like I didn't think I was making a career move that was going to be that big a shift forward.
A few days after I got back to LA I got an offer from Microsoft, and while it was better than DIRECTV, I really wasn't convinced.
The problem was I was not sure I wanted to leave DIRECTV. It's a really cool company. The technology is fascinating. I was just starting to feel like I understood the entertainment business, and I was not convinced that the grass was any greener on the other side. As a friend of mine said to me, "the grass is always greener… right over the septic tank!"
Allison (my wife) and I did a lot of soul-searching and careful math. I made a number of phone calls and spoke to a lot of people who either work for or had worked for Microsoft and the consensus was consistent. So after a lot of agonizing, we decided to accept the offer and I started work at Microsoft in Redmond at the beginning of November.
At the end of November 201 I went back to California to help Allison with the move. We decided that our dogs were not going to be subjected to flying, so we rented an RV and drove from LA to Seattle via the Pacific Coast Highway and the Redwood Forest. That was an amazing experience, although an unseasonably early snowstorm made for an interesting trip.
A week after I joining Microsoft, my hiring manager announced that he was leaving the team. I was told that if you don't like your manager at Microsoft, just wait a few months and you'll be re-org'd. Little did I know how true that was going to be. My manager's position was not back-filled, so I reported to his manager for a month before he announced that he was leaving the team, too. Both of them were promoted inside the company to other sections, but this was a little surprising. I joked with Allison that if I keep losing managers at this rate, I'd be reporting to Steve Balmer by the end of 2011.
Microsoft is also the most difficult company I have ever worked at to figure out the culture. For a $260B company, it has so much diversity in how different orgs work that it is more like a conglomeration of smaller businesses than one big corporate. The org that I work for – Manufacturing Supply Chain and Information Services (MSCIS) is the best run organization I have ever worked for. Our VP just gets it. His (and our) principles are what I've always believed. I honestly feel like I am finally home.
But work is not everything.
In early January, the most important human being in my life, my wife, Allison, was diagnosed with Ductal Carcinoma in Situ (DCIS) - Breast Cancer. I'd been at my new job for two months and now we had to deal with this. Fortunately, DCIS is sometimes called Stage 0 Breast Cancer because there is no lump yet and it hasn't had a chance to spread. One thing was for sure, though, Allison was going to have to fight this and she needed all the help she could get. The kids had decided to stay in California so the two of us were alone.
Nothing I have ever done in my life could have prepared me for how helpless I felt as I watched the most important person in my life deal with a life-threatening disease. While it drained her and made her sick, I was doing all I could to be successful at Microsoft. That was when I learned something about Microsoft that I could never have guessed going in.
When my boss learned that my wife had breast cancer, he told me to make sure I put her first. I sort of ignored it. Then his boss spoke to me and asked me how my wife was doing. Soon all my indirect managers were concerned about Allison. I was categorically told that my wife was more important than anything that Microsoft needed and I needed to be there for her.
Slowly it started sinking in: Microsoft really is a moral company. The people that work there are more important than the company. Microsoft truly does care.
What really reinforced this for me was a presentation that was done for our senior leadership group by our SEA team who were explaining what we do around social conscience on the production lines overseas. Our VP pointed out that we have done things like install washers and dryers in the dorms on the production lines when the people who work on the lines won't use them.
As I listened to the presentation, I realized that I had made the right decision. Microsoft was not only an ethical company, but they truly care about morality too.
Despite all the upheaval associated with it, I'm finally home.