circa75 Home | About circa75 | Articles | Links | Contact Us

Posted by prickly at 04:01AM, Monday, December 08th, 2003

A Cynic's Commentary on Technical Interviews

My aphorisms and assorted notes on the state of the IT industry in 2004

The job description of a software architect is not "determines the trendiest technologies du jour and finds a way to pound them into our product, regardless of suitability."

If you think the role of a software architect *is* simply to follow trends and implement the technology they endorse, at the very least make sure the trends you're following are the current ones, rather than what was hot in, say, 2000.

Just because I don't agree with you does not mean that I am automatically wrong, or that I don't understand the situation -- people who seek to eliminate opposing viewpoints and opinion are often called "fascists." In short, it doesn't make me a moron. Your inability to process or acknowledge the validity of alternative viewpoints might make one of you, though.

If I don't understand what you're asking, and request that you articulate the question in more detail, repeating it verbatim doesn't count as articulating.

If you are not able to articulate your questions in a more specific way than "what happens when you click a link," don't be surprised if there's a limit to the specificity with which I can respond.

If you mumble all your questions, don't be surprised if I have difficulty understanding what the hell you're talking about.

You (the interviewer) will lose points for refusing to make eye contact when you walk in the door. Furthermore, this will not give me a good initial impression of your company.

There's more to programming and engineering than just chaining together bits of other people's intellectual property. If no one produced any new software built on new ideas, there would be no progress. If you don't believe that, try living for a day using only words that existed before 1980, and tell me about how you logged onto the Amazon website on your laptop and ordered a new WiFi base station, then downloaded some DRM-protected sound files from the iTunes Music Store after blogging for a while.

I am not a religious programmer. I don't think there is One Right Answer for most design questions.

If I give you an example to illustrate my point, please don't think that the example is my One Right Answer for everything.

Using already-invented wheels doesn't mean that your system is instantly intuitable by anyone out there.

Just because I challenge the assumption that one tool is perfect for every task, that doesn't mean I insist on rolling my own solution for every problem.

You (the interviewer) will lose points for interviewing me for a different position than that for which I had a phone screen with your manager.

If I want more detail about the problem an application is solving before I will issue my final say-so on the "best" way to implement it, well, I guess maybe that does make me a bad boy. But better a bad boy than a religious zealot.

Basically, I'm tired of feeling like a heathen at the inquisition for going into interviews and positing the hypothesis that, just maybe, J2EE isn't an appropriate technology for every website under the sun. Why is the notion that architecture involves finding *appropriate* solutions to problems so heretical these days? Why are the people companies often send to interview candidates intellectual midgets who are unable to conceive that there are multiple ways to solve problems, that other people may have good ideas, even when those oppose your own, or that talking about other ideas can be enlightening and help you understand (or challenge) your own assumptions? Why has programming degenerated into fanaticism with two opposing sects who bomb their opponents and see no possibility of middle ground? (You're either For Java, which means J2EE webapps with Struts, or you're For Microsoft, which means .net. God forbid you're not so excited about b2b web applications in the first place -- finding http and html inappropriate tools for the problems most b2b webapps are trying to solve -- and find php a little more exciting for promoting your philosophy of what the web is for in the first place.) Why does no one believe that reasonable people can disagree, and find discussing their disagreements fascinating? Why, in short, does no one believe in discussion? It's like going in as Nietszche and having altar-boy acolyte after altar-boy acolyte tell you you're a moron for asking why knowledge is sinful, when they ask you how best to punish women for Eve's misdeeds in the garden. They just look at your like you're insane when you mention you think Voltaire may have had one or two good points. Meanwhile, none of them can actually articulate to you why they believe in God. The Jesuits at least were excited to debate the finer points of theology with all comers.

Would I be more employable if I claimed that an MVC architecture using J2EE and Struts were ideal for all web applications, including blogs, photo sharing pages, directory listings, http front ends to ftp servers, etc.? Short answer: Yes. That, at least, makes me feel a little saner.
circa75 Home | About circa75 | Articles | Links | Contact Us

All content copyright © 2001-2009 the owners of http://www.circa75.com/