How To Hire Great Open Source Developers?
An anonymous reader writes "This is the first article I've ever read specifically about hiring open source developers, and how to judge their ability not just to code but to work with others. It's reprinted over at ITMJ [part of OSDN, as this site is] from a book by Martin Fink, the General Manager for HP's Linux Systems Division. Brings up a lot of good points, including how you need to make sure your open source people are developing things (on company time) that do the company some good, not just scratching their own itches. Fun quote: 'Discover what pseudonyms your candidate uses online. Look at the archives at SlashDot and other online locales. Does your candidate hide behind secret pseudonyms to trash other individuals? Is there passion without condemnation?'"
"Discover what pseudonyms your candidate uses online. Look at the archives at SlashDot and other online locales. Does your candidate hide behind secret pseudonyms to trash other individuals? Is there passion without condemnation?" Hmm, I dunno. Sounds like someone might get disqualified just the project-manager doesn't like their opinions. /. writes about more than just OSS you know.
When you're looking for open source developers, you need to make sure they can't just get the program to run well, but also to make the code look neat and easy to read, as there's a good chance lots of other people will be wanting to edit it for their own needs.
When anger rises, think of the consequences.
Confucius (551 BC - 479 BC)
This seems like it was written during the dot-com bubble. Quote from the article: However, that person may also have very clear expectations that the only projects they will ever work on are open source projects. This is simply not true. Being an open source developer is not a religion. It just means that you believe in the idea. There's absolutely no problem for an open source developer to make closed source for a living. And, more importantly, open source developers (and the comunity) has no beef with that.
Remember - we need to eat as well. While open source gives us satisfaction, closed source gives us our daily bread.
Underholdning.info
Damn right law might limit restrictions. My time is mine. Not a company's, mine. That's the very definition of personal time. I am not employee #3877643 away from the office, I am a human being who does work for a company during certain prescribed times and under certain prescribed circumstances.
They might well have legitimate rights over what I can contribute, but certainly not when if 'when' is part of my personal time.
Cheers,
Ian
Now, at the risk of feeding the trolls, I do take exception to this sort of attitude.
There are lots of talented out of work people, be they developers, programmers, graphic designers, musicians, teachers, astrophysicists, lawyers, actors... I could go on, but, you know, I don't really want to. People don't always get hired simply for their skillsets. I've said before that some of the most talented people don't get hired because of a lack of specific skills in other areas. People lose jobs, or lose bids on jobs/contracts, because they can't handle talking to "real people." Obviously that's not the only reason, but that's a big one. My father works for a school board, and there are people who would love to work as a teacher, but are terrible in social situations. On the flip side of things, we have programmers who are less than the most competent people in their literal field that don't get hired because they can't work with other people.
I for one know I wouldn't want to hire someone, regardless of their boundless talent, if they were a flaming dickhead.
"I'll be a killer whale, when I grow up"
-Wintersleep
so anonymous coward is not a made up pseudonym?
OSS should be looked as if it was a portfolio not a personality definition, since many developers start doing software because they need it for themselves(like a driver or a new phone book, whatever) so basically is mostly real ppl with real intrests, so an interview is what really should happen, not weasely speculation or minding caffeinated beverage taste.
"The quality of life is inversely proportional to the number of keys on your keyring."
There are also lots of talented people who don't get work, or who end up stressed out of work, because employers willynilly throw around requirements for people to do what they can't.
I was part of this ''multiskilling" fad, and was employed to do prepress work. It's my passion, and I love it. I find dealing with people stressful.
So what does my employer do? Add to my job the requirement to serve the front counter of the print shop, COLD CALL prospective clients, do the layout I was originally employed for, go on the road doing sales, and admin the network.
Good work. I ended up quitting, as prepress is shit easy to find a new job in when you have the skills.
Some people can do the multitude of tasks needed, but when you hire someone who's a consistent passionate coder, don't go then expecting them to do bullshit like cold calling clients or sales on top. Jack of all trades and master of none, etc.
> Can he/she give examples of contributions that were
> better than his/her own implementations?
Good way to sort out the "programming god in their own minds" geeks.
Umm, you likely already know this, but your boss is probably lying to you, and simply didn't let it slip since that would have given you a stronger position during contract negotiations.
I've decided that employment agreements that define intellectual property rights and disclosure really don't amount to much. Every employment agreement that I've read always has language about disclosing "work related" inventions and the company's right to those inventions.
Developers that I've worked with tend to construe those paragraphs very broadly and sometimes get themselves really worked up over the possibality of their employer stealing their million dollar invention. The thing about that is that if a company and employee were ever to get in a legal spat over IP, then most judges and jurys are going to be able to see the dividing line.
The bottom line is to use common sense. If you're employed writing software to analyize widgets and you write a directly competing product on the side, then you obiviously have no case to say that it's not work related. On the other hand, most judges and jurys can see enough difference between widget analysis and personal accounting that they're not going to let a company sue you just because you wrote in the same language and used similar coding practices on your personal time.
Ha, ha! Nobody ever says Italy.
Not all programming positions, nor programmers, are alike. Likewise, it is only an employer's market for certain types of positions(as it is with any field), and an employee's market for others. Some programmers can still make demands, cuz they're just so f'ing good/they have a very unique skillset.
(or whatever that Watchmen quote is)
'Discover what pseudonyms your candidate uses online....'
BS, I say. There are many reasons why people take nom de plumes and pseudonyms, but all come back to the fact that "-and I just wanted a certain level of anonymity". Not fullblown anonymity, just enough to make your online personal dealings disjoint from any sort of RL responsibilities you have.
There's a reason why you're not supposed to talk about religion, politics, and all that stuff on first dates or job interviews: because it's inappropriate (unless the job is, obviously, at a church, for a political party, etc.). Employees are expected to leave their personal lives at the door when at the job. But employers should feel peachy about betraying that same confidence?
When writing some free COM app or TPS report coversheet, what does an employee's view on gay marriage, Palestine, or the RIAA have to do with anything? And even if the employer was doing something as inoccuous as suggested in the article and just "seeing if they are passionate without compromise"... who here doesn't think they could find something they'd hold against you?
Candidates are looking for jobs, not friends. Neither should employers.
What is music when you despise all sound?
Do I lose Karma for STILL not knowing how to start a new thread on /.?
Ah well. Here's what you do, guy: actually invite the person in for a sit-down interview. Yeah, I know, it's crazy, but there is no better way to gauge someone's social skills than to watch them interact with others up-close and personal. If, when talking to you, their eyes never leave their feet, or they mumble (especially about 'taplers'), or they didn't even bother to comb/brush/wash their hair, or it's only 8:30 in the AM and they ALREADY have the worst BO you've ever experienced - well, chances are, their social skills need a bit of work. Just a guess. And don't get all "yeah, but you can't really observe somebody acurrately under those circumstances, because it's a stressful situation, and simply watching somebody changes their behaviour" on me, cuz that's BS - sometimes (often times) social situations (especially work/social situations) INVOLVE STRESS - if they can't handle it, you need to know.
If, on the other hand, they are confident (nervous is okay), know their stuff, and don't try and dazzle you with facts or razzle you with bullshit, you've likely got yer guy.
Tell me you're not actually in charge of hiring? Please? This isn't rocket-science.
One must always be willing to take pride in their work - not to do so is practically a crime in any line of work. But if you attach your ego to your work, you will never be able to handle someone else taking your code and, well, basically, take it apart & rewrite it if necessary - for whatever the reason happens to be - whether it's because the spec has changed, performance indicates that block of code, etc. If your ego gets in the way, your feelings will likely hurt you in the arena.
Let me prove myself on the job I'm hired to do and please leave my slashdot account, my credit score, my medical history, and my weekly garbage to myself thank you.
The issue here is that tech guys often are terrible communicators, or worse, actually difficult to work with.
This is why so many tech guys complain constantly about how management is clueless as to their contribution, or does not give them adequate support, etc. It's caused in large part by the tech community being very territorial and often antagonistic. It makes it much easier for the business managers to sit in an isolated room and make decisions about the tech staff without actually discussing it with them.
Yes, most of us work in environments where isolation is the preferred method ( the foolishness of bullpens and pair programming notwithstanding ), but somebody (hey - maybe you, tech guy!) has to explain to the power-that-be how isolation is a requirement, or how having a redundant code repository isn't just a nice idea.
Who's going to explain it to them if the programmers and hardware guys can't? Who's going to explain to the new guy working on some of your old code those little nuances for deployment, freeing you up for that new codebase development?
That's where your 'ability to work with others' comes in handy, and that's why a smart company wants that skill in their tech staff.
How about the ability to solve problems?
Frankly, syntax is the least of my worries. Languages can be learned. Coding conventions can be followed. Even Coco the monkey knows how to mash the keys!
How clean is his psuedocode? How well does the coder think? Can the programmer think in a step-by-step fashion? Do they know how to solve problems? I'd hire a logician or a physicist over a pure syntax monkey just because I have faith that they can solve problems.
Frankly, you can't win with interviewers. They want codeaholics who work 80 work weeks for fun. Companies want you to have social skills but no social life.
Dykstra is rolling in his grave.
What do you mean my sig is repetitive? What do you mean my sig is repetitive? What do you mean....
If the correct compiler switches are used:
if (var = CONSTANT) will trigger a warning or error
the standard way to express this is:
if ((var = CONSTANT)) however some compilers don't implement this correctly
personally, I prefer:
if ((var = CONSTANT) != 0)
which makes the assignment and test explicit.
The reason I said twenty years is because I distinctly remember Turbo C/C++ 1.0 did this by default. Visual C++ can do this kind of checking too. The warning generated is C4706, but it is off by default. The first I do when working on any project is to turn it, along with some other warnings on. I have never been tripped by this error since.
(And before you accuse me of being greedy, I do contribute to open-source projects in my spare time.)
I can explanate how to administrate your network. You must configurate and segmentate it, so it can computate.
People with different ways of thinking might come up with solutions that are so orthogonal to the way you solve problems that it's almost impossible for you to evaluate those solutions
Yeah, but 1) if you're hiring technical you should talk technical and, more importantly, 2) if they aren't capable of communicating their orthogonal solution to you then they're going to be no good working in a team anyway.