Indeed – 2016

Indeed Grandview Champion Building A

After the last interview at Google, I did something very unprofessional. I blasted them on Facebook:

Concerning Google interviews: I have been contacted five times, had four phone screens, and three onsite interviews. One was in 2000, before they developed the “Google Interview Process”, and I disagreed with how they were doing things and the hiring manager and I got in an argument. I failed one of the phone screens because I misread the programming problem. The next-to-last onsite, I did not answer well on two of the interview sessions, so I was not surprised I got no offer. But the last one… I felt like I nailed 5 out of 6 questions, and needed one little nudge in the 6th. I could not have possibly have done better, and still got no offer. That’s the one that sticks in my craw. The fact that I have a lot of relevant experience was not important to them.

I guess that wasn’t too horrible. Still, normally, I have a cooler head, and don’t just unload on people or companies. However, this time, a recruiter I know socially commented:

Talk to me about indeed

That evening, both of our boys had a Cub Scout meeting, and she approached me, and asked, “Have you thought about Indeed?”. I replied, “Should I?”. She handed me her business card. “Send me your resume.”

At the same time, at Mozilla, I was having a difficult time. I did not really enjoy automation of Firefox, and was not good at it. I also did not get along with my manager. I am extremely extroverted, and tend to speak whatever I am thinking, and it obviously got on his nerves, even if most our interactions were in chat.

Mozilla had put together a team to do an iOS version of Firefox, and I was extremely interested in working on that team. Right about that time, however, a new mandate from HR stated that all internal candidates for positions had to go through the same hiring process as external candidates. The justification (which I understand) was that Silicon Valley had too many Good Ol’ Boy hires, and Mozilla wanted to keep our candidate stream as diverse as possible.

The problem with that, of course, is that external candidates have been working on the technology full-time. I had a day job that had little to do with iOS. And there were family concerns taking up all of my spare time, so I could not really do open-source contribution on the Firefox iOS app.

So, Indeed seemed like a good way out if I could get the job. I was still applying for the Firefox iOS team at the same time.

The next day, the recruiter called me, and said that they would like to interview for Software Engineering Manager. It had been a while since I had done that, but I had thoroughly enjoyed it when I did. “The first step is setting up a technical phone screen. Could we have a time where an engineer calls you?” We agreed.

A few days later, a very nice woman from Indeed called me. We talked about software engineering process for a few minutes, and then she gave me a programming problem. It seemed really easy, and we wrapped up with about 5 minutes to spare. That felt good!

The next day, the recruiter called: “So, we have decided not to pursue you for Software Engineering Manager.”

“Oh, OK, I understand. Please tell the woman phone screening me thanks for her time. And thanks for taking the time yourself,” expecting that to be it.

“But…”

Huh?

“… we would like to bring you end for a round of interviews for Software Engineer”.

What? Woo-hoo!

Unfortunately, my mother had died the previous weekend, and I had to take care of memorial services for her. So we schedule the interview for a couple of weeks later.

Turns out the Indeed office I was interviewing at was the closest tech company to my house in Austin. That was cool.

I showed up at the designated time. The office was very cool and modern. Screens everywhere. Brand new building.

The day was:

  • Whiteboard
  • Architecture
  • Code Review
  • Whiteboard
  • On-site programming exercise
  • Resume Deep Dive
  • Close

I am going to take things out of order. Indeed has free food for lunch, and it was outstanding. I talked to a junior engineer about release engineering.

I felt like I nailed the whiteboards. I put up good solutions, and they asked extension questions, and I answered those as well.

I did not have a lot of architecture experience. I had a real good time during the interview, but this was not my strong muscle, and we both knew it.

I felt at the time like I really nailed the code review. After all, I found two bugs in the code! But looking back, I wish I had known Java better, and I made some pretty bold fairly incorrect statements about the code (I had never seen the final keyword, since my Java knowledge was from a class in 1996).

