Blog Stats
  • Posts - 102
  • Articles - 32
  • Comments - 206
  • Trackbacks - 16


Job Listing

Chris Vance asks: "Can you remind viewers what technologies you're looking to hire for? While I'm happily employed, I live in the area and know lots of software engineers (all employed, though, to my knowledge)."

Certainly, although that's probably not quite the question you should be asking. In the broader sense, I'm not looking for any specific technologies. I'm looking for someone who is very technical, can handle him/herself in front of a customer, learns quickly, and is outstanding at what they do. That really sums it up.

When I'm looking through resumes, I look at a lot of different things, including the number of languages a candidate knows and which ones they are. I would give more credibility to the technical excellence of someone who had C, F#, JADE, and KRYPTON than I would to someone who had a lot of Java and C#. Why?

Well, the former candidate's knowledge consists of some fairly obscure programming languages with the exception of C. It shows that the candidate has seen multiple languages, has probably learned at least a few of them on their own, and can readily learn new ones.

Let's say the latter candidate has a combined 8-10 years of Java and C#. I have no intentions of knocking either of those languages as being inappropriate for any given use. The problem is that they are so similar in many of their fundamental concepts, that it's difficult to know whether the candidate can use that knowledge as an effective launch point for learning a lot of other things quickly to the point of being efficient with them.

On my resume, I trimmed the list of languages I've used down to about 15 or so. I've used or had experience with roughly twice that number. I don't list all of them for a few reasons. First, I want to show breadth of knowledge on my resume, not depth. I'd prefer to have a job where I use most of my skills a little bit rather than a few of my skills a lot. Second, some of the languages I have no interest in continuing my career with. PL\SQL is a perfect example. Thanks Oracle, but no thanks. It's not me, it's you. Third, even though I have worked with more than 30 different languages, many of them I have little more than what I consider to be rudimentary knowledge or experience with.

For example, I don't have Lisp on my resume. I can do it, and I've done it in the past, but I never used it much. I used it for one assignment in college, and came back to it several years later because I was interested in learning more about how it worked. After working with it a bit outside of a classroom environment, I moved on. Could I learn it again? Yep. Could I recognize the concepts? Yep. Do I need it right now? Nope*.

It is orders of magnitude faster to relearn something than to learn it for the first time. That's why in college, they teach Calculus the first year and don't really come back to it until you get to your senior year or in grad school where they discuss advanced mathematical theory. What's more important is that fundamental concepts from one programming language to another translate differently. The ability to recognize those concepts and apply them in other languages is important whenever you're learning a new language because it speeds the learning process.

One other thing that I really look at is a coverletter. Truly great candidates all submit coverletters, and they usually pretty clearly illustrate the greatness of the candidate. Resume's are pretty dry reading, but a coverletter lets a reviewer dig a bit deeper. A coverletter allows the candidate to help sell themself to the reviewer and help them land the interview. A coverletter can also help you address shortcomings in your resume. I can't possibly stress how important it is to have a coverletter to help sell yourself. If I don't see a coverletter, then it shows that you don't care enough to put your best foot forward. At that point, why should I bother?

If I list a set of requirements for a job, and you apply but you clearly don't meet the requirements, how is submitting your resume going to get you an interview unless they're truly desperate? And if they're truly desperate and willing to hire anybody, do you really want to work there?

I hope that all of that illustrates a bit better what I'm looking for. It is probably of interest to people to understand what they will be doing working for Moon River Software since I'm not looking for any specific technologies. Here's a bullet list that recruiters seem to so desperately love:

  • Participate in the design and implementation of future versions of new and existing products. This includes UI design, database design, front end, back end, middle end, hampster wheel, llama design patterns, wait... are you really still reading this? Basically all aspects of the design and development of products from the initial idea to the final implementation and rollout. Chances are you'll be using .NET and SQL Server, but if you have experience with other languages and databases or the desire and interest in them, anything is possible.
  • Develop security policies for SecurityExpressions using any means necessary ( SE Script, VBScript, sed, awk, Unix shells, Windows shells, SQL, etc). Training for SecurityExpressions will be provided. I do not expect that anyone will know this product before starting at MRS.
  • Provide consulting services to Moon River Software clients as needed.
  • Occasional travel to clients, mainly throughout the Northeast and DC area.
  • Do whatever is needed to help build the business and make it a great place to work.

In return, I'm more than happy to provide the following to the right candidate:

  • Your own private office.
  • An Aeron desk chair for you and an Aeron side chair for visitors/meetings in your office.
  • A pair of 20" Dell 2007FP LCD monitors.
  • A dual core Athlon X2 desktop with 4GB RAM and a dual head video card. (custom built to be silent!)
  • Medical, dental, workers comp, etc.
  • 3 weeks paid vacation, plus 10 paid holidays per year
  • An utter lack of bureaucratic red tape
  • The tools you need to do your job
  • Career development and company paid certification tests (Microsoft, Red Hat, Altiris, CISSP, etc)
  • A competitive salary
  • A parking pass for a garage in downtown Worcester
  • Additional benefits to be discussed

As the last bullet indicates, this is not a comprehensive list. For example, if you wanted a technical book from Amazon, you could just order it. If we are developing web applications, you'd probably end up with a Mac Mini on your desk to aid in development. If you travel to a client, you'd be provided with a laptop. These situations will be dealt with on a case by case basis. I want to do everything possible to make Moon River Software a great place to work where we can enjoy our careers, not suffer through them.

It should be fairly obvious that I subscribe to Joel's idea that you want to hire smart people, not just skillsets. If Fog Creek is the type of environment you want, but New York isn't the place you want, then I invite you to send me a resume and a coverletter to If you have any other questions, feel free to ask.

* This isn't entirely true. There's a scripting language in one of the products I work with that seems to be fundamentally based in Lisp. Having learned Lisp on my own gives me a definitive advantage, but it's not truly Lisp.


# re: Job Listing

.NET is not a language. Its a framework 11/18/2006 7:05 AM | DL

# re: Job Listing

Good point. I'm well aware that .NET is a framework and not a language. I have a bad habit of saying .NET when I really mean C#.NET. 11/18/2006 10:18 AM | Mike Taber

Post a comment


Please add 1 and 3 and type the answer here:



Copyright © Mike Taber