Hacker News new | ask | show | jobs
by git-pull 2527 days ago
Don't give coding quizzes if they can provide better evidence of their ability.

It's unfair in the least, rude at the worst to pigeon-hole "senior" programmers into scenarios / pop quizzes.

Let them show off recent personal projects. They'll probably have no problem spending a weekend hacking on something they're passionate about.

Be a serious employer:

Convince the best programmers (whatever that means) why they should reorganize their life around your business:

- Pension plans / job security are nice. It's a good motivator to know that there will be an annuity when they're 60 / 65 and would rather spend time with their family.

- Union contract (or something comparable) or a labor system with robust employee rights and unemployment insurance. It's pretty unfair in the US with at-will employment.

- Have strong financials. Be a business that'll be around in 10 years. Can your business keep paying employees if it's in the red for a year?

If you don't offer the above: Why feel deserving of the best?

I'm being facetious on the above points: It's tech, it's a fast cycle and inherently unstable. But when orgs talk about hiring - it irks me to see the entitlement employers have when they have little investment in the welfare of employees as persons (and families)

7 comments

> They'll probably have no problem spending a weekend hacking on something they're passionate about.

I would much rather a coding quiz than be asked to do something in my own time. It is already enough of an imposition on my time to go to the actual interview, without there being homework too. Being expected to have already done side projects is even worse; it effectively punishes me for spending too much of my attention on my employer.

Asking senior devs to write simple code in an interview is, I would say, distasteful but necessary. Some "senior" devs don't seem to be able to code at all. (That's why the fizz buzz challenge was created; it was never aimed at junior devs.) Of course more advanced challenges might end in a trick that you might not notice in an interview, or you might even make silly mistakes. But that's all OK so long as there is sufficient understanding of that by the interviewer, and so long as (this is really key) there is enough discussion about your thought process.

Edit: I just re-read your post and realised you're just asking for the option of showing off a side project, rather than it being compulsory. That's definitely not so bad but it still seems a bit unfair on those of us that don't have time for it.

I rather spend 4 hours doing a project where I can demonstrate my value (architecture, clean code, design patterns, etc) than spending the same 4 hours solving questions on a whiteboard.

Hell, most of the value I bring as a senior is well outside the realm of coding.

I'd maybe do one project like this for a top tier company, but most companies that do this are limiting themselves to the already unemployed who have the time, if you want to pull people from other companies you need to minimize their time investment. Remember it's not just a 4 hour project, it's 4 hours * the number of companies applied to. I'd also argue that you can't show off things like architecture and design patterns in such a short project, all you can show is that you're over engineering.

I've also been burned before, getting dinged for "not practicing TDD because the tests and fixes are in the same commit", there can be just as much arbitrary BS as a simple short code test.

None of these things are perfect - I agree with you about quizzes and the like.

> Let them show off recent personal projects. They'll probably have no problem spending a weekend hacking on something they're passionate about.

Nope. Not spending my weekend fooling around to impress some potential employer. I'm going to spend it with my kids, riding my bike, and enjoying life.

>> Nope. Not spending my weekend fooling around to impress some potential employer. I'm going to spend it with my kids, riding my bike, and enjoying life.

Okay, it is time for some harsh love. You won't like it, and I'll get downvotes, but whatever. It needs to be said.

My parents are both doctors, and they are in their 60s now. And you know what? They still work their asses off, on many evenings and weekends, trying to stay up-to-date with new developments in their respective fields. My dad just got back from an ophthalmology conference in Europe. My mom is a guest speaker at a pathology conference and she has been preparing furiously. And it has been like this _all my life_.

So yeah, I detest this sense of entitlement that programmers have, where they want to a) get paid a lot and b) have lots of free time on the side. How about this instead: if you want to have a high salary, then it is reasonable for people to expect you to make certain sacrifices, such as work on your own projects on the side experimenting with new technologies and ideas. Don't like it? Well, it may be time to pick another profession...

I’m not sure that the lesson to be learned from the medical profession’s overburdening of its professionals is that other well paid industries should follow suit and overburden their own professionals.
Is the medical profession unique in that way? Do lawyers not need to keep up with existing legislation and case law? I know research scientists that use alerting tools for getting notified about publications covering their subject.
Sure, I just used medical as the example because that’s what the parent comment talked about. There are many other industries with problems maintaining a good work/life balance for people who work there. Often those gigs are lower paid than tech work. I worked many more hours and had a more stressful, less predictable life when I worked at a nonprofit, before I became a developer. Now I mostly work 9-5, sometimes an extra hour or two here and there but no expectation that I’m doing stuff outside of work. I have some side projects, meetups etc that I spend time on, but can also spend time at work learning new things or trying stuff out.
Then salaries in our industry need to decrease if we don't want to be held to a standard of overburdening ourselves.

