Amazon – 2014

Oh, boy. So excited.


I got a message on LinkedIn:

Hope things are going well with you these days. You have a very interesting background stemming from your degree at Rice University. I just wanted to see where you are at with your current engagement at Klink and if you have any interest in any of the opportunities I represent here at Amazon in Seattle, WA. If you do maybe give me a brief idea of what your ideal position looks like and I can let you know what roles we have that would be in line with that. If you are currently happy and not interested in hearing more no worries just wanted to touch base anyways.

I responded with interest, and sent my email.

After some back and forth, he sent me a job description that he had picked out for me.

Job Description

Amazon Identity Services is looking for software engineers who like to solve complex problems, and relish the challenges of building and operating complex, distributed, mission critical systems under extreme loads. Our systems manage hundreds of millions of records, and serve millions of service requests. Do you think you are up to the challenge?

Identity Services provide the core services that identify, authenticate and authorize our customers, and provide the information to hundreds of services within the Amazon service oriented architecture. We manage the customer authentication and authorization experience, and are embarking on new and exciting initiatives in this space, both on the web and on mobile devices. If you are excited about solving new business problems using state-of-the-art technologies, and open standards such as OpenId and Oauth, or developing applications and frameworks for mobile platforms, we’d love to talk to you.

Duties will include design, implementation, documentation, support and operations of various facets of Identity Services. We are looking for self-starters who are interested in leading new initiatives. Successful candidates must also be innovative, creative, flexible, self-directed, and able to design and write high-performance, robust and maintainable code. They must have excellent verbal and written communication skills. The ability function at a very high level in a fast paced environment along with a team of very talented engineers is essential.

If you enjoy working in a dynamic environment to deliver world class mission critical systems, this may be the career opportunity for you.

It goes on to say things like they want somebody with a CS degree, and programming experience, and close with “Ability to handle multiple completing priorities in a fast-paced environment.

I can do that. Then came the phone screen. It was a live programming session in a shared document system.

The person on the other end game me the basic problem: You have a list of star coordinates, and you need to find and print out the closest 50 stars to Earth. I asked if I could have a PriorityQueue API, and then was able to complete the exercise with time left over. That was fun.

So, a few days later, I got an email that said, “The hiring team has really enjoyed speaking with you and we sould like to schedule a time for you to come to Amazon for in-person interviews!…” (Yes, they did not put a comma in that sentence.) It went on to describe roles which were really senior, and which I did not actually feel qualified for. The recruiter assured me that not many people outside of Amazon’s core engineering team was qualified when they started, so please come in.

So I flew to Seattle.

It was February, and it had actually snowed the night before. Doesn’t normally snow much there, so there were many traffic problems. The interview was in a tall building downtown. The building had a really great view of the Space Needle, so it had that going for it. I went to the lobby on whatever floor it was. There was a holding area just for interviewees. You had to show ID, and then they printed a visitor’s badge. The entrance to the interview rooms was strictly behind a badge lock.

They took me in. They told me that if I needed to use the bathroom, somebody would have to walk me there and back. Lovely. Felt like a prison.

I had three whiteboard programming problems, and one architecture problem. I would be surprised if my answers to the architecture problem were worth anything; I felt lost.

I don’t remember one of the other problems. However, one of them was a computational geometry problem. I spent 20-25 minutes trying to figure out the definition of a “ray”. It did not help that English was not the interviewer’s first language, and he had a really hard-to-understand accent. That was frustrating.

The other one was this: Given an arbitrary object, write something which would output the object in JSON format. This is not hard, but it is very, very long. I wrote and wrote and wrote and filled three white boards and really did not see the point at all.

That day did not go well.

I had several onsite interviews all bunched together. Resolution of this interview will be in a future post.


Golden Frog – Early 2014

This was my favorite toy as a kid!

When Klink hired me as a contractor, it was supposed to be for 3 months. As the holidays for 2013 were approaching, that three months ran out.

I had a meeting with my boss. He told me that they hired me because the original Mac developer went AWOL one day, and the person that they had wanted to work on the Mac went on family leave, and would be gone three months. She was coming back to work, so they had originally wanted my contract to terminate after 3 months.

(Shudder. I knew that the contract was temporary, but it is still chilling to hear somebody talk about you as a plugable resource.)

However, I had impressed them so much as a Mac developer, that they were going to keep her where she had good skills (backend work), and would like to make a permanent offer for me.

He asked me what I wanted in salary, and I told him, and also said that I wanted Klink to buy me a work machine, since I was using my personal laptop at this point.

Right before the holidays, he presented me a written offer for $5000/year less than the number I had told him. There was no secondary compensation at all. No bonuses; no equity. There was a health plan, and a 401K plan, but still, the offer was pretty disappointing. Not having a job in my back pocket, I accepted, but started working on another position immediately.

As 2014 unfolded, the new Mac for me to work with never developed. And then we lost our lease on our office, because our shadowy corporate masters did not want to sign a 3-5 year lease on a new place. The office moved to a shared office co-op. I asked if I could work at home, since I had worked at home a lot before, and it would mean less space in the shared office. I agreed to be available on Skype, and come in once a week or so for meetings.

So the first part of 2014 was a whirlwind. I am not going to write about chronologically, since everything was happening at the same time. It was hard to keep up with.

One day, I got a phone call for a company looking for a Mac developer. Golden Frog was a local company, and they had a file syncing client to their cloud storage system, much like Klink (or Dropbox or Amazon Drive or Box or Google Drive…) I downloaded the app and took a look.

The app icon was a cartoon version of a Tonka dump truck. It offered what you would expect, but had no “Klink this!” feature, which would establish a link to an arbitrary folder to your sync set. Still, seemed like what I was currently working on. Digging around in their app bundle, I figured out that they were using the same python library to keep track of file system changes.

