Career Retrospective: Being Interviewed
I'm starting a series on what I learned during my four decades as a working programmer. First, I will describe my experience of being interviewed.
Interviews are part of being a programmer; every time you find a new job, you will go through interviews, which allow a prospective employer an opportunity to find out about you, and also, you hopefully discover something about them.
Strangely, I only had a single interview during the first third of my career, in September 1981. After that first job, I started two companies and ran them for nine years. The only interviews I had were with the press and one time on T.V. (Computer Chronicles). That one interview started a nearly 40-year career.
1980's Interview
In the summer of 1981, I abandoned my Master's in Chemistry when my faculty advisor did not get tenure and quit, leaving me unable to continue (no one wanted to take me on). I was looking for a job, and a friend mentioned they were looking for programmers down at the mill (actually, the local defense contractor where F-16s were built). I had only a year of Basic programming in high school in 1973 and played around on my Apple II+ at home. I had no commercial programming experience or college classes in programming, which today would not even get me a phone screen. Yet the hiring manager agreed to interview me (I had to wear a suit, as everyone did back then). The interview was just a discussion about programming, and it ended with a test of sorts—here is what a program should be doing, here is what it is doing wrong, how would you figure it out, and what do you think is wrong. I got it right, and he hired me on the spot.
When I started, everyone else who started in early October had a B.S. in Computer Science. I had no idea what programming for a living was like and had never seen a real commercial piece of code. Yet, by the third year, I was the only PC (IBM and Apple) programmer in the world's largest defense contractor and worked on the critical central portion of a major project involving the inspection of F-16 parts (connecting a PC/XT to an IBM Series/1) and earlier wrote code that would run on the airplane. Today, doing such things would be unlikely, given my background.
After starting and running my two little companies, where we built Trapeze (the parent of most alternative spreadsheets), assisting on Persuasion (the only real competitor Powerpoint ever had), and then building Deltagraph over five years, the Mac market dried up, and I left to work in the Bay Area for a year.
90's Interviews
But, first, I called into a job I saw in some financial newspaper at JP Morgan. This was the last paper job ad I ever looked at. During the interview with a recruiter, he mentioned a meager salary, to which I remarked I couldn't afford any place to live in Manhattan on that. He suggested I live at the YMCA, which pretty much ended that interview!
I had one phone interview and got a three-month contract position in the South Bay, then another for a two-week contract (I solved a major problem for them, and they took me out to lunch at the end). I finally got an interview at Apple, but after we started talking, it was apparent the recruiter had told the manager I was a Q.A. and told me the job was programming, which pissed us both off. A second interview at Apple, in person, got me a contract position at DTS supporting developers. I left when it appeared Apple was likely to go out of business: a year later, Steve returned, and I always felt so stupid for giving up.
Returning home, I did contract work before interviewing at a non-profit. It was a strange interview. Six people sat in a circle, with me in the center, and asked questions, which required me to spin around and face the questioner constantly. It felt like I was in a fish bowl. The work wasn't all that interesting, and probably the pay was minimal, so I didn't take it.
I then interviewed at a local consulting firm specializing in NeXT WebObjects in Objective-C. I knew someone who worked there, which made the interviews much easier (it always helps to have inside information!). I worked there for four and a half years until we became victims of the Dot-Com collapse. We went out of business at 4:30 on a Thursday afternoon, and finding a job after that was hard, as no one was hiring.
2000s Interviews
Finally, a former coworker who now worked at another local consulting firm (a division of an international consulting firm) got me an interview there, and they hired me. Sadly, the parent company eventually shut down the entire U.S. division, so I went back to interviewing again.
I went on an interview at a company where I had built the first Java application while at that first consulting firm. This successful project saved the company millions of dollars, but by now, it was no longer part of the business. I had four interviews, and each insisted on doing nothing but puzzles, including spending 45 minutes figuring out how to give a bunch of pirates gold. Yet, no one even mentioned the project I had accomplished a few years earlier. This was the heyday of puzzle-oriented interviewing. I did not get the job, as I am good at programming things, not pirate gold management.
During this time, I started the first version of this blog, and one of my local readers emailed me about applying for an architecture position at his employer. The interview turned out to be the most unique one I ever had. He and the other architect took turns telling me horror stories about working there to see if I would run screaming out of the interview! I got the job, and during the 18 months that followed, I discovered they had under-explained how terrible it was there.
Eventually, I found another local company that seemed a better option. I was wrong, but the interview was interesting. It was a post-startup with a successful niche that needed a new online store to expand. They had only one programmer, and he and the manager interviewed me, telling me stories about how wonderful the code was and bragging about how much of an expert he was in aspect-oriented programming. The company also had all Macs, so it seemed interesting, and I took the job.
Over five months, it turned into the single worst job ever.
I soon figured out the other programmer was doing contracts for others on the side during work hours. He had never submitted a single piece of code to the repository in ten months nor demonstrated any work, and somehow, he and the manager were scamming the company. I gave up and quit a few months later. Despite having demo apps and source code checked in, the other guy still showed nothing. After I left, it took another year before both were fired, and the company missed out on a huge opportunity.
While looking for another job, I interviewed at a major airline. In the interview were three people. The architect said architects designed the class hierarchy, the lead said leads designed the class methods, and the programmer said programmers implemented the methods. They were so proud of this madness and discussed a recent project that took six months (but it was trivial given my experiences). I wanted to run out of the room!
I found another opportunity and interviewed with a healthcare claims processing company for an architect position—the company had been formed by a merger of two in two different states. The interview was over video and was probably the funniest interview ever, with barely any serious questions. I couldn't tell much, but the pay was decent, so I took the job—a big mistake. There was a civil war between the two halves of the company, and I worked for the loser and got laid off.
After that, I was disgusted with the whole decade of the 2000s; every job turned out terrible, and I needed a break. I had been playing a World War Two-themed MMO, and the company was local. Since I had been doing a little work there for their Mac programmer, I could start immediately when he said he was leaving. They had little money (I was going to make 1/3 of my previous salary), but the work was fun, and for the next couple of years, I enjoyed fixing bugs and having the player base thank me profusely. This was some of the most challenging programming I ever had to do, part of a tiny team working on a shoestring.
2010s Interviews
Eventually, however, I couldn't afford to work for so little, so I found a local company (a well-known online travel agency, a brand that still exists but not as a company) looking for an iOS programmer. I had written a few iOS apps in the App Store, which made almost no money, but I enjoyed the work, and it was in Objective-C, which I knew. The interview was with the manager and the existing iOS programmer—the manager had initially written the app, which was one of the first travel apps when the App Store debuted. During the interview, I explained how ARC (Apple's Automated Reference Counting, just introduced) worked, which neither knew anything about). I also asked if the 9000 1-star reviews the app had in the App Store were concerning, so I knew they needed help. I was hired, and it became one of the best jobs I ever had until our parent company sold the brand to our biggest competitor (where it still resides) a couple of years later. During the last year, 100% of the employees were laid off, though I was kept on until the end to shut everything down. My manager got a new job at a huge, well-known company and offered me a job before he started, although it took nearly 18 months before the budgets worked out.
Meanwhile, I need an intermediate job.
I interviewed at a company funded by Google that was building a competitor to PayPal. Arriving at their office, where there were many programmers, I was told I would interview with the executive team (CEO, CFO, and CIO) at a local restaurant instead. During the expensive lunch, I asked about their technology, and they said they had hired some consulting firm to do all the work and knew nothing about what it did. Otherwise, the "interview" was just a free lunch. I decided the company was not serious.
A second set of three interviews at what appeared to be a tech company was even stranger. The first was with a programmer, who explained what they did; the second was with a manager who said similar things. The third was with the CEO, who, as we started, excused himself to talk with some guy in an expensive suit while I sat by myself for 15 minutes. When he returned, he spoke extensively about what they were doing, completely different from what the others had said. As he talked, I realized he was running a Ponzi scheme! Three times driving a long way for nothing.
I interviewed with a local mobile consulting company and had a great rapport with the interviewer (mobile lead). He then quit, and his replacement wanted to interview me, too. Again, the interview was excellent, as was meeting the company manager. They had to wait to make an offer until the CFO returned from vacation. Before that happened, a prior employer returned, saying they now knew Mobile, and they hired him instead.
Weeks wasted with all these.
My following interview was at a large construction company, where the I.T. organization wanted to turn an internal app into a technology product. The interview was with the CIO, who immediately recognized me, as I had done a great project for him when I worked for the first consulting company more than a decade earlier. He hired me (contractor) on the spot. I worked on that project, finishing everything long before the rest of the team was done.
Finally, I heard from my old manager that the job had been approved.
They flew me in for four interviews, the easiest interviews ever. Every person (not mobile as I was to be the first for that team) was begging me to take the job, as my former manager (director here) had told everyone for a year: "If only Andrew was here, everything would work better with mobile." They just wanted him to stop! I had no trouble accepting the job. It was a fun five-and-a-half years before I retired despite much overtime, stress, and unbelievable demands on occasion.
The best thing today is no more interviews!
If you read this far, you might wonder why I never mentioned writing code in an interview. The answer is that no one ever asked me to (that I can recall today). Besides the puzzle interviews, most interviews were conversational. Generally, I did well in such interviews, especially when people dug into my projects. Explaining the details of anything on my resume was always important, which I believe made a good impression. Unlike today, when interviews often require extensive preparation in algorithms or Leetcode, perhaps preceded by take-home tests and engineered to weed out anyone not deemed absolutely perfect, during my time, interviews were far simpler and more focused on communication skills. Even that first interview would never work today, yet, paradoxically, it started me on a four-decade career. You aren't likely to hire the "perfect" person anyway; you want someone who can do the required work, improve the team, and deliver repeatedly.
What I think of today's interview will be discussed in the next installment when I discuss how I interviewed people. Oddly enough, most of those interviews were in my last decade of working. I never asked anyone to write code in an interview, either!