

Ask HN:How to attract best programmers for non-software company? - emin

Dear Hackers,<p>I am looking for suggestions on how to attract truly exceptional programmers for a non-software company. A variety of sources (Joel on Software, friends at Google, Yahoo, universities, and research labs) seem to say that the best software engineers prefer to work at software companies as opposed to software roles in other companies. Does this have to be the case? What can non-software companies do to attract a few excellent programmers?<p>As background, our group is a hedge fund that uses a variety of fundamental and macro ideas to trade stocks, bonds, currencies, and commodities. In order to manage complexity, we tend to try to automate everything that can be automated and are looking for a great programmer to help manage our software systems and support the investment process. I think some benefits of our group are:<p>* we have excellent people in pretty much every role<p>* we are a small group so we have the fun and excitement of a startup with the stability of a larger organization<p>* programmers get to work on a variety of interesting projects and occasionally contribute to open source projects<p>* everyone has their own (nice!) office<p>* great benefits, compensation, etc.<p>I have always thought that a company devoted to excellence should be able to attract great people in any field. But despite what seems like a great environment I occasionally have people basically say, "I'd rather work at a software company like Google, Yahoo, Microsoft, Oracle, etc." without even bothering to listen to what we are trying to do. What are the features that make pure software companies so attractive?  Can these features be replicated at non-software companies or can other features be substituted?  Any comments on how to attract great people in general as well as how to advertise a specific position (e.g., like the one at http://www.baincapital.com/BainCareers/ViewPosition.aspx?position=aaf6b68e-8f63-44a3-9222-14cc21fc0bb4) would be greatly appreciated.<p>Thanks,
-Emin
======
pedalpete
The most important thing I think is that you are able to have programmers
understand that they will be working on interesting challenges, and understand
the contribution they will be making to the company.

You say you want somebody to 'manage your software systems and support the
investment process'. Well, from a programming perspective that isn't exactly
inspirational. Manage and support are the things that need to be done, not the
reason we come to work exciting about what we can deliver at the end of the
day.

If you look at the Bain Capital example you provided it doesn't say anything
about managing systems or software, it is all about creating. It's an
energizing job description, you've almost got me applying to work for them ;)

At the same time, don't oversell yourself if that is what you are looking for.
If you need existing systems to be managed and supported, with maybe the odd
update here and there, then you maybe looking for a IT systems manager more
than a programmer.

If you are looking to create systems which allow you to trade more
efficiently, recognize patterns across trading opportunities (AI), then you
want a programmer.

------
AmberShah
At non-software companies, programmers are often treated like expenses or even
overhead, like HR. So naturally the goal is to try to spend the minimal amount
of money possible. Often they are put under someone who doesn't understand
technology or the way programmers work, like a CIO (rather than a CTO) and
demands things like formal clothes and many layers of management.

Most people hate those things, but programmers don't (feel the) need to put up
with them. Software companies are typically founded and run by past-
programmers and at least they understand the landscape, even if they tend to
morph into the pointy-haired boss to some extent.

If a non-software company wanted to attract the best talent:

1) Hire a strong technical leader:

This is sort of a chicken and egg problem, but smart programmers don't want to
work for dumb ones that are old/lucky enough to get pushed into management.
The "head" of the programmers needs to be smart enough to make the right
decisions and humble enough to learn from his subordinates. They exist but
they're rare.

2) No salary brackets

Of course the department will need a budget, but let the most competent people
make the most instead of relying on age or I, II, III numbers. This is VITAL
to being able to recruit top talent. They will be paid substantially above
market 99% of the time, and even if you find that underpaid 1% and steal him
away, he may just leave and make more money. The fact is, if you want top
talent, be prepared to pay way above market, but the value you will get per
programmer will be so much more. If you don't believe that, then don't even
waste time looking for top talent.

------
hga
" _everyone has their own (nice!) office_ "

Well, you've got that one right.

For someone like me, while I'd be willing to fetch cheeseburgers for your
traders (you did read _that_ Joel essay, I hope), I want a mission, if not a
crusade.

