Skip to content

The Plot Thickens

August 12, 2019

Regular readers of the blog (that number would be zero!) know that I am in the midst of a divorce… or MAYBE I’m in the midst of a divorce… not sure yet which way that is going to go, but we are living in separate apartments now and splitting custody of the kids, so it’s at least a trial divorce?

Anyways, that burden of stones upon my chest has been added to now by… [drumroll] losing my job! Yes, I am getting canned. For those who don’t know, I work at a little company called Microsoft. I have worked there since 2002. Almost 17 years and it’s over just like that. Why am I losing my job? There are a myriad of reasons, which is what I want to go into in this post. In short, it’s complicated.

When I was first hired by Microsoft, it wasn’t through the normal hiring process. Microsoft had bought the company I worked at which was called Vicinity and was one of the dot.com bubble companies that went public right before the crash and then lost money like any good dot.com did back in those days until some bigger, richer company that actually made money scooped it up. Vicinity was actually a pretty well-run company, as we didn’t burn through the money raised from our IPO like other companies did at that time. We nursed it and I believe we still had over 100 million in the coffers when Microsoft swooped in.

For me, the chance to work at Microsoft was a dream come true. Previous to my software engineering career, I was a barista in a coffeshop. Yep, you heard it right: I was slinging espresso and hadn’t written a line of code in my life (we won’t count the very simple BASIC programs I wrote on our Commodore 64 YEARS AGO because most of those were copied from enthusiast magazines (yes, they actually had a magazine dedicated to a particular computer model! How quaint!)). I was in the Silicon Valley during the late 90’s, when the dot.com boom was bubbling up and I couldn’t help but notice all the tech workers coming in to my shop. I can be personable when I want to be and, judging by my interactions with them, I was certain I was just as smart as they were and believed I could do what they did. I started going to the local junior college in Cupertino, CA (sound familiar?) and was looking to earn an Associates in Computer Sci and then maybe transfer to a 4-year university. I would work at the coffeeshop from the early morning to the early afternoon, then drive to school and attend classes until late evening. It was not much of a life and put a lot of strain on the relationship I was in at the time (with the woman who would become my FIRST wife).

Any thoughts of getting a degree vanished when I actually landed a job at a tech startup. It was called “Local Online” and one of the co-founders was one of the guys who created the original ASP at Microsoft. I still don’t remember exactly how I heard about this job or how I got hired. Again, all I had were a set of computer science classes I had taken at the college on my resume. I had no real programming experience. I didn’t even have an Internet connection (ah, what an innocent time!). But the guy hired me. I remember he said that he could teach me ASP. He never really did though, because he wasn’t actually THERE much. His co-founder was there and he was kind of an idiot. The entire business was shoddily run. I learned what I could online (while at work… on the job training!), got my first experience with ASP, SQL, HTML, and Adobe Photoshop. It was crazy. I’d work nutso hours (like 18 hours a day) but I didn’t care because I was earning $18 an hour, a goldmine compared to the $10.50 an hour I had been making at the coffee shop. It only lasted a few months though, because they ran out of other people’s money and didn’t pay me for the last month I was there. So I found a new job and this one payed me $22 an hour!

The point being here that I never received any real formal training in software engineering. Yes, I took a C class. I took a Visual Basic class (haha… what a terrible language). I took a Data Structures class and a Compiler Design class. But everything I knew was inch-deep. Even working in the industry now, what I knew was just a scintilla of what there was to know. But I survived through hard work and perseverance. Eventually I landed the full-time “Web Developer” position at Vicinity and was making $82,000 a year, an INSANE amount of money for a guy who had never breached $30K a year in 30 years of living. And then Microsoft came a-calling.

It wasn’t automatic that we would all get jobs with Microsoft. In typical cunning fashion, they took only about half the employees, separating the lucky from the unlucky (this was during the dot.com bust, so getting a new job would’ve been very difficult at that time). I was in a group of 8 web developers and I wasn’t sure I was gonna make the cut. They had us up for interviews at the Redmond campus in Washington state and I marveled at how the reality did not meet my expectations. It was a weird place with weird people. It was not the close-knit, small company, cubicle dorm Vicinity had been. People rarely said hello to you as you passed them in the hall. Everybody was in their offices, shut off from the rest of their coworkers and interaction seemed minimal. But all that was something I realized more later than specifically at the time of the interviews. We each had 4 one hour interviews within the MapPoint group, which was a location services group within Microsoft and competed with Vicinity for business clients in the store locator business (yes, we would charge a king’s ransom to companies for implementing their store locators. With maps! And directions!). It was a wide open field back then, with MapQuest being the biggest player. Nobody had yet imagined something called Google Maps, which would eventually arrive and dominate us all.