The salaries in our industry have a precedent which was set by individuals that overburdened themselves. That might have been irrational, but if we want to change that, then we need to accept less pay. We can't have the same rewards as they did while doing less work, even if the amount of work they did was unreasonable.

We aren’t being rewarded for how hard we work, we’re being rewarding for having skills that are in high demand while supply has not caught up yet. Salaries may well go down in future when the need for developers is less or the pool of talent is bigger. We also aren’t trapped by the examples set by previous developers - our productivity varies depending on what we are doing, the tools we are using, what our team is like, etc - not just the raw number of hours we put in.
Nonsense and worse words. It's a market. Undervaluing ourselves only hurts ourselves.

The net revenue per software developer at any even moderately successful tech company is so eye-poppingly high that demanding a solid cut of it is still a bargain.

> So yeah, I detest this sense of entitlement that programmers have, where they want to a) get paid a lot and b) have lots of free time on the side.

That mentality reminds me of the 2014 commercial for Cadillac ELR Coupe: https://www.youtube.com/watch?v=xNzXze5Yza8

It's not entitlement to want work-life balance and be paid well for your skills.

Start paying me doctor money and I'll do all that stuff.

I'm currently under a wide intellectual property assignment that would cover 'side projects' so I don't really do them as I'm not giving away my ideas for free.

> I detest this sense of entitlement that programmers have

I don't agree with all of your post (but do some of it). However at the pace companies are expanding their hiring net, the supply and demand ratios are going to flip sooner or later. The current seller's market isn't going to last and a lot of folks will have a serious reality check.

How do companies expanding their hiring net decrease demand?
They don't? Demand is increasing.

However as the sources for software developer expand (and the barrier for entry goes down, along with more people going into the field), the availability is drastically going to outpace it.

We had a very short period of time where even entry level engineers with no CS degrees had companies begging them to join them, but that's quickly going away, and its slowly creeping up the ladder.

If you're a principal engineer or even "only" a senior one, you're likely still at a point where you have people trying to woo you every single day. That's not gonna last.

Do hospitals expect doctors to work on some patients for free over the weekend to see if they're worth hiring?

I'm guessing no.

Hospitals don't expect that and the reason is obvious: the medical field is highly regulated, and you need to go through nearly a decade of grueling education and training before you earn your medical degree.

Programming could not be more different. Not only is our field as unregulated as fields can go, but the hiring pool is also full of self-taught developers. Therefore, yes, it is in fact reasonable to have people go to great lengths to prove their skills to potential employers.

Hospitals expect doctors to have up to date skills, whether they learned them on the job or in their "free time". Doing medicine on a person and writing some code that will never be used in production are not really comparable.
To me there's a difference between

* Keeping skills up to date and occasionally spending a bit of my own time on it. And I mean legit new and interesting things, not just some BS rehashing of an old idea or other churn.

* An emergency situation at work where some extra time and dedication are required. I'm not going to tell the company that I couldn't be bothered to fix the web site that's down because it's 1715 and I'm heading home.

* Professional conferences or learning that might take up some extra time outside of work.

* Doing some random BS over the weekend.

That's more the profession demands it and those seminars are mostly in working time I actually got asked to goto such a seminar as an example of a rare expression of Sarkoidosis.
Why do they not certainly in the UK Doctors have both good leave entitlements (and fabulous DB pensions) and can legally work on the side.

And the pay for a senior Doctor is what 4 to 5 times what a senior developer would get

In the UK, developer pay is quite low. In the US, devs are much closer to doctors in pay, and can potentially earn more than most doctors.
Technology’s main usage/promise is to make us all more efficient and rid us of the dependency on pure time & effort for outcomes. It’s like the definition of work smart not hard.

Personally I think this is why you see a ton of people who live and breath tech think in terms of low time, high impact.

High impact should equal high compensation.

I'm going to add my thoughts in agreement, mainly because I see the following sentiments fairly commonly:

1. "Coding quizzes" are arbitrary and unfair in a technical interview!

2. Take home projects as part of the interview process are unfair because I've got a busy life!

3. No, I don't have lots of side projects to show because I've been working for the past 15 years and all the IP I've worked on is owned by my current/prior employers.

To add to your harshness, if all those three things above are true, (a) maybe you're not as good a developer as you think you are, and (b) as someone who has done a lot of hiring, I am certainly able to find folks who will (pretty enthusiastically, I'd add) fulfill at least one of those tasks (i.e. in-person coding questions, take home problem, or extensive existing personal projects/open source), even in today's competitive market.

