Code Monkey

A few years ago, while still working for a software company called Foundation 9, I attended the annual gaming nerd fest; CGDC (Computer Game Developer’s Conference). While cruising the expo floor for free swag and miniature chocolates I stopped by our company’s recruitment booth to see if there was anyone I knew (or more miniature chocolates). It should be noted that at this time I probably knew less than 5% of the company on a first name basis and probably less than .05% knew me on any basis whatsoever since I worked primarily from the backwoods secluded bunker known as my home office. Seeing no one there I could identify without a name tag I turned to leave when one of the cheerful booth reps happily offered me a list of open positions and asked if I wanted to drop off my resume and portfolio.   As I thumbed through the listing of available programming roles it dawned on me that if I were to apply at this company, for which I was already employed, my resume would likely hit the shredder faster than a teenage mutant ninja turtle (how’s that for a vague reference?).

This fear was later confirmed when, following my divorce, I found myself “light on employment”. Since my first job in the industry 20 years earlier, I had typically relied on past contacts and word of mouth to either put in a recommendation for me, at least, or get me a job outright, at best. There was none of this nonsense with cold-calls, job boards, and multiple interviews. It was a civilized affair where I meet the team, get a security badge and proceed to my work-space with company mug in hand. Not once did I have to endure security checks, phone screenings and long grueling interviews that are as charming as a TSA strip search,… from a man with large cold hands and a nervous tick.

With all of my acquired “experience” <cough, cough> this meant that I was applying for a senior engineering position, one usually reserved for that eager intern that had killed himself working 90 hours a week for his first summer before coming on-board and being subsequently promoted four times over the next 6 years for kicking ass, chewing bubble gum and eventually amassing the collective knowledge of every nuance in their product and every kludgy line if their code base. Fast forward to me, having successfully fast-talked my way through the phone screening and now scheduled for the first of three interviews with this very same Mr. Eager-beaver-intern-turned-team-lead who was (no exaggeration) still in diapers when I started my first job those 20 years previous. This is the man or boy-child that I must impress with my checkered programming past that includes either technologies that companies no longer care about or technologies that companies care very much about but which I haven’t actually worked with for a dozen or so years, which, to put it in perspective, was about the time the interviewer discovered his first pubic hair.

Now, if it were just the generational gap I was working against, I’d really have little room to complain. But once the pleasantries have been exchanged and we’ve reminisced about the first computers we programmed on (Vic 20 vs a frickin’ MacBook Pro) we get down to the real meat and potatoes of the modern programmers job interview; the white board. This is when the other senior programmers at a company get to ask you the most ridiculously complicated questions they can dig up for the sole purpose of watching you squirm and sweat out a response while getting high on dry erase fumes. Mind you, these aren’t the word problems from your days in grade school with trains bound for Chicago and St. Louis at fixed rates, these are either problems or optimizations that the programmers previous struggled over and proudly solved, or complex logic puzzles that graduate students write their thesis on (seriously, look up “100 prisoners and a light switch” – http://anttila.ca/michael/100prisoners/ ). Whatever happened to the good ol’ days when they’d ask you thoughtful questions like ““if you were a tree what type of tree would you be” or “describe your greatest weakness”. How about my great weakness for impaling people with dry erase makers when they ask me questions they already know the answer to.   I’ve since discovered that finding the solution is often secondary to what they’re really interested in which is seeing how you logically work through a given problem. As proof of this I recall once turning the table on my interviewers and asking them a logic question that I already knew the answer to. I was delighted by the fact that none of them was able to correctly answer the question, less delighted when none of them called me back for another interview.

The real take away from this process was a reevaluation about whether or not I’m even in the right line of work. I picked up programming after graduating from college, when I realized I had no viable options for paying down my ever swelling credit card debts. The career tracks available for my college majors and minors came bundled with the “struggling” prefix; struggling artist, struggling writer, struggling cartoonist, struggling interpreter. After being a struggling student for 5 years I didn’t have it in me to venture forth as a professional struggler.   Once I started on programming I was drawn to educational software, and how kids interacted with the product. It was all about game play and fun. Programming was a tool, just like art and animation, to provide an entertaining delivery platform for dry educational content. Since I didn’t have the formal computer science education starting from binary baby talk and working up through adult compilers a lot of the programming was learned along the way; with each new project came a new set of skills to master, new programming languages to learn. I had a good logical mind and enjoyed the problem solving nature of debugging and finding a way to make something work. Eventually the educational software industry started to dissolve with the advent of widely available cheap apps for mobile devices. I was left with less interesting tasks using different languages and technologies. Curriculum made way for database structures. Teaching mathematics made way for teaching corporate compliance. Before, when people asked me what I did, I was able to mention the products I worked on that their kids might have played. They would smile when I mentioned the big clients like Disney and Nickelodeon that everyone has heard of. Now when asked what I do, there are no smiles and rarely any follow up questions, just a polite nod and then a subtle redirect to another topic. “Have I shown you my hernia scar?”

Even great programmers with an in-depth education and an impressive breadth of experience can potentially age out of an industry with such a constantly evolving technology. Kids graduating from college have been given the distilled essence of the most current technology and its applications in the modern business world. A company can pick between hiring a whiz-kid like this as a free intern turned cheap, but seasoned, employee or filling the same role with an untested “senior engineer” for 2-3 times the salary. It’s a no-brainer from a business standpoint.

From a career perspective the alternative to this dismal fate is to try and remain viable at a company for as long as possible until you’re able to move up the career track into management or even a producer role. From there you should be able to leap frog to management in another company or rely on all of your connections to land you a new job. As I’ve mentioned though, working remotely is not conducive to either of these options. I have fewer contacts and references since working at home and many of my older contacts have themselves transitioned out of the industry for one reason or another. With all of that I get the sense that an expiration date has been stamped squarely on my behind, and without some fresh packaging this Code Monkey will go rancid in another year or so.

594 Total Saved 1 Saved Today
Share

Leave a Reply

Your email address will not be published. Required fields are marked *