I did well in my interviews, though I was nervous as all hell. One of my greatest fears when it comes to interviews, especially tech interviews, is not knowing the answer to the question they ask you. Fortunately, I was well-versed enough to be able to answer all their questions, even the “trick question” one of them asked me (trick questions were later banned from Microsoft interviews!). But I knew that some of the other people in my group were very good and that I still might not make it. To my surprise, a couple weeks later, I received an offer. It was only for 65,000 a year, but mein gott, it was like a lifeboat on a sinking ship. I did NOT want to be unemployed at that time and I jumped at the offer and the chance to move to the Seattle area. I had always liked that area and was very familiar with it because of the “grunge” music explosion in the early 90’s. I had even visited Seattle after Kurt Cobain’s death to pay tribute to him (even went to his house and saw the garage where he offed himself) [sad emoji face].

Working at Microsoft was not what I hoped it would be however. The people in the MapPoint division did not seem to welcome us with open arms. They seemed to keep us at arm’s length, as if we weren’t good enough for them. We weren’t working on the same things anyways, as the former Vicinity employees were tasked with converting all the Vicinity business clients over to MapPoint’s store locator solution (which I didn’t think was as good!). I slogged away for 2 years, increasingly frustrated with the cold shoulder of the people who I almost looked at as heroes when I was first employed.

In my third year there, I was given a raise back to my former salary that I had been earning at Vicinity and was actually able to branch out some into work that had nothing to do with Vicinity. And then Google Maps hit (this was probably around 2005 or 2006). We were all amazed at how they created their maps, with sliced up tiles that, when pulled together in the web browser, would form a complete map. We did something different to generate a map, sending all the parameters to a server application that would generate a map from those parameters and then return one image of the complete map to the browser. Google’s method seemed superior, in both speed, efficiency, and cost, so we scrambled to build our own map tile server solution (because Microsoft was firmly in “emulate” mode at that time rather than in “innovation” mode). I was involved in that work and it was the first time I was heavily exposed to JavaScript. I still remember this college kid directing me and another Vicinity guy on how you could create prototype functions in JavaScript. Here was this “rookie” schooling the vets. It made me feel like I was not a good developer. Like I was behind the curve. Which I was!

They call this “impostor syndrome”: the feeling that you don’t belong or are not worthy enough to hold the job or position that you do. I felt this way a lot in my early days at Microsoft because I. Didn’t. Know. Anything! So I *was* an impostor! But I got through to the other side when I formally became a test engineer at Microsoft, a position that seemed to be made for less-brilliant people like myself who weren’t born with a keyboard under-finger! I knew I wasn’t good enough to be a Dev, so being a Tester felt right and made me happy. I did that for almost 10 years, having good times and bad times. Then Microsoft up and decided that they didn’t need test engineers anymore and turned us all into Devs! Nightmare time! Impostor Syndrome was back BIG TIME, because now I was walking among giants (really, some of the smartest people I’ve ever met have been Devs at Microsoft) and I was a midget.