In your general area, although not necessarily appropriate for you, I can
think of Goldman Sachs's proprietary language Slang. Not so much the language
(which I've read is showing its age, etc.), but in particular the system I've
read that it enables, that allows the company to quickly get a picture of its
situation, do "what ifs", etc. Whereas its rivals depend on their various
units manually collating this info from spreadsheets and other de facto
private databases.

It's been said this made a big difference in their ability to negotiate the
travails of Fall 2008.

Echoing what others have said, while you don't have to do something as
grandiose as the above, if you really want to the best you have to clearly
articulate both the _why_ (you need the best) and the _what_ (you propose for
them to do). And make sure the how and who (they directly report to) is very
good. As in a professional developer who is up on the technology you're using
and who can and will among other things mentor the people under him (or see
that it gets done).

One last note: right now I'd try recruiting people at ITA who are working on
their RES project.

------
clueless123
When I was young I would have seen your job posting as a dead end position. My
thoughts would have been: What possible fun could you see on writing code for
PHD's all day long?

My suggestion is that you stop advertising for "brilliant software engineers"
and instead look for solid people that actually fit your team.

For what is worth, what _did_ caught my attention fresh out of school where
lots of smart peers, unlimited budgets, foozball, ping pong and the rush of
beating the competition with our smarts. (Of course a couple of years later
the bubble pop'd, stock options fizzled and reality kicked in)

------
Tangurena
> _What are the features that make pure software companies so attractive?_

Being a pure software company, there are lots of opportunities to jump around
to different workgroups doing different things, as well as software
development is seen as an asset (not a cost). In a non-software company, the
IT group is usually seen as a cost center rather than as a profit center.

I've worked at places where software is not the primary business. And in those
places, we wrote software to make the company work better.

A lot of programmers want to get into the finance sector, but don't know how
to do so.

------
mattmiller
If you already have software guys that are satisfied with their jobs have them
do some of the recruiting with you. My company sends its engineers to college
recruiting fairs.

Also, some things that I like about my job that I would assume a non-software
company does not offer:

-Control over how I code (IDE use and coding style). Some companies (even software based companies) micromanage this.

-Somewhat flexible hours.

-Managers that stared off as software guys.

------
ajdecon
People like to work on what they're interested in, and share it. If you've
spent a long time becoming a skilled programmer, you probably have a strong
interest in software in general and you'd like for a lot of people to use what
you make. This causes obvious problems if you want to hire them into a non-
software company and keep most of their work in-house.

One solution to this is to look for people who are very skilled programmers
but have already developed an interest in your problem domain. For example, a
scientific company will often look at people who have already worked within
that domain, and are skilled with programming, but are willing to move out of
a lab-based role and into a purely programming role. (Disclaimer: this
describes my current situation.) I'm much less familiar with finance, but
you'd probably do well looking for people experienced in finance who have also
developed programming skills, rather than pure CS people. If finance is
anything like other fields, your best bet is probably to go hunting for grad
students. :-)

------
craigkerstiens
Being surrounded by like minded people definitely helps along with working on
things you find interesting. One disparity I'd say I've found is large
corporations don't put a value on developers the same as a software company
does. Within a software company, software is the core value of the business,
so it gets the highest attention. I've seen larger businesses not willing to
spend for 2 monitors for developers, which would be an obvious worth in
productivity in most cases. This can usually be seen in the general attitude
of the company, is IT there to support the business or to be a key
differentiator for your company. If the environment does have those things the
next area of course is compensation, does your developers salary match that of
google/oracle, while you may pay better than similar companies, check how it
compares to the known software shops on somewhere like glassdoor and see how
you rank.

------
emin
Thanks for all the replies and suggestions. Here is a brief summary of the key
points so far:

1\. Have an energizing, challenging, job description (basically an inspiring
mission) where creating great software is valued as an asset.

2\. Flexibility about IDEs, coding tools, etc.

3\. Mangers who understand and value software.

