

If I can't see your work - you're crap - gringofyx
http://www.codingjohnson.com/if-i-can-t-see-it-you-re-crap

======
dangero
It goes the other way too. I expect this opinion to be unfavorable with the HN
crowd, but let me explain:

Spending your free time contributing to open source projects generally
indicates that you're not a money driven person. This is anecdotal, but every
software engineer that I have hired who contributes heavily to open source
ended up being a huge pain in the neck in a corporate structure. The reason is
that corporations don't have emotions and in general they don't have morals.
They are money generation machines with schizophrenic personalities. If you're
money driven, you do well there.

What inevitably would happen with open source people is that they would become
upset about something the company was or wasn't doing. In one case it was even
the fact that the company refused to open source a project that they felt
should be open sourced. As a manager I'd say they were high maintenance
employees. They would also often go rogue in the name of "doing the right
thing".

Believe it or not, I see open source types as often incompatible with
corporate jobs and when I see a resume that has a big list of open source
contributions it concerns me.

------
unoti
I use private repos on Bitbucket. Most of what I've worked on over the last 5
to 10 years my competitors would absolutely love to get their hands on. Much
as I'd love the street cred, I can't publish my code. If the software is an
important part of what gives me an advantage over my competitors, then I can't
publish the code. If it's written for a client, I can't publish the code.
Really, there's only a very narrow spectrum of circumstances under which code
can be given to the public. Computer software runs all facets of our lives,
and very little of it is publicly available on github.

How about this. If you make sweeping generalizations without thinking things
all the way through, you're crap.

~~~
doublerebel
My competitors also love my software. By giving them (at least part of) the
source they solve bugs and add features for free. A good developer generally
has far more than one good idea or library up their sleeve.

I begin work with clients with the explicit understanding that I am using
public code that may be improved during the course of their project. I sell
them on the benefit that they effectively get the project foundation for free,
thanks to using this process with previous clients. Open code is better tested
and guarantees that their business and codebase is sustainable towards the
future, if something happens to me or our relationship otherwise ends. This
security is invaluable to a client.

Closed-source, private code is a much harder sell even with a long list of
happy clients. What guarantee can be given that the software will be
sustainable going forward?

------
jdietrich
OP has missed the point spectacularly.

There aren't just two developers in the world, there are hundreds. For those
with published commits, I can assess quality of their code myself and see
whether they actually know what they're doing within a couple of minutes.

A developer with only a CV is a pig in a poke. They might be a terrific
developer, they might just be very good at bullshitting their way up the
career ladder. Unless I know that the company they worked for has a very
developer-centric culture, I'm probably safe in assuming that the decision to
hire and retain that person was made by a non-technical manager. The message
they're giving me is essentially "I can code, because someone who can't code
says so". I have no way of distinguishing a genuinely talented developer from
a bullshitter.

Why should I bother? Why should I spend half a day or more interviewing a
candidate who can present no real evidence that they can actually code, when I
can have my pick of people whose Github profiles are overflowing with quality
commits?

~~~
maratd
> I have no way of distinguishing a genuinely talented developer from a
> bullshitter.

Nonsense. Put him in front of a computer and ask him to write something. Then
evaluate him based on that.

I have written hundreds of thousands of lines of code, but only have a few
thousand up on Github and quite frankly, most of that is not my best work.
Most of the code I write is proprietary.

> Why should I spend half a day or more interviewing a candidate who can
> present no real evidence that they can actually code, when I can have my
> pick of people whose Github profiles are overflowing with quality commits?

Pretty simple. Those with overflowing commits on Github either have a very
skewed work/life balance or quite simply, have no actual work experience. Open
source only pays the bills in very rare circumstances.

~~~
vinceguidry
> Those with overflowing commits on Github either have a very skewed work/life
> balance or quite simply, have no actual work experience.

This. I would LOVE to contribute to open source. But I also want a life. I
want the life more than I want to contribute. So until I can contribute while
I'm on the job, my github account will languish. And that's fine by me.

My last interview asked me about my github account, and I told him just that,
that I'd love to contribute, but just don't have the time. I still got the
job.

It's not a problem until you make it a problem.

