|
|
|
|
|
by smokinn
6052 days ago
|
|
I don't plan on applying but I'm curious as to why you would hire a great developer without security experience over someone who knows app security. Is it because you offer a lot of training or simply because you figure he'll pick up what he needs fairly quickly and eventually surpass the app security expert? Or is there a different reason? I asked a similar question to Zed Shaw at CUSEC last year. Something along the lines what do you think about Joel Spolsky saying you should only hire the very best. He said he prefers someone who's willing and able to learn because he'll just teach them and they'll become a very valuable person. |
|
It's simple. The best security researchers are people who have (or at least could) ship software. There is a big swath of high-end work that you simply can't deliver if you can't code. That's where Matasano plays. I suppose you could be a very strong Payment Card Industry certification consultant just by getting very good with WebInspect, but to reverse an embedded kernel, isolate the code that handles a protocol you caught on the wire, and then code a fuzzer for that protocol, you need to be able to read code in a bunch of languages and write code very well in at least one of them.
As a consultancy, there are fringe benefits to our clients from us staffing projects with former devs:
* Devs know how to talk to other devs without sounding like morons or bureaucratic checklist-checkers, and sounding like that is a big problem in my industry. For instance, devs don't tell clients that single-line changes to shipping codebases are "trivial" and should only take minutes to roll out.
* Devs can provide remediation advice that is better than "switch to parameterized prepared statements" or "check input better".
But the reality is, we like working with devs because they are on the whole better at breaking software. They read faster, they don't balk at writing complicated test programs, and they know how pieces fit together --- and those junctions are where software usually fails worst.