The sentiments you presented there are extremes, just like your own position is the opposite extreme. The reality, as usual, is somewhere in the middle:

1. Even the best designed and well thought-out coding quizzes are not guaranteed to be a good predictor of the candidate's abilities. And that's when we're talking about the best. A great deal of coding quizzes currently in use are things interviewers came up with because they had to come up with something. So I guess the real sentiment is: coding quizzes need to be crafted and used better.

2. If you use take-home projects in your interview process, you'll invariably be filtering out people who value their free time, regardless of their skills. Put yourself in your candidates' shoes. A typical hiring process is already quite involved. Your candidate has to set aside the time for a recruiter chat, phone screen, a meeting with some of your team, etc. And the vast majority of devs don't get any overtime pay. The bottom line is that free time is extremely valuable. If you're asking your candidates to spend a weekend coding a project for free, be prepared for a whole bunch of them to lose interest and go looking somewhere else.

3. Yes, it's quite reasonable that a candidate with 15+ years of experience doesn't have any side projects to show. I've lost count of things I've played and fiddled with, and then abandoned, because they're simply not good enough to publish. Not to mention that your responsibility for your code doesn't end when you publish it. You're expected to maintain it, keep it documented, bug free, etc. A candidate might not have anything to show because they're "not good enough", but they also might be a mature and responsible dev.

I don't doubt that you've done a lot of hiring and that you're able to find candidates to suit your requirements, but don't fool yourself into thinking that there isn't a whole bunch of bias baked into your process. The fact that this bias isn't hurting you right now should make you question whether today's market really is as competitive as you think.

As long as it's not a requirement or expected, I think it's fine. If someone has side projects they're proud of, I think it would be helpful to both parties for them to be brought up.
Oh, sure; side projects that people have worked on for fun over the years are a good thing to have and should be a potential avenue to show off one's abilities.
This drives me crazy. I gave "you" my GitHub with a variety of open source contributions, but instead of looking at it you wait until you've flown me in to give me a timed coding puzzle on an unfamiliar laptop.
Pretty much how facebook hires. Except there's no laptop, just a whiteboard a bunch of weirdos judging you for not being a total freek-looking weirdo.
There is a big difference between joining a startup in growth phases vs an existing player.

* Startups have less with financials, but more with growth. Stock options are a big deal, as you are betting on that growing. It is a gamble, but it can pay off...or go no where. * Existing players need the 401k with matching and other incentives. There is often very little growth there, you need the long term investments.

But I really have no idea why I need a union contract. Dealing with HR is bad enough, now we have to throw in another dump-ass manager into the mix?

Union?

If you’re one of the best, why would you want to be equalized with your peers?

No way I would want this. Why is it my problem that some introverted programmer can’t get themselves together enough to throw together a portfolio, some OSS contributions and ask for what they’re worth?

Because outside US, unions are not about only salaries, rather about being treated as human being while at work.

And it may be surprising to US mentality, that they are for all people on the company, from the janitor to the 10x coder that is now recovering from an accident, instead of trying to sue someone to get some income back.

A major issue with the labor movement in America is that folks only join a union when they are weak and/or threatened by bosses.

The best time to negotiate is when you're strong, it amazes me that big tech was caught colluding to depress wages and nothing occurred in terms of a labor movement.

Many industry wide issues could be addressed through collective bargaining: age discrimination, training material, a strong voice to counter tiered voting shares (cough Facebook), guaranteed ergonomic tools, the list goes on.

But if you’re one of the best, oss contributions, speaking engagements, you have plenty of leverage.

No need for the collective power, you set your own individual terms.

None of the items you have listed are enticing enough for me to forego 30% so that the collective are equalized. I am my own responsibility. You are your own.

My own experience as well as discussing with various leads at other local businesses tell me about 50% of candidate will hard pass take home projects.
Well, it just depends on whether those 50% that take a hard pass are more or less likely to be quality candidates in the first place.
And that's not counting one the ones who didn't apply
Except the “have them show off personal projects” route can be discriminatory. At least by giving people standard questions/puzzles your team (hopefully) determined as being relevant you are giving everyone the same chance at success.
I think it's important to clarify what you mean by "discriminatory". I think many people equate that term with "criminal" and I'm not sure if that's what you meant to imply.

After all, to discriminate can also mean to accurately select the good programmers from among the bad.

The law (which varies by country) says which things you are not allowed to discriminate based on, but after that it's up to the employer, is it not?