Hacker News new | ask | show | jobs
by MichaelCrawford 4198 days ago
I've built quite a lot with what I've learned, however it's not always possible to demonstrate that. Consider that I am not permitted to tell anyone at all what my most-recent project was, other than that it had something to do with OpenGL.

This because the product was an in-house tool for a client of my client. The very existence of that tool is a closely guarded trade secret.

I read Robert Ward's excellent "Debugging C" back in the day. In part as a result of that book, I am better at debugging just about anything than just about anybody. But what can I show to a potential employer or client? "Here's some code that doesn't have bugs in it." Similarly with Scott Meyers' "Effective C++" series.

Three times I have applied to a certain company to write Mac OS X I/O Kit Kernel Extensions - what Apple calls device drivers. All three times, their HR refused to forward my resume to the hiring manager, unless I removed all the experience that wasn't directly related to Mac OS X.

All three times I refused; I first learned to write device drivers by hand-coding LSI-11 assembly into octal, then entering the code into the LSI-11 kernel with an octal keypad and a profoundly primitive debugger called ODT, for "Octal Debugging Technique".

That was in an Intro to Computer Architecture class at UC Davis that I took over the summer of 1981, while I was still in high school.

Whoever it is who keeps telling me to remove my non-OS X experience, clearly does not understand how computers work. Each time I have refused; I don't want to work for idiots.

2 comments

As a side note - I wish more interviewers would ask debugging related questions. I had a couple coworkers at Google who would try them ("Here's some code with some bugs in it. Identify them, or talk me through how you would identify them"), but they were definitely in the minority. Debugging is its own skill, very different from writing green-field code, and yet a large portion of the time we spend as professional software developers is spent debugging.
I understand that ten times as much time and money go into maintenance work, than in writing the original product.

Now some of that is adding features but much of it is fixing bugs.

I work very very hard to promote myself as a debugging specialist, but it is quite uncommon for potential employers to even care.

The most common requirement for "Debug" - not "Debugging" just "Debug" - is for really low-level embedded work. Not even kernel nor device driver work, stuff like board bring-up.

However I have gotten a few jobs specifically as a debugger. My very first retail coding job got me the title of "Product Development Manager", but in reality I was hired to debug a product that my predecessor made a smoking crater of. I've also been a "Debug Meister" for Apple, and a "Man in Black" for Sony Ericsson Mobile Communications, where I worked on what is now the Sony Mobile XPeria Play.

Cisco had a written test in which I was asked to debug a C++ program that had thirty lines or so of source.

Note that I did this with paper and a ballpoint pen - no computer.

That same test also had me reverse-engineer a network protocol packet, given a hex dump.

I have only had one other written test that I can recall. With that one I was given the assembly instruction architecture for a hypothetical CPU, then the source to a program, with the problem being for me to write down what the output of the program was. It was a huge PITA, and took me several hours, due to multiply-nested loops, recursion and the like.

I didn't get an offer from Cisco, but I did at that other company. The owner never tells anyone how they did on the written test though, other than that you get a job offer or you don't.

Unfortunately, part of the game is accomodating HR and non-technical managers in most companies that have gone beyond the 30 person startup stage, unless you have widely recognized expertise in some relatively rare skill.

There's three hurdles to being hired (and HN has hashed this over before), so the technical chops are there, it sounds like, but then they ask

- is he/she willing to sacrifice for our success?

- "fit/culture", is s/he somebody we want to travel with/hang out, spend lots of time with, most of it involuntary

I don't have a problem with non-technical HR and managerial people, nor sales, marketing, production staff and so on.

I remain dumbfounded that their HR didn't understand that work I did on other platforms, contributes a great deal to my ability to code for Mac OS X.

Consider that OS X drivers are all written in C++. I've done quite a lot of C++ work on Windows and embedded platforms, and a little on Linux. Yet their HR wanted me to delete all that from my resume.

I didn't just turn down the jobs. Each time I explained to the recruiters - who generally are non-technical too - that all that other experience contributes to my ability to write OS X drivers. Yet the recruiters were unwilling to pass on the message to the HR.

I've only known this to happen at just one company.

Actually I am quite good at explaining difficult concepts to the uninitiated, as a direct result of my experiences with many of my teachers.

I have a BA in Physics, with some graduate school. I had some courses that I regarded as quite easy, some were quite difficult. Quite often this was not the result of the material I studied, but the ability of the instructor to explain it.

Consider that physics is commonly taught by working out mathematical derivations. That leads people who either don't know math, or don't like it, to regard physics as completely unapproachable.

But physics can be taught in a purely conceptual way, with no math at all. For example, I once explained elementary particle physics to a Burgerville cashier by comparing it to the game of pool. "Suppose you cover the break" - the initial positions of the balls, in a triangle - "with a sheet of plywood. Your job now is to shoot the cue ball underneath the wood, then determine the shape of the break from the tracks of the balls after they scatter out from underneath the sheet of wood."

She was quite pleased as she grasped it instantly.

I wasn't clear, that was supposed to be a purely mechanical calculation of amortizing the time costs of preparing for screens and onsites over how much you want the gig, which for me always includes tailoring a resume for each company and other stuff which is basically a waste of time.

You reminded me of the 4th, newest hurdle to getting hired at a lot of places, a decent grounding in linear algebra, prob/statistics, calculus, with the odd category theory curveball question.

I was taught physics the other way, BTW, my Dad decided around 8th grade was the right time to start developing intuitions for ODE's and linear algebra, with illustrations from real life. Made absolutely no sense to me.

All I Ever Really Needed To Know About Designing Nuclear Weapons, I Learned In Linear Algebra When I Was Seventeen.

Seriously, a whole lot of Physics really does ultimately distill down to linear algebra.

Just yesterday I learned through an HN link that Statistics is among the top-ten most valued skills among employers. That's implied by listing my physics degree on my resume, but those who don't have a clue about physics won't know that. I'll make it more clear in my next revision.