The programming exercise involved reading files off of disc, parsing them, and doing interesting things with the data. Most of my programming career, file I/O was done through Mac or Windows APIs, and those APIs were not appropriate 20 years later. I had also done a lot of file i/o work with Tcl/Tk, but Tcl/Tk was not on the laptop provided, and was not a modern technology anyway.

I told the proctor of the test that I either had to learn File I/O in Python, or string processing in Java (well, for that matter, File I/O in Java, to be honest). It was a 90 minute test, and I spent the first 20 minutes writing the code to read the file and break it down into pieces I could work with. I outlined about 20 steps necessary to finish, and I got through 16 of them before I ran out of time.

A manager talked to me about my career in the Resume Deep Dive, and we talked about the last project I was writing automation for at Mozilla. Don’t remember much else.

And the close, they basically asked for my feedback about the interview process.

One side note: They had moved into the building no more than 3 weeks earlier. The conference room I was in had a giant raw wooden door. I was wondering if maybe they were recycling building materials (Red Hat San Francisco office did that). But no, when they moved in to the new building, several conference room doors shattered, so the wood was a stopgap while they were redesigning and redeploying the glass doors.

Two days after the interview, the recruiter called me, and gave me an offer! As a Software Engineer!

I was on cloud nine.


There was a deadline on the offer. I was still trying to get onto the iOS Firefox team. They had given me a homework problem, a toy app to write. My plan was to write it in the evenings and over the next weekend, and submit it. It was better, I thought, to stay at Mozilla if I could.

However, the deadline for signing the Indeed office came up quickly. I decided to accept the offer, and if things worked out with Mozilla Firefox iOS, I would consider rescinding my acceptance.

The day after I accepted the offer, I had a 1:1 conference video with my Mozilla boss. When I connected, somebody I did not recognize was in the call. I apologized, and said I must have the wrong room, but he said that I was in the right place.

This was a very bad sign. I was wondering if I was being laid off.

My boss showed up a couple of minutes later, and said, “This is <REDACTED> from HR. He has some things to say.”

<REDACTED> started in, “We are putting you on a Performance Improvement Plan for the next six weeks…” and started describing all that meant. Two things it did mean:

  1. I could not change teams while on the PIP. So, goodbye Firefox IOS.
  2. Mozilla paid generous bonuses. 50% of the quarterly bonus was based on company performance, 50% was based on my performance. My half was forfeit for any quarter where I spent time on the PIP, and the six weeks overlapped the quarter boundary, so I was guaranteed not to have a personal bonus stake for another six months.

Well, that made the decision easier. However, I did not want to miss out on the company bonus for the almost completed quarter, so I set my start date for the third Monday in April. If I had given notice before March 31, I would have lost my bonus. So I gave two weeks notice after April 1st.

Turns out Indeed is amazing, and I am still very happy there.


I’ll just leave this here:

Google Ends Age-Discrimination Suit with $11 Million Settlement

Google? Again? Really? – 2015-2016

Google contacted me again (see Google – 2000, Google – 2008, Google – 2014, Google Again – 2014, Google – 2015, and Google Again – 2015). I don’t really understand how I could keep failing and they still got in touch with me. This was a slightly different wrinkle:

I came across your resume and understand that you interviewed for a SWE role earlier this year.  However, your experience in a Leadership capacity caught my attention as I support our Technical Program Management job family.
This group combines hands on Engineering and project based leadership across a number of different areas of Google.  One that may be of interest is within our Chrome group.  Would you be interested in hearing more?

They also included a job description.

This was in mid-November. I indicated my interest:

Thanks for reaching out to me. It’s not often I can check off every single bullet point on the job description!
I have certainly had a few positions like this one in the past. I am interested.

We talked on the phone. They asked me good questions about my project management experience, particularly as part of the job I did at Apple. They indicated that they would talk to managers on the Chrome team.

And I waited.

And waited.

And then there were the winter holidays.

At the end of January, I sent a note to them:

At this point, two months later, it is obvious that I am no longer being considered for the positions you had open. Thanks for talking with me, and good luck in your searches.

And they wrote back:

My apologies for not closing the loop in regards to the Chrome OS team.  After sharing your information unfortunately there was not any interest in moving forward.  I sincerely apologize about not following up with this information sooner.

