owen

Perusing Digg, I came across a post that outlines a set of twenty questions that interviewers should ask their candidates for web development positions. I thought it would be fun to see how I would answer these questions. Here we go…

What industry sites and blogs do you read regularly?

None religiously. Great ideas don’t always come from the most respected names in the business. You’ll find that every now and then, something new and interesting will come from someone previously unknown. That’s why you have to have your fingers on the pulse of the web, and know how to sip from the firehose of new web tech.

That said, I do monitor QuirksBlog and have occasion to peruse ALA periodically. Also, I have in my aggregator a bunch of folks who keep tabs on these things pretty well. Combined with some good PubSub subscriptions and the Digg/del.icio.us/Slashdot filtering I do, I get a good feel for what’s going on.

Do you prefer to work alone or on a team?

It depends on what the project is. It only makes sense that if it’s a very small project, I would expect not to have to coordinate with five other developers. Also, I prefer to focus on coding over design if possible, so a team of developer (me) and designer (someone else) suits me great.

How comfortable are you with writing HTML entirely by hand?

Very. I don’t usually use WYSIWYG. The only occasions when I do use Dreamweaver are when I want to draw something to see what it looks like, and then I’ll usually either take that design and hand-modify it or build it all over again from scratch in code.

I have actually written my own desktop HTML IDE for Windows (it’s called Less Than Slash) with the intention of deploying it for use in web development training. If has built-in reference features, and will autocomplete code by parsing the DTD you specify in the file. That is to say, the program doesn’t know anything about HTML until after it parses the HTML DTD you specified. This should give you some idea of my skill level with HTML.

What is the w3c?

An annoying and partially irrelevant standards organization. Yes, yes, standards are important so that developers can code once for every browser. And we web developers know how practical that is.

I appreciate the effort that the W3C puts into their work, but I am also a practical developer. In my opinion, a site needs to work more than it needs to comply with W3C recommendations. Sure, there will be cases where following their guidelines is important, but for the most part, they are guidelines, not immutable laws.

Can you write table-less XHTML? Do you validate your code?

Of course. Are there still people that use tables for layouts? I guess so- Within the last couple years I got lazy and decided to buy a design from one of those template sites. I was really looking through their catalog to generate some ideas of my own, and happened upon a layout that was perfect. Perfect except that it was a table-based design. I ended up rewriting the whole of their HTML, and re-used their graphics.

Validation is pretty simple these days with the web developer toolbar. I try to keep my designs valid (and anything that I deploy for someone else usually is when I release it), but I admittedly don’t go over every page of my own with a fine-toothed comb.

What are a few of your favorite development tools and why?

PSPad is my favorite development tool, without question. I’ve looked at a ton of editors over the years. I used to be an Interdev devotee because the autocomplete was so handy. I used to use Dreamweaver all the time for the same reasons. But these days, I prefer the simplicity of a lightweight editor that has syntax highlighting, some macro features, and PHP code completion/insight. I’ve got a decent enough library of personal prewritten code that I don’t need an IDE to generate everything for me.

I think that a good FTP program is sorely overlooked in this arena. PSPad has FTP capabilities, but I prefer to use WebDrive, which supports WebDav and SFTP by creating new drive letters for each server connection. This makes it possible to use any sort of program on the remote files just as you would for local files.

Also, I’ve become a Subversion devotee, especially with TortoiseSVN. My only problem with Subversion at the moment is finding a reliable host for my own repositories.

Describe/demonstrate your level of competence in a *nix shell environment

I"m not a shell wizard by any stretch of the imagination. I know enough commands to get by, and when to go get help when I need it. I’ve used rsync to move sites between servers on more than one occasion. I can set file permissions, which is pretty routine if you’ve done any shell work in the past.

Oddly, I don’t have any reason to run a desktop Linux anywhere (except for the explicit purpose of running a desktop Linux), so virtually all of my experience with Linux is via SSH and the shell.

What skills and technologies are you the most interested in improving upon or learning?

.net, Ruby, and Python seem to be where the net is growing. I think that experience in .net is more marketable than the other two, if only because shops that are dedicated to Microsoft platforms aren’t going to use anything else. Ruby and Python seem like interesting playthings, even if they are used for more serious applications. I would like to learn more about the development model in Rails. I’ve been encountering more people lately requesting Python experience, and since a couple of people I know are devoted to it, I think I would like to learn more.

Show me your portfolio!

