We'd better improve our interview techniques before the flood of lawyer-like engineers who are only in it for the money arrives. My recommendation- avoid brain-teasers that can be crammed for. Assess based on open-source contributions, which show craftsmanship, architecture, and love of coding.
What I don't understand is why can't somebody love to code and not maintain a public github repo? Sometimes you want to keep things private-- it shouldn't have to mean the best stuff you developed has to be on github in order for you to get a good job as a programmer. It's on the technical interviewer to test out programmer's skills. Too many non-technical recruiters these days are passing on candidates because they don't have a big github repo. That's a cop out and an insult to the profession.
No joke. If I code for a living, usually I want to spend my free time doing something OTHER than coding. The projects I DO work on in my free time are for me - usually silly little things (maybe in a new lang that I'm playing with), and not indicative of standard of code quality I produce in the "real world."
In my opinion most programmers who use github should have at least two accounts, one carefully crafted to match some tradeoff between their current work environment and future work aspirations and heavily linked to their real name, and the other pseudonymous with no real name containing their real hobbies and code.
There is a substantial danger in being pigeonholed and eliminated because of some weekend hobby project three years ago "Oh we can't hire that guy, he does low level hardware driver work on microcontroller RFID devices and we need a DBA" Outside SV and NYC there is no shortage of coders and you'll get rejected for nothing.
I personally like to do gardening, home improvement, spend my time with my family over the weekends. My normal work time keeps me deep into coding and I just don't want to do 100% of my week.
Believe it or not, there are already large swathes of people that get engineering degrees because it is a good paying, stable, respected job. Probably 1/3 of my graduating class would have said their primary motivation for getting an engineering degree was the solid salary.
Historically, the solid pay and good prospects have been a primary driving criterion for people going into engineering. The Silicon Valley idealists who want to "change the world with food delivery" is the new phenomenon, not the other way around.
> The Silicon Valley idealists who want to "change the world with food delivery" is the new phenomenon
The Silicon Valley idealists who want to "change the world with food delivery" are (as a broad class, not every specific instance) largely PR faces created for marketing purposes by and for people who want to make lots of money, and know that having some kind of compelling mission (even if that "compelling mission" might change to something radically different later on) is important both for attracting customers and for attracting investors.
I mean, I don't want to mock it--it's challenging stuff, and makes a lot of money. It's the optimism that's a total culture shock to me. What I consider the traditional engineering attitude is the exact opposite--conservative, pessimistic, "don't fix it if it ain't broken."
Here in Brazil it's been a trend, more and more people going into engineering so that last year it was the undergraduate course with most applicants. And we have A LOT of law schools, probably more than any other country (no joke). Why so many going into engineering? Simple, there's a shortage and a job is almost guaranteed if you're a reasonable engineer, and the pay is good.
And it's not like these people are useless. I knew a guy like this in college, and he eventually settled into a decent job. Not everybody needs to be passionate about their work.
I used to write code in my free time before I married and had kids. I used to do a lot of stuff in my free time before then.
For a self-insured employer, the fact that I have a family makes me more expensive to employ. Hiring only young, single males or young, single, and sterile females allows them to raise base salary offers without inflating total compensation.
But they are not allowed by law to use the size of my family against me in the hiring process. Technically. Practically speaking, they do it anyway, and the law is unenforceable. If there's a potential legal problem, it's easy to fall back on the "not a good cultural fit" cushion.
If you don't expect someone to be contributing to their github repo on the clock, on your dime, don't check it as a criterion for employment.
I think that we should expect employers to allow open source contributions where it is appropriate. Breaking out general purpose stuff into libraries is more maintainable code anyway. If your current employer is hurting your career prospects, you should quit.
I'm not really concerned about whatever supposed "hidden biases" there are in open source, the simple fact is that the best way to judge someone's work is to see it.
If you're concerned about hidden biases I would direct you to the status quo brainteasers used today, where the interviewer simply has a blank slate to project whatever personal biases they have onto the candidate in a highly subjective, highly unrealistic situation that has nothing to do with actual programming.
That's why orchestra companies will conduct blind auditions rather than check a musician's SoundCloud portfolio.
If you want to see someone's actual work, you will have to simulate as closely as possible, in a controlled and repeatable fashion, the conditions under which that person will be doing work for you.
If you're looking for a cello player, you don't watch YouTube videos of musicians tap dancing, making trick shots in billiards, sawing lumber by hand, or performing close-up magic tricks. You number them, sit them down behind a visual barrier, and listen to each of them play the same piece of music. Then you pick the number that played it the best and hire that person.
Pulling back from that metaphor a bit, software professionals don't play just one instrument, or one genre of music. We know multiple high level languages, use different framework tools, use different design patterns, follow different processes, and the only thing we really all have in common is the ability to take a large, human-sized task and break it down into tiny, specific instructions simple enough for a stupid electronic machine to carry out--the paths between origin and destination being uncountably varied, and the ones chosen being largely a matter of arbitrary choices or aesthetic preferences.
If you won't consider anyone that does not have a public portfolio, you are inviting the obvious countermeasure of creating a sham portfolio just to jump through your hoop. You are encouraging people to write code that advances the author's interests rather than those of a project.
How about we create assessments which measure skill, and not simply how much spare time someone has, or whether their current employment allows them to do side work?
I've worked with some excellent former-lawyer devs. I think there is significant overlap between the ways a person must think as an attorney, and as a developer.