Sigh.

Houston Astros – 2015

The site for sports jobs, TeamWork Online, posted an event hosted by the Houston Astros in Minute Maid Park. Basically, it was a job fair:

TeamWork Online’s Teammate Networking Events give you a chance to expand and grow your network with key senior level executives within the sports industry. Following the event every attendee will watch the Houston Astros take on the Los Angeles Angels of Ahaneim- your ticket is included with your registration. Bring plenty of business cards to pass out to all the people that you will meet!

They promised that there would be an executive there with “Director Business Strategy & Analytics” in their title. I was hoping to meet him, and talk to him about the data analytics department. This thing was expensive; I had to pony up $70, and I had to drive to Houston from Austin, and pay parking, and stay overnight… Oy.

I got there, and found 3 other fellows also wanting to talk about positions with data analytics. One was a former “quant” with a financial firm in Houston who wanted to have his soul back, and the other was a recent college grad with stars in his eyes.

After standing around consuming appetizers and sodas for a while, I finally met the coordinator of the event. When I asked about the person I wanted to meet, he told me that that person had had to cancel, as he was entertaining MIT seniors, graduates, and alumni.

Hmph. The nerve. I bet he hired people from that bunch as well.

At least I finally got to see Mike Trout live. He went 2-4, with two singles. And the Astros won. Yay.

Fortunately, I was happy about the game, but would have been happier with my family there.

Otherwise, a complete waste of time and money.

Google Again – 2015

In the last post (Google – 2015), I mentioned that the recruiter for this position was willing to recommend me for a QA position. So, I agreed, and he passed me over to a different recruiter, one who ran recruiting for the test organization.

The new recruiter sent me an email with all sorts of useful information like “Be enthusiastic and show interest/passion for testing” and “Write very clean and structured code” and “Check for edge cases” and “Share your thought process with the interviewer!”. “Try to identify any bugs in your code and fix them along the way.” “Share your thought process with the interviewer!”, etc. After you get a few of these for developers, this one for testing seemed especially condecending. They still said “Please, refresh on your Computer Science fundamentals”…

We set a time for me to talk to the phone screener. I was on vacation at my mother-in-law’s house in rural Kentucky. The first part of the screen was straightforward. They asked me how to test an alarm clock. I talked and talked and talked and the interviewer finally stopped me, and we moved onto the programming part of the interview.

I don’t remember the problem that he gave me, but the internet connection out in rural Kentucky was not good enough to deal with Google Docs. That was a terrible connection, and I knew it, and there was nothing else I could do in that town. I could have driven to Elizabethtown or Bowling Green and gone to Barnes and Noble or Kroger and used that WiFi, but that would have been weird…

After the interview fell apart, the recruiter sent me an email to reschedule. That was very nice, actually. We rescheduled it for the next week, when I was back home with reasonable internet.

At the next interview, the new interviewer said, “Well, let’s see which question to ask you.” He paused for quite a while, and then said, “You have answered a lot of these questions before”. After another couple of minutes, he said, “OK, Let’s try this one.”

And the interview question was ridiculously difficult. Or at least I thought so. And I still do.

The question:

Write a program which, given an input string, will output a string that consists of the original string and the string that, when concatenated with the original, will form the minimum size palindrome possible.

So, if the string is “a”, the result is “aa”, “ab” produces “aba”, etc.

I did not finish the question, not even close. For one thing, I misunderstood the question initially, and spent 15 or 20 minutes producing wrong answers. And then I ran out of time.

After the interview, I spent 2-3 hours and came up with a solution that is proportional to the length of the string. And then I Googled other answers, and found none that actually worked.

And this is for a Test position?

I did not get an offer.

 

Google – 2015

I got a note from a recruiter at Google. It hadn’t been that long since I interviewed with them (Google – 2014 and War of Attrition – 2014 and Google Again – 2014 detail the last time I had major contact). The recruiter wrote:

Subject: Hello from your new Google contact!