Gosh. Well, you’re here. There’s also RedAlt, the development site. Wish List Live is my oft-neglected-til-Christmas gift registry. Indoor Astronomy is my astronomy book site. Almost Friday is perhaps not as interesting for the web design as for the audio technologies that are present. I’ve also done work on Greater Houston Pool Management.

Note that four of those sites run MicroWiki, the wiki software that I wrote.

There are some other client sites, too, but those are probably best listed in my Quirky portfolio. Note that one of the benefits I offer contract clients is anonymity, so many of the sites I work on aren’t going to be listed.

What sized websites have you worked on in the past?

Anything from 0 unique visitors per day to tens of thousands. Some folks have hired me to optimize their sites to accomodate their increasing hits. Usually this doesn’t require redesigning their site, just optimizing the code that they have and recommending how they can make their server perform better. Smaller sites usually hire me to produce plugins or extra features that their site software doesn’t come with built-in.

Show me your code!

There is a lot of my code available for download, particularly in the WordPress plugin arena. Keep in mind that most of that stuff was never written with the intention of anyone else ever reviewing the code. I suppose that you should always try to write code that someone else will understand, and so I at least try to keep the code formatting clean and uniform enough that you could read through it. Of course, if I know in advance that someone else will need to understand the code, it will be both clear and commented. Check out the dbDelta function in WordPress to see what I mean.

What are a few sites you admire and why?

Only a couple come to mind. I’ve always liked Shaun Inman’s site. He’s organized his information in a way that seems clean and unobtrusive to me.

powazek.com has also interested me for that reason - a clear organization of where things go. I think I’m tired of the columned approach to web design.

There are a ton of other sites that I’ve found aesthetically pleasing, but I don’t know if that necessarily equates to good web design.

I just pulled up the website you built and the browser is displaying a blank page. Walk me through the steps you’d take to troubleshoot the problem.

First step, assure you that I’m taking care of the problem. Then I’ll try looking at the site myself. Check another browser. Check DNS. Check the server’s access and error logs for signs that the request is being made correctly. Check for the existance of the requested page and the appropriate permissions to serve it. Hopefully by this point the problem is apparent.

Sending a log to the client of what was done to correct the problem is important, too, even if they don’t understand it. A record will exist of what went wrong in case that happens again in the future.

What’s your favorite development language and why? What other features (if any) do you wish you could add to this language?

I favor PHP currently. I like it for web development because it’s very quick to get things online. With the toolkits that I use with PHP, I can get database-driven sites online very quickly. It seems like PHP has built-in functions to do things that are specifically related to web development that a generic script language wouldn’t include. For example, there are PHP functions to do IP math. Look for those in VBScript.

PHP does bug me with its object support. Stronger typing might be nice. Operator overloads would be awesome. And this whole PHP version 4 versus 5 issue - Can’t everyone just upgrade already? Sheesh.

Do you find any particular languages or technologies intimidating?

Learning whole new languages that I have no current application for seems intimidating. I mentioned before that Ruby and Python might be neat to learn. But I find their whole new paradigm intimidating. “Intimidating” is a big word. It’s really more like, “Given my limited resources available to apply to learning new things, that’s a lot to bite off.”

Remoting on Microsoft systems also bugs the crap out of me. SOAP. I appreciate that they’re trying to simplify the coding involved in making calls to web services, but I like to have my hands in the transaction at the HTTP level. Looking at all of that nearly-incomprehensible XML gives me an oogy feeling.

Acronym time

I know a lot of acronyms - do you really care? I interviewed at a company once where there was a cycle of 4 interviewers. The technical interviewer, who was apparently some hired-gun development bigshot, did nothing but ask me about obscure acronyms in quick succession. In the middle of his third or fourth acronym, I said, “You know, if you told me what the acronym meant, then I would know. Afterward, if you asked me to tell you what they are, I could give you correct answers for everything. Here’s something else - consider that I might not know the acronym you’re using, or I might know it and pronounce it differently, but I might have extensive knowledge about the thing you’re asking.”

He seemed simultaneously impressed that I had challenged his interview style and disgusted that he had been outwitted by an interviewee. I didn’t take that job - they required ties.

What web browser do you use?

I use Firefox to browse and for initial development, and usually test on Firefox, IE, Opera, and Safari. I recently bought an iBook explicitly so I didn’t have to run an emulator to test on Safari. I also have a personal account at Browsercam for when I want to be very thorough.

I have the web development extension installed in Firefox, and also find Firebug and IETab very useful.

What are a few personal web projects you’ve got going on?

None of my projects are ready for your eyes. I have a few separate projects on the burner, but there aren’t any that I’m comfortable talking about at their current level of completion.