Carl the Zealot

January 29, 2009

Why this is a bad time for a software design job hunt, and how to overcome it

Filed under: News — Tags: , , — Carl Myers @ 4:11 am

So recently people have been saying “this is such a bad time to be looking for a job” all the time – and I agree with them. In the software design biz, however, I think it is not for the reason most people assume.

As someone who was recently responsible for interviewing people and participating in making hiring decisions, I can say that in my experience, the problem is not only a lack of jobs. Sure, many companies are scaling back hiring a little, and scrutinizing new hires more closely to ensure they are of the highest quality, but that is just a effect, not a cause.

The cause of this, that job seekers should realize, is many of the job seekers out there are seeking a job because they were “the first to go”. Nobody is going to lay off a highly valuable employee right now (I would hope!). Rather, people who were on shaky ground to begin with are the people now looking for work, and there is a real deluge of them to sort through.

Thus, to get hired in this environment, when the hiring managers and interviewers know most of the candidates out there are in this position, you have to prove you aren’t one of the “bad apples”. How does one do that? There are a couple ways. Mostly, it is a lack of warning signs, but there are also lots of affirmative traits as well.

First off, your resume should have certain attributes. Be specific, don’t just throw out an alphabet buzz-word soup, but put everything down that is relevant. It isn’t necessary to list HTML or “Microsoft Excel” or “Internet Explorer”, or for that matter, even something like “AJAX” unless you are a super rocket scientist at it or something. What programmer can’t figure out how to use Microsoft Excel? Everything that is listed on your resume, you should be able to answer the question “Why is X relevant?” with an interesting, well-thought-out answer that includes a specific example of your experience with that item.

Another important thing about your resume is it should include that experience. You don’t want your resume too long, but as much as will fit, you want a specific project or example of each of the types of experience you have. If you put down C++, you had better list a project where you used C++ and are able to talk about what it involved, and how you were instrumental in its success.

A resume lacking in experience, or dripping with buzz words and alphabet soup, sends up a huge warning flag. Beyond the resume, however, there are lots of other warning flags recruiters look for. For example, any programming job is going to expect you to answer some questions, write some code, or somehow demonstrate your skill set. Do not shrink away from this. Always think carefully about your answer, but try to think out loud as well so they can see your thought process. If you don’t know, admit you don’t know, then try to “get partial credit” by working through it anyways, or taking a different approach. Don’t be a defeatist, don’t give up, and don’t demonstrate you are not confident in your abilities. If you really are so under-confident that you can’t at least act confident, you aren’t right for the role anyways.

Also, be thorough. Ask for more details when appropriate. The difference between a “strong coder” and a “rock star” is largely in the details. Instead of making certain assumptions, question them – or better yet, say “I am making this assumption, but if I didn’t, it would have the following effect on the answer”. Discuss alternatives and why you make the decisions you make. Remember, coding isn’t about knowing everything, it’s about knowing what you need to learn and apply the tools necessary to get the job done, quickly.

Finally, if they ask, and possibly even if they don’t ask, don’t be afraid to talk about why you left your other job (that is, assuming you aren’t one of the “bad apples” I previously mentioned). Talk about the success you had at that job, and why you decided to move on. If the only thing you can say is “I hated it there” or “they weren’t happy with my performance”, that’s going to send up a big red flag, and I often asked that question for that very reason. Examples of really excellent answers I have gotten include “I wanted to have a larger impact”, “I wanted a change of pace but there was nowhere else to go at that company”, “I didn’t like the direction the company was going in”, or even “I didn’t feel my growth was recognized” (which is a nice way to say “I didn’t feel my compensation was fair given my experience”).

August 17, 2008

Trouble installing GNU/Linux with an ASUS P5Q Motherboard (Marvell 88SE6121 IDE controller)

Filed under: Hardware, Software, Troubleshooting — Tags: , , , — Carl Myers @ 1:39 am

There comes a time in every computer engineer’s life when they must analyze their storage solutions and admit that they are, in fact, no longer sufficient for the stuff they wish to store. In fact, this time usually comes about every 18 months for me.

I decided that this would simply not do. My last file server, now over 18 months old, had 600GB of raw storage in a 400GB three-drive linux LVM2 software RAID 5 array. I had added an extra 200GB of “non redundant scratch storage”, but it still wasn’t cutting it. I was also concerned that I had heard from several people that RAID 5 redundancy is not as good as one might like to think. Because the array can only stand a single drive failure without data loss, often times a single drive fails, a replacement is obtained, but then the stress of rebuilding the replaced drive causes one of the others to fail, dooming the entire array.

On a whim, I decided to see what it would take to slap together a fileserver with a little bit better longevity. I decided to get a rackable case, as my “tower of towers” is getting pretty ugly even though it is in a dedicated “machine room”. Some day I’ll actually buy a rack to put it in (but not today). I decided that for performance and reliability, I wanted to build an 8-disk RAID6 array. I figured I’d spec it out with 8 cheap drives, and cheaper hardware, and another with 8 huge drives and slightly nicer hardware. I ended up choosing the bigger and better one (naturally).

In the end, my file server would run me just under $2300. It included:

  • 1xChassis Supermicro (CSE-833T-R760) 3U chassis with 8 hot-swap SATA bays and 760W Triple-Redundant power supply
  • 8×1TB Seagate ST31000340AS Drives (32MB cache 7200RPM SATAII 3Gbps)
  • 2×2GB Corsair DDR2 1066Mhz (PC8500) ram
  • 1x Intel Core 2 Duo E7200 Wolfdale 2.53GHz
  • 1x ASUS P5Q ATX Motherboard LGA 775 (has 8 on-board SATA II ports)

With a RAID6 array, I would have 6TB of usable space – that’s a lot of por…erm…”Anime”. Once the parts had all arrived, I excitedly started slapping it together. In the end, I forgot a video card (whoops, thought I had one, but it didn’t work anymore), so that was another $30. I tried a serial console install first but that didn’t go to well. Next I finally got the bios to boot the Debian netinst CD – SUCCESS! Or…maybe not. During the install, I got this error:
No common CD-ROM drive was detected. I did some research, but I couldn’t figure out a solution. It appeared to be a problem with the debian installer.

I finally came to the real answer. This motherboard uses a Marvell 88SE6121 controller (I believe it is a PATA controller only). The bios was able to read the CD to boot, but then the debian installer couldn’t find it, because the module we need (pata_marvell) isn’t available in the 2.6.18 kernel on the Debian netinst CD (or wasn’t built into it by default). I had to build a custom install CD with an updated kernel in order to get this baby up and running! =(

Details on how exactly I got the CD built will be coming up soon. Also, maybe I’ll post the ISO. For now, I gotta get some shuteye. Chow!

Powered by WordPress