------
opcenter
I fall into the "developer 1" category myself. I only recently started doing
side projects in my own time (and publishing them on github), almost entirely
because I was starting to run into walls job searching without a "portfolio."
Unfortunately, this means that what potential employers are seeing is stuff
that I've done in my almost non-existent free time, so it's generally
unfinished, unpolished projects that had a really simple goal or were for
learning a new language/framework. So, it's not necessarily a good indicator
of what I produce when I can focus full time on a project.

It sucks that I am "punished" because all of my actual work has been for
companies that aren't interested in sharing their products with the community.
I've even tried a few times to get tools I've created released as open source,
but the general response I get is, "uh, why?" I can understand that the
companies see no value in it and in fact may cost them money if there end up
being licensing or other legal issues.

~~~
mistercow
>Unfortunately, this means that what potential employers are seeing is stuff
that I've done in my almost non-existent free time, so it's generally
unfinished, unpolished projects that had a really simple goal or were for
learning a new language/framework. So, it's not necessarily a good indicator
of what I produce when I can focus full time on a project.

That is a tricky situation to deal with. On the one hand, you don't want them
to think that this is you at your A-game. On the other hand, the naive
approach of apologizing in advance is just bad psychology. I don't have
experience with presenting this to employers, but in general the best way to
frame those kinds of things is to think not in terms of expectations (you
actually want expectation high; people see what they expect), but in terms of
objective context.

If you say "Here's something I did which really isn't me at my best, but it's
what I had time for", then people will expect crap, and that's what they'll
see. If you say "This is something I built in my free time", or "This is
something I built while I was learning Backbone" (and keep you tone
enthusiastic, not apologetic), then people will understand the context in
which they should be judging what they see. If they're smart, they'll realize
that seeing what you can do when you don't have much time, or when you're on
unfamiliar ground, is at least as valuable as seeing what you can do under
ideal conditions. If they're not smart, do you want to work for them?

>I've even tried a few times to get tools I've created released as open
source, but the general response I get is, "uh, why?" I can understand that
the companies see no value in it and in fact may cost them money if there end
up being licensing or other legal issues.

That's hard too. It might help if you can come armed with some benefits of
releasing something as open source, like the fact that other people will be
able to find and fix bugs for your employer, which is basically free labor.

~~~
opcenter
>If you say "This is something I built in my free time", or "This is something
I built while I was learning Backbone" (and keep you tone enthusiastic, not
apologetic), then people will understand the context in which they should be
judging what they see. If they're smart, they'll realize that seeing what you
can do when you don't have much time, or when you're on unfamiliar ground, is
at least as valuable as seeing what you can do under ideal conditions. If
they're not smart, do you want to work for them?

That's a good point and it's what I've been following so far. "Here's a
project I built in my free time because I wanted to brush up on my Python
skills, and in the process I also learned a lot about Flask, MongoDB, HTML5,
CSS, and JavaScript."

> That's hard too. It might help if you can come armed with some benefits of
> releasing something as open source, like the fact that other people will be
> able to find and fix bugs for your employer, which is basically free labor.

Also a good point. I'll have to give that a try.

------
tucaz
From time to time I have to hire a developer and since I started looking for
type #2 I'm having a hard time.

I'm in the MS World and these kind of developers are really hard to find in
our world. So, I usually I go with the type #1 and shoot myself in the foot
because even if they do know their salt to get through most of small-internal-
applications development most of them are unable to search, find or use
popular open source libraries that can save tons of time and improve the
performance of the whole app and sometimes even the whole company.

As a simple example I asked one of the candidates how they would build a small
dashboard to show some e-commerce data and he came up with the idea of
building an entire app from the scratch (including charts and client stuff)
while simply using Dashing (what I ended up doind) would do.

I have no problem with developers who do not publish anything, but I do have a
problem with developers who claim to be "senior" but always build everything
from the scratch costing the companies thousand of dollars that might be spent
somewhere else.

~~~
ctdonath
Plenty of companies are willing to spend the thousands of dollars building
everything from scratch rather than rely on bought components they can't
control or know entirely. Developers & management from that world may not know
(or trust) available libraries; doesn't mean they're not "senior", it means
their skillset may not match your needs.