The recruiter set me up with a phone call with the manager. She described to me the organization and business plan. There were 20 people in the engineering department, all reporting to her. A small number were working on DumpTruck, but the others were working on their proprietary VPN product. In the conversation, she mentioned that the senior engineers were not listening to the product team/upper management, and that she had no visibility to what the QA and release engineering teams actually did.

She also informed me that I was too senior; the budget was for a junior engineer.

I then questioned her:

Me: How many direct reports do you have?

Her: 20

Me: Are there any other managers?

Her: No

Me: What kind of product scheduling methodology do you use?

Her: We are trying to move to Agile, but have some rought patches.

Me: When was the last time anybody took a significant vacation

Her: I don’t know.

I knew I did not want to be an engineer here anyway.

Me: So let me guess as to what is happening here. The engineers are confrontational because they don’t think that they have time to do real work, and there To-Do lists are way too long. QA is complaining because they already have too much to do, but they don’t know what to test with anything new. They are also pushing for automation, but have nobody who can do that work. Release Engineering is pushing for a continuous-delivery system, but since there is no automation, and probably no budget, it is falling on deaf ears. And your management is upset because the team appears to not be delivering anything.

(10 second pause)

Her: Go on.

Me: I am going to boldly assert that I can help you, but as a manager. I have experience managing both engineering and QA teams, and have managed full-cycle development. I have done performance evaluation, product design, and systems design. If you were to hire me, we could work together to make this team much better.

Her: Your guesses as to what is going on around here are scary.


Her: We don’t currently have any budget for another manager, but let me get with my management and talk to them. I’ll get in touch later.

I scared her. I never heard from her again.


New York Yankees – 2014

I mentioned in Project Scoresheet – 1989 that I was an amateur baseball statistical analysis (“stathead”), and dreamed of working in an enlightened front office someday. At time of that post, 1989, there were no front offices truly embracing analytics. Moneyball documented how one club started the process, although Oakland wasn’t alone. By the time the mid 2010’s came along, most clubs were starting to hire data analysts and programmers.

I still get a cold chill when I see this logo, though.

I saw a job listing on some board somewhere for a job as a programmer for some team or another, and when I cliked on the link, it took me to Teamwork Online, which is a site that most of the major league clubs use to post jobs. I signed up for that site, and notifications for analysis and programming jobs.

Over the years, the small handful of positions that were sent to me were not all of that interesting, but one did stand out. The New York Yankees were hiring a mobile developer to work on its internal apps. What the hell? I applied.

A few weeks later, I received the following:

We want to thank you for your interest in the above mentioned position. We had many fine applicants for the position, including you. However, we have decided not to fill this position. We welcome you to apply for any future positions we have available that match your skills and experience.


The Hiring Manager for the “Mobile Application Developer, Baseball Operations – New York Yankees (Bronx, NY)”
MLB Baseball Jobs

Moral of this story: A significant number of job postings disappear before being filled. I do not know if I would enjoyed living in a land which had real winter, but it was slightly disappointing not to be interviewed.

Apple – 2013

Klink was fun. Programming on the Mac was fun. Learning Python was fun. Dealing with the Python-Objective C bridge was not so fun, but you can’t have everything.

However, this was still a contract, and although they had talked about converting to permanent at the end of the contract, I had nothing close to a guarantee. So I had to keep my eye out for another position.

A couple of recruiters contacted me about IOS positions, but they required me to move, or the company looked awful, or any number of other things made those contacts not desirable.

After a few weeks, I got an email from a recruiter at Apple:

I am a recruiter with Apple and recently received a copy of your resume for review.  Would you have interest in speaking with an Engineering Mangers of ours, Dave Chan regarding an opportunity we have for an iOS Performance QA Stress Test Manager? Unfortunately I do not have a job description for you, but Dave can walk you through during your call the role and expectations.  What might work for you this week for a 30 min call?
I look forward to hearing from you.

There were problems with this, of course. It was in Cupertino. It was leading a team of QA and automation people.

I really did not feel like I had a choice but do to pursue this and see where it lead. So, I talked to the hiring manager. It was a non-technical question-and-answer session about my career to date. He suggested I talk to another person, the head of performance engineering. We talked, and had a lively discussion about what performance testing means.

So they decided to fly me out for a full round of interviews. Got an Apple looking email stating “We would like to confirm your interview for the position of IOS Performance QA Stress Test Engineer”. I guess somewhere along the way they decided not to pursue me as manager. Whatever.

I flew out on Sunday for a Monday interview, with my return flight being a red-eye on Monday night.

The interview seemed pretty ordinary, in that, at the time, they only did one technical interview. They had me solve some kind of problem in Python, and I did not do particularly well, considering I had 3 months of experience in Python. Each interview had 2 people, and while that seems normal to me now, it was jarring then.

It was weird being back on the Infinite Loop campus. Parking was almost non-existant. The cafe was very very crowded. One of the strange little things: All of the bathrooms now had the metal wedges bolted to the wall, about 1 meter off of the ground. They were about half a meter long, and they flared out to 20-30 cm on top. People put their laptops, iPads, and notebooks in them while they did their business, and retrieved them after they washed their hands. Wish more corporate bathrooms had them!

I interviewed at the beginning of December, and they kept putting off the decision and putting off the decision, and then they told me I had to wait until after the holidays. Finally, I got this:

Thank you for all of your patience through our process.   I was able to debrief with [Hiring Manager] and unfortunately the team have made the tough decision not to move forward.    While they feel you have some great experience, our role is not the right match for your current background.  I am sorry this role will not work out for you.   Are you currently speaking with any other teams here at Apple?   If not I am more than happy to share your resume to broader recruiting team for review.
I am sorry to not have better news for you and I do wish you all the best.

So. No Apple.