That happened in about 2015 or so and, ever since then, work has been a struggle for me. It’s really quite amazing that I lasted this long, actually. My title was “Software Development Engineer II”, but in reality I was an SDE at best. No “2” needed to be added to my title. And my odds of making the next rung on the ladder, “Senior Development Engineer”, seemed remote. Microsoft really screwed the pooch on this one and sabotaged itself. What it SHOULD have done is just fire all the Testers (or rather “lay them off) and just be done with it. That probably would’ve been better for me in the long run. Instead, I had to scramble to compete with ACTUAL Devs who all were better than me, faster than me, and, I suspect, all knew that I didn’t belong. What a horrible position to be in. Now you could say, “Why didn’t you study up and increase your skills?” It’s a legitimate question and I’ll give you three reasons: 1) I was lazy and comfortable. I had been getting enormously overpaid for so long that I started to think I deserved it. I still had Impostor Syndrome, but I also had hubris. 2) I had a personal life that was occupying a lot of my time. I worked a lot, but when I got off work, the last thing I wanted to do was to look at any more code. 3) My home life became tumultuous with my second marriage and with the birth of my first child in 2014. I hardly remember that first year of Cassandra’s life because I was so sleep-deprived. I simply did not have the time to do any outside study. I was hanging on by my *fingernails* at this job and it was exhausting. In 2017, I had my first real failure at the job, joining a team that was doing work that was simply out of my league and I could not keep up. From there, I went back to a former boss who I had had good success with before, but she gave me a doozy of a project that I absolutely bombed. It was a very difficult project and I was all alone on it and I really did not handle overcoming blocking issues very well. I didn’t enjoy ANY aspect of the work and the result reflected that. I still regret that I failed my boss at that time, because she had always been good to me and had been the one who had promoted me from SDET to SDET II (which was later converted into SDE II when the transition to get rid of Testers happened).

I bopped around for a bit, convinced I was on my way out, when by some miracle I got invited to join a team called the “Frisbee” team. They were a team that was writing a test framework for Cortana (back when Cortana actually seemed to have a chance to compete with Siri… and before Alexa came to dominate!). I was excited by this new work and hoped I could latch on to this team and keep up. As it was, the lead of the team had retired and one of the team members had been elevated to team lead. This lady was a hard-charger, in every sense of the word. She was a good coder and she had very high expectations for everyone, including me. I think she didn’t like me from the first, to be honest. I code methodically, taking my time to learn the software I’m editing so that I don’t break anything and I can understand the “big picture”. But that’s not where we are in the software world now. Currently the buzzword is “Agile”, as in one should develop and iterate quickly. Quality was a second priority (or maybe not even that!). I didn’t do well in this new Agile world, as I was used to the waterfall method where time was not crunched into the space of a heart of a neutron star.

I worked my butt off to become competent at Frisbee, but my boss kept giving me bad reviews. When we left Frisbee behind to the Cortana team and moved on to an application that monitored logs coming in from Bing.com for any service degradations, the pattern continued: she’d assign me a few tasks, I would estimate a date for completion, I would miss that date, but I would still get the tasks done. I was bad at estimating and at anticipating blocking issues and accounting for them in my estimates. But deadlines are not the most important thing in software development, especially SOFT deadlines which are more self-imposed than driven by any partner or customer or true product release deadlines.

But I still completed big projects and she said she liked my work. She just wanted it faster. And I couldn’t give it to her. I did try, but then my life blew up with the separation from my wife and I missed another deadline in June (by a few days!) and that seemed to be it for her. She was going to give me another bad review and that pretty much sealed my fate at Microsoft.

So now here I am, jobless for the first time since after I got out of the Navy in 1992. I’m still paying my mortgage on the house that WILL NOT SELL, I’m paying for my apartment, I’m paying $2500 for childcare because my wife is working now as a dental assistant (and, besides, one of her complaints about our marriage was that she was stuck home with the kids!). So this is an *interesting* time to suddenly lose my paycheck, not to mention health care for my family. I have no savings, tens of thousands of dollars in credit card debt and my 20 years of experience as a software engineer are probably, at best, equivalent to someone with 4 or 5 years of engineering experience. Simply put, I don’t think I’ll ever earn $115,000 again.

But we shall see. I thought hard about going to a coding boot camp for a couple months, but the expense (usually around $20,000), some negative reviews, and the fact that I have to pick up my daughter from Pre-K 3 days a week at 2:30pm prevented me from doing that. Instead, I will study on my own. There is certainly content out there for days. It’s just organizing it into a coherent whole that will be the key. I will spend a month or two trying to cram some more knowledge in my brain and to do a lot of interview prep, so I won’t be as petrified when I inevitably interview. If I could just increase my mastery of some of the terminology and finer points of software development, I will be a happy man. Wish me luck! I will need it!

From → CodeIsLife, JobSearch

Leave a Comment

Leave a comment