The reverse complaint can be made: ask a candidate to build a small dashboard
to show some e-commerce data - from scratch. If he can't do it without third-
party libraries, is he "senior"? If he _can_ do it, surely he's capable of
spending a couple hours finding available packages to shorten the development
cycle (saving time & money at the cost of reliance on outsiders).

------
mesozoic
I'd hire developer 1 for sure. I've never understood the idea that someone may
be worse because they are employed and all the code they write is good enough
to be paid for by someone else and thus can't be posted publicly for anyone to
take.

~~~
mistercow
A lot of people feel that most of the better developers code in their free
time as well as for work. Whether or not you accept that premise, it should at
least make sense how you get from that to expecting people to have some code
to show.

~~~
ctdonath
Premise understood. Note that it's also fair to consider the better developers
code in their free time _and sell it_.

Fair arguments on all sides. Crux of the problem is that what we do as
developers is valuable enough that others will pay good money to own it
outright, leaving us with no publicly-viewable portfolio.

------
wehadfun
Depending on the type of work you do your code would not go on github. If you
write code for drivers for IR cameras in C or fix bugs in FORTRAN you won't be
putting your stuff on Github or contributing to stackoverflow.
Github/stackoverflow is, in my opinion, more catered towards the mobile/web/C#
community. Military, medical equipment and aerospace software developers prob
don't use it either one very much.

~~~
cruise02
I don't see the parallel between github and Stack Overflow. I can understand
why programmers in certain industries and companies won't be posting their
code on github. If all of the code you write professionally is proprietary, it
makes sense that none of it would wind up in github public repositories. But
even if I'm writing proprietary code, I can still ask questions about it on
Stack Overflow, and answer other people's questions.

~~~
wehadfun
Stackoverflow: 212 Ada followers 508 FORTRAN followers 38,600 C# followers
44,500 JavaScript followers

Github: 329,678 Search language:ada 720,910 Search language:fortran 6,034,816
Search language: c# 44,430,272 Search language:javascript

The two services are heavily used by the C#/web community. mobile too but I
did not include numbers

------
mistercow
I dislike how this is trying to make this about oppression. In particular, the
"or maybe they're female" toss-in is just dumb. Contributing to open source,
blogging, and having a code portfolio _are_ all relevant to assessing your
competence as a developer. Being female is not.

Whether or not you have a github account and contribute to OSS is something
you have control over (unless your previous employer prohibited it - but
that's hardly your prospective employer's fault). If you're having trouble
finding a job because you don't contribute to open source then... _contribute
to open source_. Make a github account. Find some bugs. Fix them. Submit pull
requests. A lot of projects could use the help.

I'm sort of thrilled, actually, that we live in a world where not contributing
to open source is enough of a career hindrance that people are complaining
about it. That's a trend that I'd like to see continue. I want "you need to
have at least a few contributions to FOSS" to be the equivalent of yesterday's
"you need at least some kind of bachelor's degree".

As for not having a code portfolio, well, if you're interviewing for a job as
a photographer or a graphic artist, and you show up with a resume and a smile,
you'll find yourself in much the same position. "Coca-cola really liked my
photos" is only going to take you so far. This is a field where you can easily
tote your work around, so of course potential employers are going to want to
see it.

I feel like the complaint here could easily be applied to other things, like
not having a resume or not showing up to the interview in your underwear. What
do those things have to do with coding? There could be plenty of great coders
who do those things, and you'll miss out on that talent if you don't give them
a chance! _Stop oppressing them._

~~~
NateDad
The problem is that a lot of us have lives outside of work, and work is
proprietary software. I hit this problem in my latest job search. I had a
limited presence on github and a rarely updated blog... if you'd asked me 4
years ago, I'd have nothing. Which doesn't mean I'm not a good coder. It means
I have a wife and a family and non-coding hobbies, and I'm not 25 with the
ability (or desire) to code until 2am every night. Luckily I had enough of an
online presence that I was able to do a weekend coding project to prove to my
(now current) employer that I'm worth hiring.

I think it's pretty safe to say that _most_ professional software developers
work for companies that do not open source their software. So, the majority of
your time coding is hidden away. For anyone with a family, the rest of your
time is pretty much taken up. To get work done on side projects, I get up at
5:30am... and haven't been able to do that since the birth of our second
child.

