For the last year or so I began to realize that I was more interested in my extra circular iOS software engineering “hobby” work than my work as a software engineer. I had become even more interested in my hobby of pickpocketing senators to give to the rich, but alas that Ayn Randian pursuit translated poorly into a career.
On some days I might get up early to read through a section of the cocoa programming guide, for example, and then stay up late to finish some unit tests on an app I was developing. On some occasions I would even come home for lunch to work on my iOS project. I didn’t feel the same intensity with my work projects which made the work week less personally rewarding. I suppose one might say I was suffering from the-grass-is-always-greener-on-the-other-side-of-the-fence syndrome, but it looked so green in the neighboring field, and I couldn’t look away.
I should note that the work at my previous employer was not “boring”, “dull”, or anything not leading edge. My previous employer makes some pretty neat stuff and I’ve had the opportunity to work on a variety of diverse projects. The engineers working there are absolutely top notch, and I don’t think anyone could argue otherwise. None of them may be as charming, handsome, and as good at the drums in Rock Band as I am, but they are an outstanding group if you value “engineeryiness”. The decision to move my career in a new direction was coupled to how my interests had shifted independent of my employer at the time.
Despite this white hot interest in the world of iOS, I would occasionally take a week away from writing iOS code to stay focused on my day job. It wouldn’t have been fair to be obsessive about my hobby projects at the expense of employer. After all, I wasn’t being paid to develop iOS apps and it therefore I couldn’t let let that pursuit sap my mental energy (i.e. cut into my sleep).
It was during one of these self-imposed breaks that I came to the realizations that I wasn’t doing what I wanted, at least not specifically. What I wanted even more was to design and develop mobile software. So, I started looking around for employment developing iOS apps.
With only one app in the store and another most of the way done, I wrote to a game company in Las Vegas whose game I was fond of expressing my interest in applying for a job. I noticed a few days later that they had visited my personal website, but they never contacted me. I’m not sure if I would have moved to Las Vegas to work at a game company (i.e. a company that will likely not be around in 5 years), but I might have at least considered it for the right price. It would have fun to learn a little more about the company.
After dipping my toe into the iOS developer job market I forgot about it and continued working on my iPad app in my spare time for the next six months or so. I also decided that I would only apply to another job if it was perfect; I was fortunate enough to have that luxury.
Being completely undisciplined, I didn’t just apply to perfect jobs; I applied at various large companies. Most of these companies have resumes flooding in, and I suspected mine was like a grain of sand on the beach; I didn’t get many responses. I was ok with the lack of response, as I wasn’t very enthusiastic about any of those positions, anyways.
After a brief run of “shotgun” style online job hunts, my plan was to start looking for work in mobile development after I had finished my iPad app. I figured I would fair better with a second product in the app store.
Because this plan involved patience (of which I have none) my resistance only lasted about a month before I gave in and submitted another resume and cover letter. My iPad app was not done.
I felt that I HAD to stray from the plan when I found, what looked to be, the perfect position after searching for “iOS” into the Seattle craigslist jobs section late one night. I almost didn’t apply since I wanted to have another app in the app store, but the feeling that I couldn’t possibly find a more ideal position in a better location nagged at me. Once again I gave in and prematurely applied to a job.
The night I read the job listing I quickly created a video demonstrating my iPad app in it’s unfinished state (which was pretty close to complete) with text beside the video detailing how I went about designing the app (i.e. how I communicated between classes, or which audio framework I used).
The good part about applying for a job that you really want is that the cover letter is not difficult to write. You just write an honest cover letter articulating your passion. This contrasted my first job search out of college where I didn’t really know what I was interested in.
However, if I had trouble finding a job, I’m sure I would have eventually applied to some larger companies. Obviously, I didn’t want to be homeless out of college. On the other hand, the idea of being a traveler with no possessions or home sounds romantic. I imagine it becomes less-than-romantic the first time you have a bought of explosive diarrhea.
That same night that I submitted my resume to the Seattle company, I also saw a tweet from someone I followed on twitter requesting applications for an iOS developer for a game company in the San Francisco bay area. Potentially moving to the bay area seemed exciting (though prohibitively expensive), so I used a similar cover letter and applied there as well. I also included a link to the video I had just completed for the first company.
About a week after I had submitted the two resumes and cover letters, I had two phone interviews with both of the companies I had applied to. Both went well, and were fairly casual. I don’t recall very many questions that were asked in either interview, but it seemed that these interviews were to get a sense of my personality more than to test my problem solving abilities. Both were a relatively enjoyable experience, and both invited me to visit onsite for a face-to-face interview.
I do recall one question from the game development company which was “why do you like Objective-C?”. This threw me off a bit. For someone who spends most of his time using C, this is like asking “what do you like about the not feeling pain?”.
It seemed that having something tangible to show to a potential employer scored two interviews out of two attempts. 100% kill rate! The key to getting an interview was demonstrating a non-sucky project. I used a link to youtube to distribute my video and to take note of how many views it had seen. Everyone I talked to in the phone interviews had seen the video, and it seemed apparent that it was something that differentiated me from scores of other applicants. Apparently it didn’t suck!
Before the face-to-face interviews I studied the Apple documentation on Objective-C, the Objective-C runtime, Cocoa, and the graphic and animation systems in iOS. Even if I had no interviews, I felt that this was an extremely useful endeavor; I learned so much that I probably would have learned over a long span of time (via problem solving). If you are truly interested in iOS programming (and/or OS X programming) do yourself a favor and start with the guide to Objective-C, then the runtime documentation, then hit the Cocoa programming guide and/or the graphics programming guide. They were very informative documents, and it improved my understanding quite a bit.
Of course none of what I studied was useful for the interviewing process; hiring managers seemed to want to know about one’s general problem solving skills. I thought that might be the case before I started my studying regiment, but I wanted to be prepared as possible. My problem solving skills were likely not to improve in a week, but my understanding of iOS programming could. I also enjoyed studying that stuff, so it is not like it was a huge chore; besides it improved the code behind the iPad app I was working on at the time. I could bounce a quarter off my iPad App’s arse; it’s that solid.
The first interview I had was at a small game company in the San Francisco bay area. The interview started with a technical question about parsing through a set of xml tags using recursion. The task doesn’t sound very demanding as I sit here writing this but somehow I managed to flub it. Regardless, the interviewer didn’t have much else to gauge my technical prowess (this was, apparently, my one and only technical question), so I came across poorly.
After that screw up, the rest of the interview went well, but not well enough to make up for the beginning. I primarily got to know about the company and had an enjoyable time talking with new people. I even got to meet someone from twitter that I followed.
The next company I interviewed with had me sign an NDA when I walked in the door, so I can’t say much. I will say that this interview went 100% better.
It is my experience that if I take a breath, and relax before I start breaking down the problem I’ll figure it out. Not having just stepped out of the airport after traveling for 9 hours (like I had for the first interview) helped as well. I suppose the first interview served as a practice run which let me feel more “warmed up”. This is not to say that I enjoy the process…I’m always just trying to survive and not let my nerves get out of control.
With the second company I felt like I meshed well with the people I talked to. I also perceived this company as financially solid (especially when contrasted to the game company). As an added bonus this company was located in Western Washington, which is the area I grew up in. As much as I had grown to like Northern Idaho (a more importantly the friends my wife and I had made in the area), I missed the Seattle area.
It took forever to get an offer letter as the executives were out at a conference the week after my last phone interview. The following week the Seattle area experienced the worst winter weather in about 15 years, which meant no one was in the office. While waiting for an offer letter I had another company schedule an over the phone interview with me about another iOS developer position. I had probably applied months ago and forgot about it. I ended up canceling the interview as I had my heart set on the job I was patiently waiting for. I think that was the first time I had ever turned down a job interview; it was a weird feeling…definitely an ego boost, though. It’s always nice to be in demand.
In the end, I accepted the offer from the Seattle area company. About four months later I heard on twitter that the San Francisco game company had layoffs. Things definitely worked out for the best.
As a bonus, here are my interviewing do’ s and don’ts:
Be well rested for your interview(s).
Have something to show (that isn’t rudimentary, or sucky) if you want to be noticed. A youtube video worked for me.
Use your interview time to interview them; find out about their programming practices, their revenue sources, etc. This also takes the pressure off of you, if you happen to be nervous.
Relax and approach the technical questions systematically (easier to say than do, of course).
List every programming language you’ve ever touched on your resume.
Use hand puppets to act as your surrogate during the interview.
Lean in for a kiss when shaking hands.