The one year anniversary of this blog has come and passed, and I wanted to thank you for reading so far. It is also Spring Break, so I am enjoying a vacation. This post is just going to highlight the five most popular articles, least popular to most. Feel free to skip this one if you have read all of these, but have fun looking back with me if you are interested.
Maybe five days after my last day at Lombardi in April, my boss there sent me a note. He had received a message on the Trilogy alumni mailing list. There are a lot of people I have run into in Austin who at one time worked for Trilogy; they had a legendary training program for new programmers called Trilogy University, and if you went through it, you had a leg up getting a job in Austin over those who did not.
The letter was from somebody who is now an exec at Indeed:
I joined Indeed at the beginning of the year and I’m expecting to double our engineering headcount here in Austin by the end of the calendar year. Indeed.com is one of the fastest growing web sites <http://www.indeed.com> in the country; according to complete.com, we’re currently #201 in terms of unique visitors (> 6mm by out count) and our growth continues to be about 100%/year. In addition to ongoing opportunities for engineers for our search engine, site and applications, I’m currently looking for a test automation architect. If you or anyone you know might be interested, feel free to contact me.
He signed it, and then listed the job description. I was not really qualified at that point; I was missing web technologies, Selenium, and building automation frameworks, but I had a lot of the other qualifications. I was still just looking for management jobs at that point (for whatever stupid reasons..)
Later, my good friend in Austin who had been trying to help me get jobs here before sent me this:
Using a posting I found, I sent this email on 5/12/2008:
Dear Hiring Manager,
I saw the posting for Software QA Manager on indeed.com, and I think that I would be a fit for the position. I have 10 years of experience in software management, including 7 years of managing QA. I also 10 years of development experience. I feel that my interpersonal, technical and planning skills are a good match for the job requirements.
Please consider my resume for your position; I look forward to talking to you in person.
And, that was that, I thought.
On June 11, a week after I had accepted the position at Coverity and had made my travel arrangements to go to San Francisco for orientation and training, I received this:
I was cleaning up email and ran across yours from 5/14. If you are still interested in Indeed, please let me know. Your email was no read until now.
I responded with an apology, explaining that I had accepted another position, and the Indeed person thanked me for explaining.
4 weeks is a long time to take to respond to an applicant, but at least they did respond and follow-up once they read it!
Sometime in 2004 or 2005, one of my best friends went to work at a startup that was doing software to analyze source code and identify potential bugs, based on common mistakes with both algorithms, and the quirks of the C and C++ programming languages. I was at Apple, working in the Developer Tools group, so he got in touch with me quite often as he tried to figure out how Apple’s version of GCC, the open source compiler, operated. He was really trying to figure out how the compiler found secondary files on the filesystem, which, on Mac OS, is tricky.
Fast-forward a few years, in January, 2008, he called me. Told me that the company had just fired the disaster that was their QA Manager, and that they had been looking for a replacement. I told him that I wasn’t willing to move back to California. He said that they were so desperate that they were willing to consider a remote hire. I told him that I was still making a go of it at Lombardi, and that I was going to pass. He told me to call him if I changed my mind.
And in April, I got let go.
After crying in the parking lot for a while, I drove home. When I got home, my wife told me: “You have to do two things: One – you are going to have to get a new phone anyway because Lombardi is going to take away your Blackberry. You have to get yourself an iPhone.” (It had shipped 9 months earlier and I had pined for it).
“And, two – you have to call your friend and talk to him about Coverity.”
“But I am in really bad shape and don’t really want to think about it,” I moped.
“No, you must talk to him now. You have to know whether it is still an option ASAP.”
So, I sat down and called him. After small talk, I said:
“I got laid off today.”
“Oh! I’m sorry! That’s wonderful! That’s horrible! I know you must be feeling awful! But we need you! Get me your resume as soon as you can!”
“I need to overhaul it, but you’ll have it Monday morning.”
“Great! I need to talk to G right now! Wait, he’s not here yet. As soon as he gets here.”
I got my first iPhone that day, and having it really helped my emotional state (although the price was daunting!). I then sat down and spent the next few days redoing my resume from scratch, updating my LinkedIn profile, and asking for recommendations. I also went into Lombardi and had the phone number transferred from the Blackberry to my shiny new iPhone.
I sent the resume in late Sunday night.
On Tuesday, I got a call from G, my friend’s boss.
“I have opened up a position called QA Director. You would be building out our QA organization from the ground up, hiring people as appropriate, building QA plans, and possibly expanding our Release Engineering effort.”
“That sounds good.”
“The thing is, I don’t know how successful you would be not being in the office. It gives me some confidence is that one of my managers is already remote, in Boston. And he has people here reporting to him. You’ve worked remotely, and managed remotely. Talk to me about how you mitigate the risks, what kind of communication you would set up, and the risks of being a remote manager.”
So, I talked about electronic communication, wiki pages, email etiquette. I talked about lack of hallway conversation, about needing eyes and ears in the corporate office. I talked about the importance of automated testing, particularly at the model and at the API level. I talked about how compilers worked, and how Coverity’s products must be implemented.
At the end of this conversation, G said, “Well, I have to think about it. I like what are you saying, and the way you are thinking about all of this. But I have to decide if I am ready.”
A couple of weeks passed, during which time I started the local job search in earnest. My friend sent me email almost every day, asking if I had heard from G. My wife decided to take our kids to her mother’s house several states away, and I decided to join her to get a break. While we were on the road I got an email from G, asking if we could set up a conversation soon. I gave him a date and time.
He called me right on time, and said, “I would like to move forward with interviewing you for this position. Could we setup a trip out here to talk to my staff? Could I get references?”
I told him about the PMP class in Las Vegas I had arranged to go to while still doing work at Lombardi (technically I was still an employee). We agreed that I would do that class, and then fly out to San Francisco for a few days for the interview. I paid for the ticket change for my return flight, and Coverity picked up my flight from Las Vegas to SFO. I stayed with my friend, and I had a good weekend catching up with him and other friends.
On Monday morning, I went to the office and met everybody. G talked to me first, and then I talked to a parade of engineers and managers. One of them asked about how to test user interface. I told him I had no good answer for that. There were technologies for testing web pages that were pretty good, but I had no good solutions for testing native Windows applications. I preferred doing strong unit tests at the model and API layer; the interface changes much quicker than tests can be written, so that should be tested manually.
I said to myself, So that session went well. Sigh. Not an auspicious start; I did not have the answers to his problems.
However, they did a programming whiteboard, and I nailed that. The person asked me to write something to covert integers to ASCII strings in C. Right up my alley.
I discussed testing command-line utilities and compilers with the other people. QA philosophy. Software engineering. Distributed teams. Offshore management (Oh, there was a testing team in Ukraine? Amazing; Lombardi had one of those as well!)
At the end of the day, I was exhausted, but I felt good. My friend, who had recused himself of the interview process, was dying to talk about it, but couldn’t, so we talked about Star Trek, Game of Thrones (still just books), and our family life.
I flew back. A couple of days later, G called me and asked if I would give him the contact info of my old boss. He wanted to talk to him.
“G, he fired me. Why on Earth would I let you talk to him?”
“I just want to see they way he thinks.”
“I guess I don’t really have a choice here. OK.”
He called back about 3 hours later, and said, “Wow, those Lombardi people are extreme Type-A personalities, aren’t they? You have nothing to worry about over my conversation with him.”
Time went by. Turned into weeks. I heard from him around that time, with an email:
“I am having a difficult time thinking about this. The entire staff really liked you (even the guy grilling me about GUI testing? I thought to myself); I really liked you. I am trying to come up with a scenario where this could work with you in Austin, and us in San Francisco. I need some more time.”
A couple of weeks later, my friend asked me if I had heard anything, and when I said no, he said, “Well, I probably shouldn’t say anything, but G has been really cheerful the past day or so.”
The next day, G called me.
“I have been rethinking what I want to do. I don’t think that this could work with you as QA Director.”
“I’m sorry to hear that.”
“But I do want to make you an offer for QA Manager.”
“So what do you see as the difference?”
“Rather than setting direction and strategy, you would be working with the other managers on my staff, as well as the architects, to develop it together. You would still hire people, but the staffing levels would be set by me. I feel that this gives you what you need to succeed, but covers the risk of being remote. You would have two people directly reporting to you, plus one contractor in San Fransisco, one contractor in Omsk, Russia, and one in Kiev, Ukraine.”
He went on and outlined his vision. Then we talked about tactics.
“I would need you to spend one week/month minimum in the office in San Francisco, sometimes more.”
“25% travel time. OK.”
“What do you think?”
“What’s the compensation picture?”
“I will have somebody call you about that. I don’t do those negotiations; I am not good at them. Does this sound like something you could do, assuming the comp is acceptable?”
“Yes, but I have to think about it, and I really need to know compensation.”
“Let me have my recruiter call you.”
Two days later, I got a call from a recruiter. He outlined the offer. The base salary was 25% higher than Lombardi, and back up to the level of what I was making at Apple, with no state income tax! (Yay Texas) There was a bonus program for managers, and there were stock options.
Frankly, it was incredible. I said yes.
My long spring nightmare was drawing to a close. Still had to setup my home office in my house. Still had to arrange for my first two weeks in San Francisco. But, we were going to survive.
2008 was a really bad year for this country, and that extended to my personal situation. There were not very many jobs because of the worst recession since the Great Depression, and I was out of work.
Not only was I out of work, but I had managed to derail my career pretty badly. 11 years earlier, I made the decision to go into management. 4 years after that, I went into QA.
See, the thing is that once you are in management, or you are in QA, or both, people stop believing that you can be software developer. Not only that, the fact that aren’t developing software means that you aren’t keeping up with the most popular development technologies, like programming languages, or platforms. Or even entire programming paradigms, like object-oriented programming, or functional programming.
So, in 2008, most development jobs fell into the following categories:
Java and web development. I had an academic knowledge of Java but no practical experience.
C++ and system development, either on Windows or Linux. Yeah.
There was this new thing called IOS and the Mac App store. It at least was in a language I knew something about, Objective C, but had no practical experience there either.
Ruby-on-Rails and web development. No experience there.
All of those technologies were object-oriented, which I did not have a huge amount of experience in, either.
Another hurdle: what few development positions there were were in Silicon Valley or Seattle, for the most part. At least the ones I found that I might have a chance at.
I had not much experience with QA automation, either. There were some positions for that, but I was not qualified.
Software management positions were extremely rare, as most of those positions are filled from within, or by being a friend of somebody hiring one. And I had no friends in Austin tech. And, frankly, I had just failed as a QA manager.
And manual QA work basically disappeared during the Y2K scare. It’s the lowest-paying tier in the software world. Well, except for support.
I have previously mentioned that I had a friend in Austin who was very well connected in the tech community here. He did what he could to help me. I did get a phone screen from a startup called OtherInbox. Basically, the hiring manager did a lot of probing of skills, and I did a lot of trying to convince him that I was smart enough to learn on the job. I had not done web work, and I had not worked with Ruby at all, much less Ruby-on-Rails.
After a few days, I got an email reply:
It was nice talking to you also. At this time I don’t think there is a good fit for us because we’re looking for someone that is more hands on / less manager and because you don’t have direct experience with web-based applications. But I work with a bunch of other startups in town and will keep my eye open for any other opportunities!
Fortunately for me, I had been pursuing something since before I was fired at Lombardi. I’ll talk about that next time.