Now, I 100% understand why people would hire #2. He/she is a known quantity.
The other one, well, who knows? It's famously hard to figure out in an
interview who will be a good coder and who will not... and it's incredibly
expensive, both in time, opportunity cost, and actual dollars, to hire a bad
developer. Not to mention the bad code that might infiltrate your codebase.
So, playing it safe with #2 is usually not a bad idea. But, at least give the
other guy a chance. If you like him in the phone screen and preliminary
interview, give him some coding homework and see how he does.

~~~
icambron
What I don't quite understand in this discussion is the either/or nature being
suggested here and elsewhere in the thread. There are plenty of opportunities
to contribute to OSS in the context of proprietary software. Even if you write
proprietary software, you most likely _use_ open source software (I know
that's not true of everyone-- more on that below). And when you use it a lot,
you find bugs or missing features, which _you can fix_ as part of your job.
When I was less experienced and there was no Github, I shrugged my shoulders
and worked around problems I found, which usually just led to more pain. Now,
I grok the code and make a pull request. It helps the proprietary project I'm
working on and helps, almost incidentally, all of the other users. And
ultimately, I suspect that's where a huge portion of OSS code comes from:
people who need it and are thus willing to contribute as part of their
proprietary software jobs, not from dedicated OSS developers volunteering
their time, forgoing sanity and a paycheck. That's why there's so much good
OSS infrastructure software.

With that in mind, let's imagine a manager hiring engineers for a project
built on top of an OSS stack. Sometimes that stuff won't work right, and
sometimes--I'd argue usually--the right answer is to just fix it. And you're
looking at a developer with experience doing just that and someone who hasn't.
One has taken the initiative to learn their way around the internals of the
tools they use and the other may or may not have. Who do you pick?
Contributing to OSS is not just a badge of honor here; it's what's left behind
by good development work.

Sure, some jobs don't have that. Maybe it's a video game built on some
proprietary toolkit, maybe it's a low-level library written from scratch. But
surely those aren't the employers who care so much about your Github account,
right?

------
foobarbazqux
What an unfortunate title. Anyone who doesn't bother to read the article will
assume that's his belief.

------
badman_ting
This attitude has cost me at least one job offer, but my current situation is
good enough that I'm not really interested in doing publicly-visible things
just so prospective employers can see it.

What can I say, my code goes into private repos, sorry. You reply, I can't
offer you a job if I can't see your commits, sorry. Understandable. But then
the matter boils down to whether I want the job more, or you want me as an
employee more. How good am I and how good are you? I'm not hurting for job
offers, but my guess is that you're hurting for developers. Seeing as how
you're hiring and all.

I agree with the OP that people in our field often bank on the GitHub account
and the Macbook as indicators of "developer-ness". The homogeneity of it
grosses me out a little, even though I like GitHub and use many Apple
products. It's a groupthink thing that I personally try to avoid, but I
wouldn't rail against it.

~~~
derleth
> It's a groupthink thing that I personally try to avoid

Because the Good Ol' Boy network of references and handshakes is a groupthink
thing you've gamed better.

~~~
badman_ting
Huh, I wonder what that means.

~~~
jessedhillon
"I'm presumptuous and have little perspective into how work actually gets
done," would be a good interpretation.

~~~
derleth
A Good Ol' Boy network is a wonderful example of groupthink: "If my friends
like this person, they must be good!"

As opposed to doing your own research and developing your own standards.

Maybe other peoples' definitions are different. That doesn't make either of us
presumptuous or ignorant, but you could have laid out your definitions before
slinging the insults.

~~~
jack-r-abbit
But the OP that you first insulted made no mention of gaming any such "Good
Ol' Boy network" that you envision. Knowing people that make it easier to get
your resume in front of the right person or to get an interview is how things
are done a lot. It's not gaming anything. And that is nowhere near the same as
your "If my friends like this person, they must be good!" example. I've seen
plenty of referrals come in for interviews and leave without getting a job.

------
YZF
Like some people here I've written a lot of proprietary code used by millions
of people but have (almost) zero code in public repositories.

I do see the value in having some sort of "portfolio" piece to show off your
skills and if I have spare time (and I never seem to have much) I may do a
small project and put it in the public domain. Obviously there's a limited
amount of time that I can put into something like that.

------
varelse
Developer 1 is just fine with sufficient networking/publishing.

I don't have a single commit on github. But I have no problem with job offers.
I suspect that's because I have author credits on a lot of refereed
publications in the past few years and a bunch of recent patents, mostly
single inventor. I'd say that's worth more than a bunch of code on github
myself, but to each their own.

~~~
guelo
Personally, I wouldn't hire you because you file patents.

~~~
jack-r-abbit
I can't decide if I'm reading that correctly. Which do you mean:

1) I would not hire you and the reason is "because you file patents"