I hope things are well in Austin! I’m with Google Engineering, we haven’t been introduced, but it’s good to e-meet you! I know you were in touch with [somebody else] here at Google, bug wasn’t sure if you two were able to connect last spring. He has transitioned to a new team, so I wanted to reach out to establish myself as your new point of contact in case you want to get in touch with somebody at Google at some point.

I know it may still be too early given your very comfy role at Mozilla (working from home in awesome!), but I’d be happy to keep the commnication lines open in case anything changes on your end 🙂

I’ll plan on reaching back out later this year to check-in, if you don’t mind. Please let me know if you have a preferred timeline for that communication (after/before fall?).

Interesting. I had been studying and working on a side project since my last interview, so maybe I was more ready now. I told her that I was pretty happy at Mozilla. Then I mentioned:

I am rather puzzled by how Google is talking to me at this point. I interviewed in February, 2014, and was turned down on March 7, 2014.

I started on Mozilla on April 22, and [previously mentioned Googler] contacted me the very next day about taling to me about Google(!). What is going on here? I understand that Google is a big place, and that I may have been interviewing for something difference than anything available, but…

That being said, I am not particularly happy with my role. I am much more interested in systems or applications programming that I am in automation, my current role. I am really interested in server-side work, and Mac OS and iOS work. A good role at the right level of pay (which would be difficult at this point) would be very interesting to me. I would also be interested in leading projects or teams.

She responded:

Thanks for getting back to me and my apologies for the confusion on our end. I did a bit of digging and it looks like we had two independent files for you which led to all of this, how embarrassing. We migrated our internal systems’ information and are still working on clean up, I’ll be sure to fix the duplicates on my end. Again, my sincere apologies for the confusion!

She then asked for a chat on the phone, which was basically confirming what I was looking for. A few weeks later, she contacted me to tell me that there were some teams she was matching me to, and wanted to make sure that I would be open to it. I said yes. She then asked me for an updated resume, and a list of other Googlers I knew. I stopped at 50 names…

She also told me to pick a language to interview in. I chose C, because it is the language at the time I was most comfortable in. That probably was not the wisest choice, as it is an “old” engineer’s language. She assured me that they had plenty of C code at Google to work on…

Then came the phone interview. I got a relatively easy string processing question. Of course, in C, it had to be easy because there is so much bloody boilerplate and no library support in C. I thought I had hacked the Google interview process!

They decided to move forward with the interview process, and put me in touch with an interview coordinator. Who promptly informed me that the interview pretty much needed to be in something more modern than C. So, Java it is.

By this time, I was at a Mozilla All-Employee meeting in Whistler, BC, and Google wanted to schedule the travel. The only reason I mention this is that I had to find a place to hide, and I had to pay international roaming on the call. Annoying, that.

Anyway, off to Mountain View. I arranged it where I could fly out in the early morning, interview in the afternoon, and fly the red eye back, only taking one day off of work.

The day of the interview came, and I showed up right on time at the Googleplex. The interviews went well. There was a string processing problem, a binary tree algorithm problem, a basic service architecture problem…

The most interesting session was after lunch. The premise, as near as I can remember it:

Let’s say that Google had put a data center on the Moon with 100 machine installations. Now it was time to update the kernel on those machines. How would you approach it?

I asked if I could assume the kernel update was well-tested. They said that I could not.

And off we went. I had a blast.

I finished mid-afternoon. It was as good a interview as I could possibly do, and I felt really good about it.

I called my friend at Mozilla who started my process of working there, and asked if he wanted to take the afternoon off and have a beer.

Mozilla QA was at a crossroads (Walt Mossberg detailed a lot of Mozilla’s problems in this excellent article), and both of us were being caught in the storm. He was unhappy; I was becoming so. It was good to catch up with him in person!

So I went home and waited.

Surprisingly, I heard back pretty quickly.

It was a no.

I was actually really, really disappointed, because I did not think I could to better. My guess at the time was that I was just not good enough at programming to work there. Put me in a funk for a while.

However, they did want to talk to me about working in the QA organization. I guess my session about upgrading datacenters on the Moon was worth something…