2) If I did hire you, the reason would not be "because you file patents"

~~~
numo16
Pretty sure it's #1, based on HN's general feelings towards software patents

------
qas1981
I've been the victim of this before myself. I've written a 100 plus million
dollar billing system for a fortune 500 company. have 10+ years development
experience using the full breadth of MS products. Majority of my work has been
done for clients with revenues in the billions. Yet,The interview panel wanted
to know did I have something on GitHub...

------
ultimoo
>> ...maybe they're paid less or maybe they're female...

I never used to think being female was as big a problem as people said it was
until I observed it happen _twice_ last week to a female friend really close
to me. I've always been for gender equality in the work place but now I'm even
more so.

------
ommunist
Even if the code looked crappy, I'd hire dev who shipped working code for
working products that people pay for. You know that rant about the premature
optimisation, right? Live example: I recently paid for small Twilio app
development to a guy who does not know what code management is. But the app
works.

------
pothibo
Blogging and open source is about giving back. And there's value in that.

You open yourself to criticism from peers. Working in a Fortune 500 company
doesn't tell me much about your coding skills, but it tells me a lot about
your political skills (Not meant as a criticism).

------
shortcj
We might be equal in an abstract sense; but in particulars we are very
different. If you are alien or opaque to me then the uncertainty about you is
a risk. Risk devalues.

~~~
ctdonath
Flip side: giving work away free devalues. Is your work valuable enough that
others will pay a tidy sum to own it outright? If your effort is not valuable
enough for anyone to pay for it, is it worth paying you for?

------
speeder
Anyone know how a developer in situation 1 can get a job?

I am a game developer, and many game companies have two qualities:

1, they demand lots of time.

2, they do either very specific work related only to their game, or they do
things that can be re-used, but then this mean it become very valuable
internal tech and must NOT be shared with competitors.

Currently my lifestyle is: wake up, drink tea, wear something, go to work.

Arrive home, take a bath, eat something, sleep.

In saturday it is: wake up, clean house, wash clothes, do all other home
chores, leave to see SO.

Sunday: return home with SO, cook a food for the whole week with her help
until it is night (I have only 1 cooking pot, meaning each dish must be done
sequentially, instead of parallel, also the kitchen is shit, IF I had several
pots, I still would be unable to use them), eat something, send SO away,
sleep.

I worry that if my current startup fail, I will spend another long time
unemployed, and since I have college debts that currently cost 2 times a
minimum wage here, this is something that I CANNOT afford (it is already 3
years that my bank account is either zero, or negative at the end of the
month).

Sometimes I do some check, prodding here and there to see if I can find work,
and I am not even invited to interviews, except by jobs with pay lower than my
university debt (ie: the pay is 1.5* the minimum wage, or lower... those
always want me working for them as developer, by the way, the minimum wage
here is about 300 USD month).

~~~
lazyjones
Sounds like you are way underpaid and not really happy with your current job.
You should be looking actively for better paid jobs that allow a healthier
life / more spare time, this is particularly true if you are worried about
your current company failing. If you are not invited to interviews at all,
there's probably something wrong with your CV/presentation, try to identify
and fix that.

~~~
speeder
I am actually overpaid for our standards. This is because I am associate of
the company, and thus I can get whatever I need... The thing is, what I need
(mostly thanks to student debts) is still more than what most companies here
would pay to a programmer.

------
tferraz
there are a ton of software application that do not go well with github. Mr
Johnson should have put a scope in his posting explaining the very very very
very limited field his opinion is valid.

~~~
sli
The article is about why this type of thinking is _not_ valid.

