LESS 1.0 released. Rewritten in Treetop, now with namespaces & accessors - <AUTHOR> http://lesscss.org/index.html

<comment><AUTHOR> So I decided to rewrite it from scratch, using the awesome Treetop parser for ruby. The implementation is now much more robust, and should handle change and new features much more smoothly! Mixins can now be namespaced, and you can access arbitrary properties in the style-sheet, through hash-like syntax.

Treetop, being a PEG parser isn't as fast as regexes, as you'll notice, but it sure is worth it. Work is being done though, (in particular by Jason Garber) on speeding things up—and LESS comes bundled with an optimized version of Treetop, so fear not!

Last but not least, 'refresh your browsers!' cause we got ourselves a tasty new website, courtesy of Dmitry from usabilitypost.com

</comment><comment><USER2> What's the difference between Less and Sass?

Don't both almost similar syntaxes and do the same job?

EDIT: For anyone else who also want to know more about these two, here's a blog post by Nathan Weizenbaum, the developer of Sass. <http://nex-3.com/posts/83-sass-and-less>

<comment><AUTHOR> LESS uses CSS's syntax, so they are quite different in that respect, the 'about' section on the website has info on this.</comment></comment>


Tell HN: Please consider making an app for the less saturated markets. - <AUTHOR>

Hi fellow hackers,
If you are pondering what to work on your next startup, please consider making an app for the less saturated markets. PG recommend them it. See;-
http://ycombinator.com/rfs.html http://ycombinator.com/ideas.html
ps: please dun make anything todo list tool. <comment><USER2> I sometimes wonder how many people do startups focused on helping other startups. Or build applications that help people who build developers of applications. Yes you are scratching your own itch. But you're also building something for people who could build it themselves. You're asking to have lots of competition.

You're also taking on things where there is the least need. There are millions of markets and people who have problems. Most people can't code, they can't solve their problems, they can't build something of elegance and utility.

Focus on something you know well, but which isn't startups or programmers do for themselves.

</comment><comment><AUTHOR> Some ideas to get the ball rolling.

\- Build connectors to hock up existing time tracking apps to open source ERP system like Openbravo ERP, Compiere.

\- Build move-to-competitors connectors to help companies/enterprises to move from Product A to Product B or a open source project.

</comment><comment><USER3> When I was describing my project in my YC application, I didn't realize it could work for two of the ideas that they wanted to fund. Too bad I didn't click the button in the application.

I guess I read that list in December or January and never looked at it again.

</comment><comment><USER4> I haven't seen the ideas page, thanks. I found 2 ideas of mine there :)

</comment><comment><AUTHOR> typo: i meant please dun make another todo list too.</comment>


Hybrid Bank Account (2017) - <AUTHOR> https://www.jefftk.com/p/hybrid-bank-account <comment><USER2> Banks are a means to bridge safe-money to risk-having investments.

People with money in the bank do not want to open up their phone to see their bank balance has gone down by X%. People are okay with balances going up, but never going down. Thus banks are offering consumers a risk-less return.

Banks do this by themselves investing in a broad & diversified set of investments. The baseline is government bonds. Next comes government backed home-loans. Finally banks lend to businesses or investment loans. Everything beyond the government bonds requires the bank to take on the risk using their own money.

If you want to offer a "bank" account which exposes their money to risk, what you have invented is a brokerage account. Allowing people to auto-sell their investments is widely considered a bad idea because it leads to regular people leaving and entering the market often. It means incuring transations upon every purchase, and fails to help regular people with their fears.

The number 1 issue facing regular people is a lack of starting-to-invest. The number 2 issue is regular people attempting to time the market, which the surveys show they will do at the worst times.

Trading off issue #1, for issue #2 is an interesting question. I suspect the net result will be worse for consumers. They will see their balance dropping by hundreds of dollars a day on bad days, pull out, then panic buy in the next day.

In the real world such a bank account cannot be offered by a bank, as it is not a bank account. Banks already "invest" all the regular bank account money, the issue facing regular people now is that the world's risk-less rate of return is approaching zero. As such any such auto-investing "bank" account is going to be regulated like the brokerage accounts, at which point we've failed to solve issue #1, the hurdles stopping people are the same open-new- brokerage-account hurdles.

<comment><USER3> This is a fantastic comment.

I think the end result is maybe more banks should have more brokerage functionality, as the line between brokerages and banks blur, but you need top notch UX to do this to communicate what is checking, what is FDIC savings (and when you have "enough" cash equivalents on hand to start filling other accounts), what is prime money market, and what is investment grade bonds and equities (in that order of investment operations; for argument's sake, let's just call it VTSAX total market). Throw in a line of credit underwritten by your income history and credit file if you want to shoot the moon; this would avoid selling investment assets to bridge between when you're short and your next income event.

You're essentially creating a roboadvisor for personal finance, constantly optimizing based on your income, expenses, cash on hand, and liquid/semi liquid assets. I would love such a product. Reminds me of what BankSimple could've been before the BBVA exit.

<comment><USER4> In that case, why don't you get a regular brokerage account with cash management features? For example Fidelity offers a cash management account that can automatically withdraw from a linked brokerage account. It can also move balances above a certain threshold back into your brokerage account.

<comment><USER3> I have this account. It's okay, but doesn't meet my entire wishlist (I admit it gets somewhat close!). PNC also has something similar without the brokerage functionality called "Virtual Wallet".

<comment><USER3> Reply due to edit window closure: Looks like M1 Finance is exactly what I'm looking for and describe.

</comment></comment></comment></comment></comment><comment><USER5> Most people on HN who are optimizing interest/etc to the penny, and I count myself among this number, have a hobby with similar economic returns to World of Warcraft but poorer graphics. The biggest lever you have available, by orders of magnitude, is optimizing the returns to your career or business. That disclaimer out of the way:

One of the folks who works at M1 Finance pitched me on the following, for folks who have similar cashflow characteristics to the median HNer. (They've essentially productized this, and with slightly more work you could get it out of Interactive Brokers. It's hard to do with most discount brokers due to prevailing margin rates.) It captures most of the advantages of the "hybrid" account and is actually available in the status quo, which is an advantage.

Deposit your paycheck. It is automatically invested. Spend on margin; repay it the next month on payday, when you repeat the cycle. Change this only if you experience long-term unemployment, which you a) probably will not and which b) savings is the least effective financial product to prepare you for it.

Their theory is that the ~3% impact of margin is less than the fundamental return of an equity-heavy portfolio measured in small increments over a long period of time, so you should prefer to be perpetually ~100% invested in your taxable accounts rather than "materially less than totally invested", which is what most well-paid professionals are given usage of a checking account and poor decisions embedded in their financial products. (e.g. If you have $50k net worth, $8k in post-tax payroll per month, and are saving $2k per month, you're no higher than 86% invested and if you are following common financial advice you with a six month buffer in a non-investment emergency fund you are ~24% invested.)

This sounds strikingly plausible to me, for what it is worth, again contingent on one being a well-compensated professional with predictable cashflow in and out and a temperament amenable to discipline and commitment. It is not not not not the consensus of advisors to the American middle class.

<comment><USER6> Very intriguing. Thanks for sharing.

Sounds like what M1 offers is indeed very close to the "hybrid bank account" described by OP. Official statements from their website [1] reveal their hybrid nature:

> _Securities in M1 Invest accounts are insured up to $500,000 by the SIPC._

> _M1 Spend checking accounts may be insured up to $250,000 by the FDIC._

[1]: [https://www.m1finance.com/](https://www.m1finance.com/)

<comment><USER5> Most of the top discount brokers either own a bank or have a sweep arrangement with banks, specifically to get FDIC insurance for large cash balances, _which you do not want to have._

The specific things M1 offers that make them close to this blog post are a) low margin rates (3~3.25%) and b) autoinvestment of deposits (including payroll deposits), which is _grumblegrumble_ rarer than you'd guess.

</comment></comment></comment><comment><USER7> This is common (in principle) in Australia and the UK. Functionally you have a mortgage account and then an "offset" account that is automatically deducted (ie reduces) from interest payments.

More sophisticated accounts also include unsecured credit (credit cards). But that's less common. Most just opt for automatic payments from the offset.

</comment><comment><USER8> Many banks (I'm thinking Capital One 360 here) will give you a line of credit at (reasonable) daily interest. Very useful to keep a low balance in your 'transactional' checking account and let it dip temporarily below zero for a few days at a time, paying a few cents to a dollar in interest for the privilege.

</comment><comment><USER9> So you make a big purchase that drops you below an arbitrary number, and your portfolio is immediately liquidated? No thanks.

<comment><USER10> It wouldn't liquidate your entire portfolio, just enough to cover your spending.

</comment></comment><comment><USER11> The investment / checking side sounds very much like a normal sweep-account setup: [https://www.wikiwand.com/en/Sweep_account](https://www.wikiwand.com/en/Sweep_account)

Commonly available where you have business or high-net-worth accounts.

The credit side is basically an overdraft, and having overdraft protection today does the moving of funds around that he alludes to.

</comment><comment><USER12> I have an account like this. It's my ETrade account.

When I have a negative balance, they charge me interest. When I have a positive balance, they sweep it into a low interest investment. And when it gets really high it buys ETFs for me (which are then collateral for when it drops if I don't sell them for cash first).

<comment><USER10> Can you use it like a regular bank account? The two main things I'd want from it are the ability to use it for paying bills (credit cards, mortgage, utility...) and writing checks.

<comment><USER12> Yes. It has a debt card (and checks!) and it has bill pay. I pay all my bills from it.

</comment></comment></comment><comment><USER13> Pretty much the Schwab One account. I have a checkbook and can write checks against what is basically a brokerage account. (They wouldn't support negative balances, though.)

[https://www.schwab.com/checking](https://www.schwab.com/checking)

<comment><USER14> > They wouldn't support negative balances, though

Withdrawing from the brokerage account when there's no cash in it automatically creates a margin loan, so it does support a negative balance. You can also set up automatic investments. I think Schwab Bank is exactly what was requested.

</comment></comment><comment><USER4> > It can be hard to predict when charges will hit your bank account, so > managing this manually generally requires leaving a buffer to be sure > everything will be accepted.

Even when you have a single account, don't you also need to have a buffer that's solely invested in safe assets, like bank sweeps or treasury bills or money market funds? If you can't predict when charges will hit your bank account, and you definitely can't predict the stock market, what happens when a big charge unexpected hit when the stock market tanks? What if that big charge was actually fraudulent and was refunded a week later, but the stock market has soared?

<comment><USER10> If your net worth is low enough that this would be a major problem then yes, this wouldn't be a good product for you.

For people with higher net worth, constantly having a buffer that is uninvested loses you more money in expectation.

</comment></comment><comment><USER15> The bank I use in Norway, Sbanken, allows to to agree an overdraft facility, and also to skim money off the current account into a high interest account so that, for instance, you never have more than 20 kNOK in the current account. Together with the ability to buy and sell funds and stocks via the website or app or automatically every week or month means that you can get most of the same effect fairly easily with a little bit of manual work to top up the current account from the high interest account when necessary.

</comment><comment><USER16> I can kinda do this with my bank (a small credit union) with a feature called Recipes. Basically a Recipe is a IFTTT-like interface where I can say "if my balance in CHQ drops below $1k, transfer $3k from LOC to CHQ". Likewise when the balance goes over a certain threshold, I can pay off the LOC, or if that's all paid, transfer to mutual funds or what have you.

</comment><comment><USER17> I've had something similar to this - moved back to NZ, bought a house, decided to wait for a better exchange rate deal to move the rest of my $$, bank gave me a combined mortgage/checking/ATM account - at the ATM it started off with a large negative value, eventually became positive over time - didn't have the high value investment component though

</comment><comment><USER18> Egg experimented with the first two of these features in the 1990s UK: [https://en.wikipedia.org/wiki/Egg_Banking](https://en.wikipedia.org/wiki/Egg_Banking) No idea what happened to the idea, but neither the product nor the company exist anymore.

</comment><comment><USER19> A negative balance is a dunning notice with a demand to pay. A modest positive balance is a coffee can or cigar box stuffed with cash and hidden under the bed. A large positive balance is an enticement to play the numbers or bet on the horses. None of these things is like the other...

</comment><comment><USER20> Back home in India, some of the banks already offer such hybrid accounts, tied to a mortgage.

As you keep putting money into the a/c, so much is reduced from the outstanding principal when calculating interest for that much period.

Even more surprising, this is one of the state run banks (State Bank of India).

</comment><comment><USER21> Auto-investing? No thanks, I like my investments modular where I can fire them if they don't work

</comment><comment><USER22> I know a fintech startup founder already working on precisely this

</comment><comment><USER23> How about when it goes negative invest in Tesla?

</comment><comment><USER24> Sounds like an all-in-one mortgage. [https://www.investopedia.com/articles/mortgages-real- estate/...](https://www.investopedia.com/articles/mortgages-real- estate/08/offset-mortgage.asp)</comment>


Amazon Hit by Extensive Fraud with Hackers Siphoning Merchant Funds - <AUTHOR> https://www.bloomberg.com/news/articles/2019-05-08/amazon-hit-by-extensive-fraud-as-hackers-siphoned-merchant-funds <comment><USER3> The interesting part to me is that amazon gives out loans to small businesses. I never knew that. I'm curious how amazon will handle the situation. Will the merchant be required to pay back the stolen loan funds?

<comment><USER4> Amazon's in the perfect position to give loans to their sellers. They have all the data in the world about how a seller is doing on the platform, so why not make some (relatively) safe money off interest and boosted sales?

<comment><USER5> Loaning money to their merchants allows their merchants to buy more inventory to ship to Amazon to sell. Thus Amazon benefits by making more sales, too.

<comment><USER6> It's crazy really, they loan the money they would in the past have to use to buy stock, but they also don't have to pay for warehousing (straight away).

Presumably it helps with inventory management too - like the loanee indicates the inventory they're buying which means Amazon can factor that in.

Then they charge interest ...

However, whilst this sounds good for Amazon, is it more efficient - <USER2> economic terms - or does it just reduce Amazon's risks and costs.

</comment></comment></comment></comment><comment><USER7> My partner recently had her Amazon account comprised. The scammers ordered a "random" pair of white socks for $20 that showed up at _our_ door.

Since the fraudsters never received the package I don't think they gained anything directly by stealing from my partner's debit card. So that made me think, how could they be gaining from this? I'm assuming some unscrupulous merchants or "marketing consultants" are using this kind of fraud to boost sales for themselves or their clients.

<comment><USER8> Or the merchants are the scammers. That's $20 for probably $5 of raw product. Even if the merchants are paying the scammers a portion, that's a good profit.

<comment><USER9> You'd need high volume to make it worthwhile and the amount of chargebacks leading to one merchant would make them look pretty suspicious.</comment></comment></comment>


I will not hack on your codebase for free in an interview - <AUTHOR> http://hownottohireadeveloper.blogspot.co.uk/2013/11/no-i-will-not-hack-on-your-codebase-for-free.html <comment><USER2> Too aggressive in tone for what the gripe is here. I wouldn't hire this guy. Several of you long-time participants on Hacker News have noticed various iterations of my FAQ post on company hiring procedures,[1] and if you haven't read that, I invite you to follow the link and read it. Genuine work-sample tests are a GOOD idea in hiring, as most of the comments already here have said. Perhaps a full-day work sample feels too long to most job applicants, compared to a one-hour work sample (but how much would paying each applicant help with that?). There are also intellectual property issues here (but doesn't freedom of contract in most countries allow a way to resolve that issue?). But he doth protest too much, methinks.

In any job application situation, the company's concern is "can this applicant really do the job and do it well?" The applicant's concern is "will I really find a good fit in this company and advance my career here?" In general, a work-sample test is a very good idea for answering both kinds of questions, and anyway research shows that a work-sample test is a far more valid hiring procedure than most other hiring procedures that have been tried. Check my FAQ link for research citations on that topic.

[1] [https://news.ycombinator.com/item?id=5227923](https://news.ycombinator.com/item?id=5227923)

P.S. Yes, I intend to touch up my FAQ draft some more and then post it to my personal website. I just bookmarked the blog post kindly submitted here as another resource to refer to as I update my FAQ.

AFTER EDIT: I'd be happy to discuss with readers who disagree with this comment what the nature of your disagreement is. That helps me learn to make the FAQ better for its next posting on my website.

<comment><USER3> Surely the disagreement should be obvious? If they interview 50 candidates and get each candidate to do a free day of work, they're exploiting the candidates and the market.

As others have said, there is no reason not to let the candidate work on related OSS projects or on already solved tasks. Adding new features to a code base for free is not on. This is like hiring labor for your bridge building company, getting 50 people and having them drag rocks around all day and then not paying them. Feels close to illegal.

<comment><USER4> > Surely the disagreement should be obvious? If they interview 50 candidates > and get each candidate to do a free day of work, they're exploiting the > candidates and the market.

If the application is so simple that you can get actual productivity in someone in the first couple hours then stop trying to hire candidates and outsource the entire thing to India for a fraction of the cost.

Otherwise it's a pair-programming test with massive hand-holding from another developer which is ridiculously more expensive for the company.

I'd choose to spend a few hours on the employer's actual application over any other form interview.

Obviously there are extreme cases (hey we'd like you to spend a few weeks working on this API, you know, for the interview), but I don't get that vibe from this article.

<comment><USER5> Right. If the application is easy enough to define that someone completely new can code it up in a day, they can just send it to India and be done with it.

This isn't like a comic book company asking job candidates to submit a page of a script, where they can just use it as is. Software is a very living product and you need live people maintaining it.

I do think that companies should consider paying a candidate a few hundred bucks to spend his whole day with you. This doesn't change whether he's working on "open source stuff" or the company's product they are selling for money.

 _EDIT_ tldr: they should have paid him for his _time_ not for his _product_

<comment><USER6> On what planet is there a tradition of paying for the time spent in an interview? The writer of the article knew it was an interview, and presumably knew approximately how long the interview would be.

<comment><USER7> He knew he was in an interview for sure, however the terms have changes as soon as the lead developer asked him to code in the current application in order to test his skills.

Lets put this way, you are interviewing for a Car Sales position, you get to the my store and I ask you: Hey, today you gonna spend the day selling cars, it will be our test, and then you sell as many cars as you can for free.

Do you still consider this, part of the interview? Keep in mind that you are bringing profit to my store.

</comment></comment></comment></comment></comment></comment><comment><USER8> You know what? I _wish_ companies let me play with their codebase in an interview. At least then I could see how much truth there is to all the "yeah we totally have a great automated test suite and build process" I get told during interviews.

A whole day is unreasonable, but I'd jump at the chance to do what TFA describes as "free work" for an hour or so.

<comment><USER9> I wish I could have gone back in time to look at a codebase before saying yes to a job. I wouldn't have taken it had I seen it.

<comment><USER10> I would hate to find myself in a situation like that, but bad code isn't the only thing to look out for. I would dread finding out 80% of their code came from open source and that they made it a point to not contribute the changes back to the community. This would really rile my feathers. Particularly if they asked applicants about their open source contributions.

</comment></comment></comment><comment><USER11> So here's the problem:

1) A great way to assess your technical chops is to watch you code.

2) A great way to see if you can do the actual work that you'll be expected to do on a day-to-day basis is to work on a real-world task on the team's actual codebase.

3) If you have what it takes, then it's crappy to have you "work for free" for a day. But if, after the day's over, it's clear that you don't have what it takes ... then have you really "worked for free"? (Remember, freelancers don't get paid unless they deliver.)

Here are some ways to address this problem:

1) Do paired programming on the actual codebase -- but on an old problem, the solution to which has already been implemented in production. This makes it clearer that the exercise is merely to assess your skills and not to get free labor out of you.

2) Pay all in-person interviews for their time. Once they've passed the phone screen and whatever other preliminary hurdles you've set up, you should feel pretty good that they're not just wasting your time. So compensate them.

3) If you don't have the budget to do #2, which -- let's face it -- is uncommon, then perhaps you could offer a signing bonus to anyone you end up hiring that essentially repays them for their time.

<comment><USER12> This topic comes up here all the time and I'm always shocked to see that this is even considered as a hiring practice and I'm surprised it's not outright illegal.

This problem exists in every field and for every kind of job. Nobody takes seriously the notion that a book-keeper candidate should do your accounting for a day to see if they should be hired, or have a contract manager negotiate a contract for a day for free, or a designer design for you for a day. So why are developers freed from this?

Because it's feasible for a developer to sit down in front of a terminal for a few hours and start hacking away?

Here's part of the problem from the candidate PoV

1) It's slave labor (obvious) and opens you up for a never ending series of small, but annoying lawsuits if you don't hire the candidates.

2) Candidate doesn't know if you're serious about hiring, or just doing a cattle call. There's a lot of reasons companies do this, but it's a practice used by some very well funded startups that wastes unbelievable amounts of people's time and is like a cancer in the industry.

3) Candidate likely has plenty of other irons in the fire, and your company isn't a special snowflake. If they're currently employed it's even worse as they have to figure out how to take time off of work to waste doing free work for somebody else. Now let's say they have to do this for the 20 companies they applied to, that's a month off of work!

4) Development on complex codebases is hard, most engineering companies don't really expect a new hire to be very productive on their codebase for a few months at best. It doesn't actually test them on their day-to-day as much as anybody might think, because their day-to-day job function will rapidly change over their first six months as they start to wrap their brains around the work.

What _is_ appropriate?

1) Ask for a portfolio, open source projects, other work they've done, etc. Hopefully they have some kind of work history they can show off.

2) Irritating, but ask them to complete basic development tasks -- fizzbuzz is a good example. Surprisingly, most bad engineers will be stumped by surprisingly simple questions like "write a for loop" or "write a basic SQL query". If they pass that, ask more and more complex questions until they're at the level you need. You can usually figure out a candidate's skillset within 10 questions. But please, don't waste anybody's time with brain teasers and puzzles and other nonsense. Keep it focused and keep it real.

3) Actually have a conversation with the candidate. Plumb their knowledge. Ask them about various frameworks they've used, or languages they've experimented with or whatever. People who know their stuff can usually talk endlessly about their past experiences, people who don't can't and you end up with "well....C++ is nice, but Lisp is a great language!". Too many hiring processes forget this part of interviewing because it takes practice to get good at "interrogating". But it gets you so much soft information about a person as well.

4) With questionable candidates that you're 50-50 on, be open to offering probationary employment. 30-days, or 90-days or something. It must be well structured (weekly check-points, options to leave after the first 30 days, etc.), and you have to take it seriously. It's up-to the candidate if they want to take this or move on to other opportunities. If they move on, nobody's time was wasted. If they _really_ need something right now and they take it, you have some exit valves if they stink, and if they're promising you can adjust final employment one-way or the other.

5) Something I hated at first, but have come around to a bit is the idea of a take-home problem they can work on at their leisure. Perhaps a problem that wouldn't take more than 2-4 hours to work on. Why is this different then having them hack on your code? Because you can make it not-your actual code, and can use it to concisely test exactly what you're looking for. Plus they're not taking time off of work to do this. They can spit-shine and polish their response as much as possible and really show off if they want.

<comment><USER13> A voice of reason. I've had too much personal experience with bad companies and bad interviewing processes for my own good.

I think that #3 is spot on. Most companies AREN'T that special snowflake. Just like I would not tolerate a company with ridiculous demands, I imagine a company would not tolerate me. I'm not a snowflake, neither are they. This is a business negotiation between two parties.

As far as "what _is_ appropriate", you're spot on, too. I'd just like to add on some details per point from what I've seen:

1\. you can easily tell when a project is just NOT theirs. I've heard of people (from hiring managers that interviewed them) that copy (not fork!) someone else's projects and slap their name on it. If you're a programmer, you should see these stick out. If you're still concerned, go talk to them about the project. You'll learn a lot about their knowledge.

2\. Exactly. Just like you would not ask a mathematician to calculate if a train with thirty tons of coal is going at the speed of 70mph from NY to LA, and another train with sixty tons of radioactive material is going the opposite direction at 230 mph but accelerating at 3 mph...you know what I mean.

3\. This is the best point. You'll quickly find if someone IS or IS NOT knowledgeable about a subject. Not just by talking about the "top article on HN!" or some brand new framework, but having a conversation about work, problems they've encountered and how they've solved them, how they like to work etc. You learn not just about the person but a lot about their experience.

4\. i've never really seen probationary employment in practice but companies seem willing to do contract work or contract-to-full-time type deals. Sounds very similar

5\. Spot on. I find these annoying however, because I've been in a situation where I had 3 projects like these to finish. All of them small 2-4 hour projects but all to do over the weekend. I guess it wasn't that much of a big deal in the end and I do prefer this to any other type of "test".

<comment><USER14> Probationary employment is guaranteed for the most part here in Aus. Takes the risk out somewhat for both parties, especially considering it's harder to fire.

<comment><USER13> Well, there is a probationary period here (US) too but it doesn't make much sense employing 20 developers just to figure out which one you want to join full time.

<comment><USER15> Probationary also pretty much guarantees that you won't find the best programmers.

<comment><USER13> not necessarily. I completely expect the initial 30-60 days to be in that transitional/probationary timeframe (could also mean I'm not among the `best programmers`).

But to each his own.

</comment></comment></comment></comment></comment></comment></comment><comment><USER16> So I have gathered that these are some of the populations of developers:

1\. There is a class of people who will not do algorithmic interviews, who think they are puzzles and not exactly what a programmer does on a day to day basis.

2\. There is a class of people who think doing homework assignments makes no sense, especially if you have a full time job and this eats into your evenings.

3\. There is another class of programmers who won't work on coding projects because you may potentially be exploited.

For a group of people with highly specialized skills (who get underpaid when compared to lawyers and doctors), we do tend to complain a lot.

<comment><USER17> Don't forget the 4'th group, the class of programmers who refuse to put code on github.

I've gathered there is a population of "developers" who refuse to demonstrate the ability to code at any stage of the interview process.

(The OP is definitely not part of that crowd, given his willingness to submit a pull req to some open source project.)

<comment><USER18> Really? I am required to have an account with Github, to prove something?

In the real world, some of us work on highly proprietary code bases, where putting any code up online could expose the risk of future lawsuits or prosecutions, certainly this has already happened to individuals in the industry.

Thankfully in the real world there are some sensible and mature interviewers who are able to look beyond the heinous crime of not having a Github presence.

<comment><USER17> People who can't easily demonstrate their skills are always at a disadvantage relative to people who can.

For every one person who is great but can't publicize any of the good code they write, there are a lot of people who simply suck. Differentiating between them is expensive (read: hours interviewing the good candidate, many more hours interviewing bad candidates) which is why the people with a good github/bitbucket/ftp server full of code are at the top of my list. If they all bomb the interview, maybe I'll move down the list to the people who's skills are unknown.

This simple reality is why one should demand more money from employers who impose restrictions on what one does outside of work.

<comment><USER16> On the flip side, I have very rarely found an interviewer who has actually read through my github code. It is more like they are scanning through an imaginary checklist of 'has github account, has repositories in it' etc. The other day I got asked by an interviewer if I knew python. This was rather strange to me because we had just talked about one of my github projects ...which was an ml library for python.

My point is that if having a github account becomes a silly barrier like having an education from top school, it kind of defeats the point of being fair whilst also acquiring good people.

<comment><USER19> When I was the interviewer, the most useful lines to determining competency tended to be find github code, ask pointed questions.

As someone who is now interviewing for a new job. I've had three interviews this week ask pointed questions on github contributions including requests for me to change things on the spot ( or talk through a change that might occur).

</comment></comment></comment></comment></comment></comment><comment><USER20> Hey, I'd take the offer - you get to see if the coding style and the procedures used are even remotely what you expect.

I personally would never join a place still using CVS for source code management, even SVN is something I'd like to have a night of good sleep before accepting. Same for not having proper bug tracker systems.

Edit: Also, as the introduction to How Stuff Works will likely be done by a dev team member, this presents you with the ability to ask the _dev guys_ how the job really is, and not what a clueless HR idiot tries to sell you.

<comment><USER21> > even SVN is something I'd like to have a night of good sleep before > accepting.

Why's that? SVN may not be fashionable, but it's centralised, has ACLs and a hook system.

<comment><USER20> Because it will be a huge mess once you hit your first merge conflict or want to use proper branches. SVN is usable for source code management, but not really for efficient collaboration.

edit: And if the SVN server goes down / messed up by someone, you're essentially forced to sit around and staring into the sky. With git, all you may have to do is fiddle a bit with merging if someone did a git push --force. And if the server is down, you still are able to work on your own.

</comment></comment></comment><comment><USER22> Both of the posts on that blog just read as sort of bitter and sad to me. I'm sorry you can't find a job, dude, but maybe your anger management is getting in the way.

<comment><USER23> If the author was really being asked to implement features in a codebase that were expected to go live at end of day that's just exploitative and they have every right to be upset at being asked to do that for free.

<comment><USER24> But who offers to do a technical test for the entire day? For me, any interview going longer than an hour has some serious issues...

<comment><USER25> Compare to some actual technical tests.

A CCIE test has varied thru the ages but seems to have stabilized at an hour. I have no idea what an entry level dotcom would need with someone operating at that level, but it probably happens. The problem is at a CCIE lab test you're being evaluated by people more or less as good as you, but your average dotcom will be hiring you because you know more than them in a specific area not because they're smarter than you and they need to staff a team of underlings. probably. Maybe A / B teams or rotating pager duty with another CCIE. Maybe.

Look into the length of an oral PHD thesis defense. That's usually not a full day.

I would agree that in comparison to existing standards a full day is way too long.

<comment><USER5> Those are once-off tests. I didn't have to take an SAT for every college I applied to 5 million years ago, but I took one, and all the schools used the test.

If I'm looking at three places and each of them want me to sacrifice a day for the interview, that's a lot of my time, especially if I am currently employed.

</comment></comment></comment></comment></comment><comment><USER26> Just looking at his two blog posts, I think that the company's hiring practice worked perfectly and weeded out someone who _may_ be technically competent, but is toxic to the work environment.

His tone is aggressive and completely self centred - imagine trying to have a meeting with him where he sticks stubbornly to his opinion, refusing to listen to other opinions and potentially throws tantrums whenever he doesn't get his own way.

Secondly, the fact he refuses to pair program with a developer on the existing code base ' to see how he works within a team / on code - suggests that he probably would equally be unlikely to do anything outside of what he is technically being paid for.

I'm not saying anyone should work for free, but sometimes you have to help out, whether it's working a bit later or helping during a crunch time. He comes across like he only would want to work on things that interest him, during the hours he's paid and then be out the door.

I think the company that was hiring did a good job of filtering him out.

<comment><USER27> +1

Part of being a developer is there's going to be some crap I can't shield you from as your manager, despite my best intentions. If I think you are going to suddenly turn barrack-room lawyer on me, or tell me it's not part of your job, or anything other than deal with it professionally and helpfully, you're a poor team fit.

And if you understand so little about how programming teams work, and think that you are going to - with no context of the codebase or problem space - significantly improve my Senior Developer's work such that you're worth your contracting day-rate for the interview (and are paranoid to think that the interview is a big scam to get you to work for free) ... you're probably delusional.

<comment><USER28> Thing is, as an employee, yes you should be able to deal with having to spend unexpected time on something. As a job candidate, the equation is a bit different. There is no commitment from the company or the candidate to each other, and the candidate may never get hired by the company in the first place. So why should the candidate give the company a day of work for free? And if a day of work for free is fine, why not 2 days, or a week? Clearly there is some point at which a job candidate should not be doing free work for a company.

It didn't sound like the company was looking for the interviewee to improve on the Senior Developer's work, it sounded like they wanted the interviewee to develop new features for deployment in a pair with the lead developer. Not the same thing IMO.

Maybe the company wasn't trying to concoct a grand scam, but there are certainly companies out there that would think nothing of doing so. And even if the whole 'write some deployable features' for us exercise was not devised as a scam, it doesn't change the fact that it is a bit unreasonable to ask a job candidate to spend a day writing code for you.

The guy even offered to write code for an open source project but the interviewer refused. What does that say about the company?

</comment></comment></comment><comment><USER29> I had a similar thing happen to me when I was interviewing at companies right before graduating. One of the companies sounded like an awesome opportunity. They were willing to fly me out to San Francisco to interview me. However, the interview consisted of me doing 3 days of pair programming on their application.

After the initial shock of excitement I realized the cost to fly me out there was much cheaper than they could hire a dev for. I actually thought it was a pretty ingenious way for for a startup to get cheap work while raising money.

As some people have already suggested I think there are some good ways to avoid having to do this while still getting an idea for the candidate. You can offer to pay for their time, you can have them reimplement a feature you already have, or as the article suggests work on an open source project that one of the parties are familiar with.

</comment><comment><USER30> The last place I interviewed with set the bar pretty high as far as I was concerned.

After a pretty standard interview one afternoon, I got asked if I'd be willing to come back in for a couple of days to see if I got on OK with their current team. They made it extremely clear that as they'd be taking up a couple of my days, they'd pay me pro-rata for them whether I got the job (and chose to take it) or not.

If you're interviewing with a company that actually cares about the happiness of their employees, then they tend to make this pretty obvious pretty quickly. I would suggest that the ones who make it obvious are the ones you want to be working for.

</comment><comment><USER31> > _LD (frustrated): "But I need these features out in the field today. Anyway, > I don't see what the problem is, it's only a day's worth of work."_

"This is meant to be to assess my competence. They're gambling your deadline on either being extremely sure that I am going to be good at this job, in which case they're trying to get a free day's work out of me. Or they're taking a worse gamble on someone they're not really sure of, in which case they have no respect for you and by extension their workers.

Either way, you shouldn't be using work that actually matters to test new entrants; in the former case it exploits me, in the latter case it abuses you. So, given it's clear I'm not a good cultural fit to this company, I'm going to have to decline."

<comment><USER32> When they say "I need these features out in the field today", my response would be: "shall we reschedule the interview then?"

Don't waste your time on an interview when you've got a tight deadline. Make some time for the interviewee.

</comment></comment><comment><USER33> I can see how he would be annoyed to do a day's work, however I would potentially have compromised on an hour or two. I have _discussed_ , in detail, solutions to a company's technical issues as part of the interview process.

The interviewer may also have had no other way that they felt they could evaluate a candidate effectively.

However in defence of the OP, if somebody asked me to work with them for a full day I would also want paying for my time.

</comment><comment><USER34> I have heard that large publishers, like Time magazine, will commission artists to create covers for multiple stories. They may have up to 5 tentative cover designs for any publication, then they are free to choose (right up until press time) which fully-designed cover they wish to run.

The thing is - they PAY for each cover they commission whether they use it or not.

\----

My career began in graphic design. Many people try to get you to submit work and only the winner gets paid (or paid in full). I've had other 'take home assignments' or interview tests that they tell me to block off half a day so they can 'see my work' to 'tell if I'm a good fit'.

Don't be fooled by any of it - _good work != good workers_ , and it's much more valuable that they see how you work on their team than how well you perform in skills that can be taught.

I quickly made a simple rule: I do the work; I get paid.

@Hiring managers: If you want to see a sample of my work, and my past portfolio isn't good enough for you - pay me for a small freelance project before offering me a contract. It's low-risk, everybody gets paid and is happy, and if you don't like what you see, don't give me more work. It's very simple. Anything less is criminal (where I live).

@Devs: Only have two prices: _Pro_ , and _Pro Bono_. Nothing in-between.

 _Pro_ means there's no such thing as family discount, or friend discount, or a 'deal' on things. If the person knows you and wants you to be successful in life the last thing they'll ask you to do is work for less profit. See those selfish people for what they are. You should be happy to pay full price for anything, and it just makes it _better_ if you're able to support somebody you know while paying full price.

 _Pro bono_ means it's $0.00. You should always have at least one project on your table that you are donating your time back to the community. Ever use Firefox or Chrome? Linux? OS X? Android? You already understand the benefits of pro bono work in the open-source software community, but as a worker maybe there are ways you can give back to the community you live in as well. Find people who need your skill set and make a habit of learning new things while helping others.

If you don't do any pro bono work, it's easy to get caught in the 'discount delusion' and you end up trying to give up all your profit instead. Do pro bono, and then insist on the full (fair) price for everything else.

</comment><comment><USER35> This is one of those articles where I more or less agree with the author's content but absolutely detest the tone and style in which he makes his point.

He could have easily made the same point with far more calm and eloquence - why the anger and the tone that at least to me comes across as extremely arrogant?

</comment><comment><USER36> I agree with the principle that you should charge a day rate for a day's work. However, I don't agree with the author in this case.

For the author, this is an unusually genuine opportunity to see what the work is actually going to be like.

If the author feels that compensation for this time is necessary, they ought to confirm the salary would be at a level to cover the time-cost and risk of interviewing.

Asking for money up-front is (unfortunately) sending a signal that you need to be compensated early because you expect not to be employed as a result of your work.

</comment><comment><USER37> I've noticed a trend as of late with developer blogs. It seems that a bull market for developers has made a bunch of prima donnas of some of these folks. The point made is valid(dont work for free, and the interview process is broken), but seems he also felt the need to include all of the essential holier than thou blog techniques to make this point: \- a "mock" conversation that leaves the person in charge flummoxed \- use of the word "hipster" using this word is now kind of self parodying... \- inferences that he shares the love by contributing to open source \- use of the f word to drive the point home.

So I came away thinking this guy was a dick and probably difficult to work with, I wouldnt hire this guy even if he was the best developer Ive ever met.

That said, yes- the interview process is broken, there needs to be a better way to assess developers in the real world and not resort to trivia and "working for free". I think its been proposed here pretty often that a small short term contract is probably about the best way to be fair to both parties. The developer gets to show off what he/she is capable of, and doesn't have to give away IP for free. The company is protected by not having to make a judgement call based on how he/she answers programming trivia. The team gets to see how this person works and thinks about problems, especially if it is an in person interview.

</comment><comment><USER38> Umm, I WISH all of my past employers let me peak at their codebase, experience their development process, and pair with an employee before asked to accept an offer.

FWIW, I did a free "starter project" for my current position and it was completely awesome. Worked with many teams, learned a few codebases, learned the metrics/logging systems, and learned the true size and formation of the production environment. A+++, would interview again.

</comment><comment><USER39> A full day is unreasonable for an interview. But "working for free" for a while isn't. Of course they want to see you working on that particular codebase rather than some other code. And even more obviously you _want_ to jump on the opportunity to see the code. An hour or two of pairing is completely reasonable.

That said: shipping code written by a person being interviewed is nonsense. Either the person was assigned completely menial tasks which doesn't evaluate their skill at all, _or_ the manager is a complete nutjob that wants to ship features written by someone who has never seen the code before.

If the employer can't provide a person to pair with, and says you should spend an entire day coding features to go live immediately, it would actually seem like the employer believes interviews can be used as free labour. That idea is so stupid it is hopefully rare enough that it doesn't even deserve blogging/discussing. There are tons of useless interview procedures that actually deserve discussing.

</comment><comment><USER40> Personally, i'd be okay pair programming on a base. But there's no way I'd do it for a WHOLE DAY. If i'm unemployed... maybe, but if i'm just looking for something different. I'd never have the time to spend a day at an interview. These guys aren't sharing the risk evenly here. There are 3 scenarios. We both like each other, i get hired. I don't like them or they don't like me and I don't get hired. 2 out of the 3 scenarios end in a no hire. They may loose a small amount of productivity, but I loose a day.

</comment><comment><USER41> Personally, if it is a job I'm really interested in I would prefer to show my chops offering some free consultancy on an interesting problem, rather than answer daft hypothetical questions for an hour and a half.

But no, I wouldn't do it for a whole day.

</comment><comment><USER42> Imagine you apply for Google or Facebook, you know, a dream job undergraduates want to be in and they said "dude you can hack on this little ticket with me today and I will show you the codebase." I am sure in this case majority would say "fuck yeah let me see how good your codebase is."

Like many have said. One way to find out whether you like to work or not is whether the code looks interesting, how your co-workers work with you and what type of problems they are solving.

</comment><comment><USER25> One missing aspect in the discussion is its pair programming not here's a task see you again in eight hours.

I'd grill the heck out of my pair partner. Interviews go both ways and I hope I'd be paired with a real live employee not future supvr. I would probably learn more about company culture from that guy in 5 minutes than I could from management in multiple hours of regular interview. Its worth it to me.

I'd also look at it like an intrusion, uh, experiment. How much can I learn about this place in a day. Not being sneaky about it at all. You're going to be exploring the dark corners of the environment once/if you're on the job as a regular employee, so start shining a flashlight in there today. Yeah yeah they said we'd implement feature XYZ and we are doing that but it doesn't mean I don't read the surrounding code and verbally grill mr pair partner about his firewall or DB or caching system or whatever semi-related stuff I can talk about. Thats interesting. I'll trade labor for "interesting" anytime.

Its a pair event. Maybe I'm just old but I'm assuming I'd pull off a partnership where I talk about architecture and the pair, if he approves, does the grunt work (and maybe he intentionally sticks errors in to see if I can grunt as well as he can). Yes I know thats not exactly traditional pair programming but then again this isn't pair programming, its an interview of both sides. On the other hand, if their idea of pair programming is some dude micromanages me while I do all the work, I agree with the original author, F that. We just don't have enough detail.

It kind of sounds like if I ran into this dude at a bar or a con and we started talking shop about life in the biz, we'd have a fun old time talking and then he'd surprise me by sending me a bill later.

If I show up for a short interview at 9am and they demand me sit around till 5pm they better be feeding and hydrating me, and not cheap mcdonalds either. This actually happened to me once, and everyone left happy and well fed and that's exactly how it should be. Maybe I'm a cheap date but I'll "work" for a day for a $200 steakhouse lunch. Not every day, duh, but...

Finally "if we decide to hire you, your salary starts today" sounds like a fair deal to me.

<comment><USER16> I don't mean to knock on the pair programming model. It works amazingly for some people, there are cults around it disguised as consultancies and I even had fun with a few pair programming exercises. But... does your company actually pair program? If not, how do you know that you are not testing pair programming skills rather than testing whether the person can work on your stuff?

For example, when I write code, I write it in iterative drafts. I find that my train of thought breaks when someone points out a trivial piece of syntactically wrong code that I put in there as a filler for stuff that I am going to work on once I have finished iteration 1. I think of it more like solving a math problem where I sketch a picture and then gradually turn it into a sigma/lambda type proof. It is incredibly distracting if someone stops you in the middle of the picture and asks you how this has any connection to the final product.

</comment></comment><comment><USER43> During my recent search for a programming job, two companies gave me tests to assess my technical skills.

The first company's test was similar to that which the OP describes. A manager gave me a list of company contacts and asked me to build an interface for sifting through it. It was a boring, tedious task that benefited the company, but wasn't particularly representative of my skills or knowledge.

Contrast that with the second firm, which gave me a coding challenge. They gave me a list of prompts, including interesting ones such as "Build your own A.I. algorithm that can interpret poker hands."

Not only was the second test more interesting and indicative of my skills, it made me respect the company a lot more. I ended up accepting a job with the second company because their creative interviewing approach made me more excited about their offer.

</comment><comment><USER44> A company I recently interviewed for handled assessing my technical skills in a way I found acceptable without having to pay me. I was sent a small Requirements document to program a small app that had nothing to do with their application, but would show off my technical chops. I was told to use whatever language and framework I wanted, but it had to be production ready code. I spent a little over half a day working on it and submitted it. During the on site interview I was given an hour to update the application with new requirements, then I went through a Peer Review as if the code was going out to the customer.

I thought this was completely fair, as I wasn't doing work for them but they were able to receive a fair assessment of my skills through more than, "Write a recursive function to calculate the factorial of a number"

Having an interviewee code on a live code base, whether or not they are being paid, is just a bad idea. They don't know anything about the code or architecture of the project, and aren't as invested in the product as the people actually working for the company are. What happens if the person writes some bad code that works? Do you throw it out? Will it slip through the cracks? What if they change something that was already coded that they don't know breaks something else? Do you not allow them access to the rest of the code base? The questions go on and on, just save yourself the trouble and don't do it. The fake application idea works great

</comment><comment><USER45> Anything more than an hour or two should be paid for. That's been my experience interviewing across London and SF.

Completely agree with the author, being asked to create potentially production-izable work is ethically wrong.

On the flip side, you learn a ton about how the engineering culture by looking at their codebase.

<comment><USER46> I wonder how the copyright situation would be if you were to write code during your interview that they continue to use. That's _before_ any sort of contract that details what rights the company has to your work (since they cannot take your copyright they usually reserve all other ways of using it). So technically that's still your work and you have full rights to it.

<comment><USER45> IANAL

You're right you'd own full rights to your work. That doesn't make a difference though - you'd realistically never sue them.

</comment></comment></comment><comment><USER47> I completely agree with the blog post writer. I have a job, and if I was to work on some other companies code base while still working for the current one, all kinds of copyright issues ensue (Swiss).

Having someone, who is not an employee mess around in your codebase before they are hired is a lawsuit waiting to happen. Not worth it, and if you could convince me to come into your office for an interview and this is what awaits me I am leaving in no time.

What happens if you don't hire the guy and sell a 100,000 copies with his work product in there? Do you own the copyrights or have a license to it? Probably not, and if it was me coding then my lawyer would have a field day with you and your company.

So besides the insanity of not hiring a developer like you hire anyone else by references, reputation and limited work sample tests. Do you think you can tell some lawyer, please work on this case for 8 hours and then I will tell you if you get hired is going to go along with this? He will bill you 4000 chf for the pleasure and so would I.

In Europe you have probation periods, i.e. you hire someone and find out that they can't do the work you terminate them on the spot. Is that expensive, relatively yes. But if that happens you already screwed up weeks earlier and it is time to pay the piper.

This entire consult to hire, or whole day interviews just seems unacceptably unproductive and ethically as well as legally questionable.

</comment><comment><USER48> I understand the reluctance to work on the production code for an entire day. But like others have commented, I would rather do that and get a chance to see their end-to-end process rather than coming in on the first day and finding their dev environment is a complete mess.

I've come in as the new guy on a project and been greeted with a zip file of the code base (already out of date). It was complete with hard links to the main developers personal test database running on his machine.

</comment><comment><USER49> I do not fully understand some of the negative comments from HN in that case.

If the same story had happened to a graphic designer then most would agree,as usual in that case, that you have to set limits and not work for free "just to see what you can do".

<comment><USER16> > If the same story had happened to a graphic designer then most would > agree,as usual in that case, that you have to set limits and not work for > free "just to see what you can do".

On the flip side, literally every interesting answer that you give folks in an interview process could potentially be considered to be free work. I used to work on recommendation systems. Say, I go interview at another company in the same space, literally any potential what-if machine learning problem can eventually get into the situation where it goes off text book fairly quickly. At that point, any information that I talk about has two values: 1) it helps the people understand that I can do this shit. 2) it also helps them maybe solve the problem based on my experiences from my previous job. In the case of 2), they are essentially getting free work. How do you resolve such a situation? Should we have an industry wide standard where people pay you a market rate for every hour you interview?

<comment><USER50> [http://dilbert.com/strips/comic/2010-04-02/](http://dilbert.com/strips/comic/2010-04-02/)

</comment></comment></comment><comment><USER51> After reading on that page and coming back, I felt a bit blind.

But I agree with the post. Very well written.

</comment><comment><USER52> 1\. I will hack on _my_ codebase for an interview. Look at my github account and choose say three issues. I will fix one and you can see the pull request.

2\. Otherwise, fuck you, hire me. I am available on a day rate for heavens sake. You can throw me a project that will tart up your site, improve your jenkins flow, add 100 test cases. Whatever.

This is a massively scalable approach, an the way you should be parcelling out work most of the time.

</comment><comment><USER53> That's fine. We'll try to evaluate your abilities in some other way, with the initial impression that you're a prick. :-/

A day is a pretty unreasonable request. Maybe an hour would be more reasonable?

</comment><comment><USER54> It seems everyone has their own opinion on what a tech interview should look like on both sides of the barricades. I think it would be great for companies to advertise the interview process in the job ad. Just three lines on the various steps in the process would help a lot.

FWIW, I really like it when I can hack or even see their codebase upfront.

</comment><comment><USER55> A whole day is a little excessive but other wise that's exactly what an interview should be. I'd like nothing better than to see the actual code I'd be working with and see how I work together with others on the team.

In fact I once passed on a job offer because they wouldn't let me see the code until I accepted.

</comment><comment><USER56> I don't see what the problem is: it's clearly not work for hire, and he doesn't mention any explicit copyright assignment. At the end of the day the candidate retains copyright, and the company has no right to the changes.

(Of course, the idea of a day-long technical interview exercise is truly insane.)

<comment><USER31> The code was going out at the end of the day. Whether they had the copyright or not, they clearly intended to use it. What's he going to do; take them to court over it?

<comment><USER47> I would, and if it wasn't me my current employer might...

</comment></comment></comment><comment><USER57> The developer does came across as a prick. The thing is, does the company allow anybody to access the code? Probably not, because that code is very likely proprietary company information that only certain people are allow to view and modify.

So from that standpoint, validating the skill set using opensource tools would be the way to go. Having an outsider view and modify internal company code demonstrates poor judgement on the part of the interview, as that code is not her/his to just expose to anybody. I would be wary of even considering that role if interviewer is willing to expose their code without considering the legal and ethical consequences of that action.

</comment><comment><USER58> Do you really need to take up an entire day of somebody's time just to see how they code? Is there something that you can see in eight hours of coding with someone that you can't see in one or two hours?

Also, if you're going to require full-day interviews from your job candidates, it's not likely that someone who already has a job that they like will be interested in interviewing with your company. And if you're looking for highly qualified, experienced developers, they do already have jobs that your company is trying to lure them away from. You don't want to artificially limit your candidate pool to students and the unemployed.

</comment><comment><USER59> Hint: A really good way to hire is to actually pay candidates as short term consultants and see how they do. It's real work, on your real product, likely for less than you'd spend to "interview" anyway.

</comment><comment><USER60> I hope the guy who wrote this is 15.

[http://hownottohireadeveloper.blogspot.co.uk/2013/10/no- im-g...](http://hownottohireadeveloper.blogspot.co.uk/2013/10/no-im-going-to- test-you.html)

</comment><comment><USER50> Well, I've made a interview at a company that asked for pair programming in their codebase, but actually paid for it. Since it was just 2 hours, it was cheap for them, and I didn't felt exploited. I felt it was a great way to get to know the company and discuss real code. I really don't like algorithmic interviews, they normally just test you CS 101 memory under pressure.

</comment><comment><USER61> I get his point, but this is the wrong way to express it.

For high-pay, high-impact jobs, 8 hours of time to get through the hiring process is not unreasonable. My current job had a few hours of interviews even after they had narrowed the candidate pool down to just myself, to be sure I was a fit for the company culture. VP/C-level positions in large companies will put you through the ringer with multiple days worth of discussions.

I would gladly pair program for a day vs. 20 hours of interviews, tests, and other evaluations. One day, get it all done, and get a decision. Sounds great, especially if I had already set my day aside for the interview.

So my guess is that aside from the obvious attitude problems, this guy has never held a truly senior level position, because he clearly does not understand the time that goes into hiring. I highly doubt this company had 50 people pair program with them. This guy was probably their final candidate, and probably would have had a job offer by the end of the day if he had chosen to be cooperative.

</comment><comment><USER62> > we've got some features I want to implement and push live by the end of the > day

This is not an interview.

The interviewer is focused on his "regular" job, not the candidate. Plus, the candidate can't possibly become fluent enough in the company's app/API/codebase to actually accomplish the task in a day.

Interfail.

</comment><comment><USER63> On the one hand, TFA is obviously put off by both the tech stack and the hiring procedure. This suggests to me the possibility of a poor cultural fit, so the outcome is probably for the best.

On the other hand, it is reasonable to have a backup plan for situations where someone is adament about not working on your proprietary code for free. Any legal issues aside, as someone familiar with the existing code base, a lead should be able to conceive of a contrived scenario that closely maps to work that will be done on a day to day basis.

While I am personally an advocate for contributing to open source projects as part of a company's cultural, that is not something that all companies are okay with, or that all leads see as valuable. Without judging one way or another, this is another factor that should be considered for cultural fit.

</comment><comment><USER64> well, at least they didn't give you puzzles

</comment><comment><USER65> As flawed as the interviews are, whatever you do that makes you filter out a person with an attitude of this type, it is probably working.

</comment><comment><USER66> If they _are_ really hiring, the interviewee should do it. If he can't sense whether they are really hiring, he shouldn't do it. But it should be preceded by _something_ else first, such as fizzbuzz.

And that said, it should be shorter than a day, but still, if they're hiring he's there because he wants the position, and this is an excellent test.

</comment><comment><USER67> Pair programming on a company's app is the single easiest way to know what you are getting yourself into.

I recently did a full day of this and by the end I understood their whole stack, where the system failed, and managed to find a, "oh shit look at that... that's awful" part of the code.

I would take 4 hours in a potential employer's codebase in a heartbeat.

</comment><comment><USER68> Why they can't foresee this instead making work for free? I mean, you get a technical team who can interview the possible guy, talking code, you can know what's the guys skill level, if you cannot see how good he is in interview without making him do puzzles, work for free, then your team's technical skill is really low.

</comment><comment><USER69> IANAL, but any code written by the interviewee is likely not owned by the company, thus exposing the company to serious liability if said code is used in production.

Most employment contracts have a "work for hire" clause with respect to copyright assignment. In contrast, most interviewees at most sign an NDA.

</comment><comment><USER70> We do like real-world assessment when hiring. We always pay the candidate's contract rate for the hours spent though, and if they don't want to enter that arrangement, we find some open source or other real-world coding exercise that doesn't benefit us. Seems only fair.

</comment><comment><USER71> I think day-long interviews are fine, and I think real-world work samples are fine, but the combination is pushing it a bit as far as what is fair to ask job applicants to do, unless you're going to have some sort of explicit and upfront agreement about a trial period.

</comment><comment><USER72> I'm kind of curious, before doing a live coding session or anything like that has anyone used a snippet of code from the codebase and asked the candidate to go through the code and see if the candidate understands it / feels comfortable with their coding style?

</comment><comment><USER73> This is definitely wrong - legally and morally. I have had companies show me snippets of their code base to analyze and work on which is fine. Gives me a better feel about how competent to development team is rather than isolated puzzles and questions.

</comment><comment><USER74> I would _love_ to see your codebase while interviewing. There's no faster way of seeing if you're a competent bunch to work with. Also no faster way of detecting interpersonal and "soft" dysfunctions in your group.

</comment><comment><USER75> The cost of having a team member hand-hold a new person through the code is almost certainly greater than any value the newcomer would add in a day, so if the OP's argument had any merit, he should have been the one paying them.

</comment><comment><USER76> Good lord, does nobody plan before they start hacking away? If someone wanted to watch me write software, they would see a bunch of scribbling on a notepad or whiteboard for most of the time.

</comment><comment><USER77> I agree here, but I wonder if it'd be kosher to pair program on an open-source project...that my team totally intends to incorporate into our closed-source product?

</comment><comment><USER78> Perhaps the interviewer could work on the job you had to take PTO just to go to the interview. Then you can assess his skills and just say you were WFH. Fair trade?

</comment><comment><USER79> Just a weird question that occurred to me in the first few paragraphs...

Why is it always a ping-pong table?

I don't get it. Pool tables are way more fun.

</comment><comment><USER80> Silly question: If I hack your code during an interview, don't I own the changes, and derivatives thereof?

</comment><comment><USER81> Too bad! Interviewees are not guinea pigs! High time that interviewers realize this.

</comment><comment><USER82> Another article being penalized. On the third page now. I love you, HN algorithm :)

</comment><comment><USER83> So you won't see the code until hired? Not very smart, I'm afraid.

</comment><comment><USER84> you charge $56/hr in a daily rate? O_o

<comment><USER85> High or low?

<comment><USER84> low... a good rough base for freelancing should be triple whatever the salaried hourly rate equivalent would be (i.e. $80k/year => $40/hr, so you should be charging $120).

I do give a break if I'm charging in bulk (i.e. I have a really long term ongoing project with you and we negotiate a different rate).

</comment></comment></comment><comment><USER86> At end of day: svn revert -r

</comment><comment><USER87> this blog post is bad and the author should feel bad.

</comment><comment><USER88> Pretty common!

</comment><comment><USER89> Just a few comments I left on this blog post, maybe someone here will also find interesting or useful:

I'm sorry, but I must respectfully disagree on a number of points. I think you make a number of flawed assumptions and miss some great opportunities when you pass up an interview that allows you to work in their code base.

1) Maybe this company was different, but as for me if I bring in an interviewee and say "Let's pair on some code for a day, and try to release a feature" I know up front this will be an up hill battle. Can you really say that you, an interviewee who has never seen the code base, will suddenly make amazing production grade code? I am absolutely sure that if I were to grab one of my other engineers, seasoned in my code base, I would get this task done in half the time. The point is, I am assessing you to see how you work with me, what your attitude is while we pair, what your contribution to the process is, and to a lesser extent how your code looks. Can I get this out of an open source project enhancement, maybe. But I can certainly get this out of my code base and it will cost me more than it will cost you in income.

2) You've missed the opportunity to look at my code base for a day. I can't name the number of times where I have walked into a company after a lovely interview experience and said to myself "I wish I had seen their code base, this is horrible". Your other blog post states you want to "test the company" before you take a job. Test them.

3) I won't discuss how low your day rate is, and how it establishes that you are an inexpensive engineer (that may have been what you were trying to get across) but I will discuss investment in future earnings. In my last few jobs I have received at least a 5 figure signing bonus, and generally a healthy pay raise (this is generally why I move companies). When I sit down to pair for an interview "for free" I don't think of it that way. I think of this as an investment into my future earnings. I am going to get a signing bonus from this "trendy startup, complete with ping pong table". I am going to get a healthy pay raise. It will equal far more than my day rate. You might say "But what if you have to do 5 or 10 of these interviews with companies before you get a job?" I often do! Getting a job is a numbers game. But I am still highly compensated for my time, just not right that moment. It is ok to defer payment. Investments can be quite rewarding. (Not to mention, money isn't everything. There are other reasons you may want to leave to another company. Account for that in your equation). If I interview with 10 companies and they all have me working on their code base, I hope they enjoy the one day of free work. I won't get paid by all of them. But I will not lose a dime of my own income in the end. I will make it back when one of those 10 companies hires me.

I understand from this blog that you would rather not be tested and that you would rather not work on a companies code base. But a company that wants to hire you, wants to hand you a pile of cash and a hefty salary and benefits, needs to assess you somehow. You also need to assess them. I think a day of pairing on their code base can easily tell you if you are a fit for them and they are a fit for you. In the case of this interview, maybe they very quickly figured out you are not for them.

</comment><comment><USER90> not hired!

</comment><comment><USER18> Firstly, I think they wanted to 'assess' not 'asses', well at least I hope so (spell checking is not optional; even on a blog).

Now, I agree with the blog post: if you want me to code at interview it has to be open source, pseudocode or a toy library. Not your production app. I don't want to see you proprietary code till I am hired in case some moron on your staff later goes on a spree suing people on an open source project where the code looks 'similar' to what they may have seen in your code-for-free cheapskate interview process.

</comment><comment><USER91> Personally, I'd pay money to see the real code _before_ considering a job offer... :-)

<comment><USER92> On the other hand, the pingpong table is probably enough hint.

<comment><USER93> I have to disagree there. A workplace that emphasis on fun at work does not imply bad code quality, nor does it imply good code either. Not sure what the fuss is about ping pong.

</comment></comment></comment><comment><USER94> Does work performed in an interview constitute work for hire? I wonder what the copyright implications are in the US.</comment>


GNU Denemo 1.1 - <AUTHOR> http://www.denemo.org/ <comment><USER2> This seems to be an interesting project.

It's interesting that the website seems better than the average GNU project, notably the look and community parts.

However, I don't really get what it brings to the table compared to other LilyPond frontends like Frescobaldi or Laborejo. I'd love to be enlightened on that part :)

On a personal technical side, I'm not really a fan of using GTK3 for crossplatform UIs (I've had my share of pain with it, like many people), and I don't really like the absenc of folders/hierarchy in the src folder ([http://git.savannah.gnu.org/cgit/denemo.git/tree/src](http://git.savannah.gnu.org/cgit/denemo.git/tree/src)) or the fact that the NEWS file is outdated ([http://git.savannah.gnu.org/cgit/denemo.git/tree/NEWS](http://git.savannah.gnu.org/cgit/denemo.git/tree/NEWS))

<comment><USER3> > It's interesting that the website seems better than the average GNU project, > notably the look and community parts.

As a GNU Octave dev, it makes me feel sad that "GNU" no longer has the cachet that it had in the 90's and early 00's. It went from being a mark of quality to being outdated, disorganised, and lunatic.

Oh well. I still support GNU. Hopefully you'll like the new GNU Octave web design we're working on.

<comment><USER4> Don't be disheartened. I find that kind of dated look reassuring - it hasn't been broken for so long that nobody dared to fix it! People have relied on the software, and it's in repositories and what's more it (sometimes) continues to be recommended.

Something new and shiny makes me wonder "how long will this last", I suppose because of advances in web technology it doesn't take as long to put a nice website together. Sometimes I even wonder if time would have been better spent on the actual project and not the website.

<comment><USER3> In this case, the new website design was sort of "donated" by one of our former GSoC students, so it's not like it took away development from Octave itself. The student's GSoC contributions were to another website project of ours.

</comment></comment></comment></comment><comment><USER5> Usual google cache link: [http://webcache.googleusercontent.com/search?q=cache%3Awww.d...](http://webcache.googleusercontent.com/search?q=cache%3Awww.denemo.org&oq=cache%3Awww.denemo.org)

</comment><comment><USER6> As a hobby pianist trying to relearn some music, I was looking at Denemo, Frescobaldi, etc the other day. But I ultimately realized that I prefer a simple text based solution, because I can use a text editor rather than learning a complicated new GUI.

I ended up writing a simple wrapper around JFugue in Scala (about 10 lines of code). I write the composition in a text file using a text editor and then run it through the scala script.

</comment><comment><USER7> Someones database is exhausted I think.

</comment><comment><USER8> Error establishing a database connection

</comment><comment><USER9> Someone needs (better ?) caching.

</comment><comment><USER10> Error establishing a database connection

</comment><comment><USER11> HNDoSed again...</comment>


IBM Researchers Develop Technique to Patch Vulnerabilities Ahead of Threat - <AUTHOR> https://techxplore.com/news/2019-02-ibm-technique-virtually-patch-vulnerabilities.html <comment><USER2> So, basically they "invented" fuzzing?</comment>


Show HN: ProHockeyIQ – connecting players and teams - <AUTHOR> https://www.prohockeyiq.com/

<comment><USER2> What is your plan for achieving market parity here? I imagine finding NHL players to signup will be difficult, if not impossible. Every one of them has an agent, who likely has no interest in this service because he already knows every GM in the NHL. And I doubt any of the players themselves will signup, since they're busy, well... playing hockey.

So maybe your target is players in junior leagues or overseas? But then, how do you get the NHL scouts/GMs to join? They are interested in NHL talent, not desperate junior league players with no agent.

It's a chicken/egg problem, and I'm not sure how you're going to get either one...

<comment><AUTHOR> Thanks for your comment!

Actually, in both Europe and North America there is really good teams and players who are not in the NHL and the highest leagues in Europe.

For example, in Swedens Division 1 (third highest league), players can get a full time salary for playing hockey – but of course an agent won't help them because they get a provision on player salaries, and they are not interested if the salaries are too low.

So when a contract expires for a Division 1 player, they usually end up in a situation where their only chance to land a new club is through contacts, and that usually means in the same country and/or region. But there is a huge demand for European players in North America, and NA-players in Europe.

So far we have around 200 players, and two dozen clubs. 50% Sweden, 25% US, 15% Canada and the rest various other European countries.

</comment></comment><comment><AUTHOR> See it as a LinkedIn for hockey players and teams.

Example of player profile: [https://www.prohockeyiq.com/view/player/30](https://www.prohockeyiq.com/view/player/30)

And a team profile: [https://www.prohockeyiq.com/view/team/2](https://www.prohockeyiq.com/view/team/2)</comment>


Coinbase you're so fucked - <AUTHOR>

So i have been using coinbase for a couple of weeks now. Yes getting money in and out of an exchange in the US is difficult pre coinbase, and no one wants to pay the fees of BitInstant (fees+bitcoin = evil in all its glory, but thats a different post) so i started using coinbase. What does coinbase do? They let you use ACH for getting money in and out of the exchange. It is the reason they are successful, it is also the reason they will fail.
How does it work? You create a coinbase account, you then link this unverified account with your bank account using these 2 options: 1.you can hand over your online banking u/p for instant verification or 2. you give them your account # + routing number for them to make 2 small deposits to verify that it is in fact your account. You can see it here: http://blog.coinbase.com/post/34357253898/you-can-now-buy-and-sell-bitcoin-by-connecting-any-u-s
So far so good right? Wrong. Exchanges can't use ACH its plain and simple - anyone can do a chargeback at anytime.
Now lets just imagine that they make $200k or so in transaction fees a month which i estimate they should have hit by now, i'm going to show you how one scammer can take that all away in a bit instant... (pun intended)
6 steps: 1. Open a shell company 2. Open a bank account and deposit 25k in seed money 3. Open a coinbase account transfer your money in and buy some coins 4. send your coins out to MtGox or another exchange and cash out 5. Deposit the money back in your account and repeat second part of step 3 + 4 6. Walk over to your bank's local branch and file for a chargeback claiming you dont recognize the transaction.
Now you're left with both your cash and your coins, which technically are liquid enough (unless MtGox goes rogue but then everyone is fuck'd as well..)
Coinbase, i wish you gents luck and i think you should not rely on ACH. <comment><USER2> ACH fraud isn't a new thing, generally if the vendor can show evidence to the bank that the transaction was legitimate (the verification & IP checks are probably sufficient) they can suspend the chargeback.

There's also the deterrent factor, what your suggesting violates a whole number of criminal laws including wire fraud and money laundering. So we're talking seizure of assets and significant jail time.

Moreover if you're convicted of such a crime you can pretty much say goodbye to ever getting any kind of financial product at any kind of reasonable price ever again. No credit, no mortgage, no insurance, etc. You may even struggle to get a regular bank account.

You've got a pretty high-chance of being caught assuming the exchange even has rudimentary fraud detection, so doing it for $200k is crazy because the pay- off is so low.

<comment><USER3> ACH fraud is ok for vendors that are a) creditors b) selling a trackable product (eg. something with a fedex tracking number)

Neither the verification nor ip address is admissible, and if any marketplace owner thinks it ok to use ACH they are out of their mind.

<comment><USER2> > Neither the verification nor ip address is admissible

I suggest you research ACH, banks can and have reversed chargebacks in such cases.

Your bank account will be flagged onto the bank (and government) watch-list anyway for making high-value money transfers without clear cause. People try to do far more sophisticated fraud than you're imagining and banks do a reasonably good job at spotting it.

</comment></comment></comment><comment><USER4> They also have daily trading limits as well as a grace period while they wait for the transaction to complete.</comment>


Report: Ex-Cop Christopher Dorner Is Now a Target for Drones - <AUTHOR> http://gizmodo.com/5983175/report-ex+cop-christopher-dorner-is-now-a-target-for-drones

<comment><USER2> It looks like he was already a target for an ATM camera. Someone needs to explain to gizmodo that IR optics do not kill people.</comment>


Ask HN: I'm programmer with depression and social anxiety. Should I quit? - <AUTHOR> I have had depression my entire life but wasn't diagnosed until a couple years ago (I'm in my mid-30s). I was put on meds that I didn't like so I stopped taking them.
I've been a web dev for 12+ years - I am skilled in several programming languages. A few years back after some traumatic life experiences (both work related and otherwise) I ended up developing social anxiety, and these days I'm starting to suspect that I might be bi-polar. Things feel like they're getting worse and not better. I haven't held a fulltime position in years, and though I'm happier as an independent contractor, I don't feel like I'm moving forward in life.
I am going to talk to my doctor about all this, but my concern is that I will be placed on medication yet again, only perhaps something stronger. This worries me as I don't want to see a my skills fall apart.
Has anyone else found themselves in this situation? What sort of advice can you offer if so? Should I quit programming and do something else? Should I attempt to go on disability? <comment><USER2> I'm a 22 year old independent contractor that is going through some similar things. Best advice I can give is to get out of the box. We think in such technical structured manners and it is super stressful to our simple emotional brains. Find your buddies or go by yourself and step away from the screen, your room, get away from home. Walk. Keep walking. Get lost. Adventure. It not only opens up your perspective but it loosens your senses and flexes your emotional cognitions with the world and yourself. Do this often too. Be free. It may be good to break from programming for awhile if it feels right to do so. Take care friend

</comment><comment><USER3> I'm the same situation, but less money. My plan is the retire. I want to buy a small house and move there. Near the beach, in Europe, I just want to do small things.

Even worst, now I'm working in a city, that until next year in May the weather will sucks. No sun, just clouds and rain.

People things that in IT, is just money and happiness.

That is not reality

</comment><comment><USER4> Have you tried meditation?

As someone who has travelled and worked for a long time, if you don't work on yourself, you'll never be happy/satisfied no matter where you go.

Sometimes that involves moving, but after exploring the inner dimensions of the humanAPI.

</comment><comment><USER4> Stop fapping if you are hooked on porn.

yourbrainonporn.com reddit.com/r/nofap.</comment>


Ask HN: How did you solve the chicken or the egg of advertising? - <AUTHOR>

Being new to the advertising industry, the biggest issue we have faced as a company has been that advertisers like our product, but need to see a certain scale before they will play with us.
Hoping to hear from anyone who got ad revenue early on and grew with their advertisers, versus the more traditional route of raising money by showing user traction and worrying about advertising revenue later.
What creative ways did you get big brands (or not so big brands) on board before your product was sizable enough to matter to them? <comment><USER2> On ad supported ventures (web based) in the past I relied on ad networks with existing inventory to display (ex google adsense). The payout is lower than selling ads directly but my thinking is part of something is better than all of nothing.</comment>


Apple starts building iPhone 6S in India to lower costs - <AUTHOR> https://www.theverge.com/circuitbreaker/2018/6/26/17506068/apple-iphone-6s-india-tariffs <comment><USER2> The linked article doesn't mention if this involves another manufacturing company, but the original article adds more detail and context.

[https://economictimes.indiatimes.com/tech/hardware/after- se-...](https://economictimes.indiatimes.com/tech/hardware/after-se-made-in- india-iphone-6s-set-to-hit-a-store-near-you-soon/articleshow/64741606.cms)

Turns out there is an existing facility that already makes the iPhone SE for India, and this would just add a second model to that list.</comment>


How to meet Sam Altman at his home Nov 13 12-2pm - <AUTHOR> Altman is holding a fundraiser for Presidential candidate Andrew Yang on Wed November 13, 2019 12-2pm at his house.
It's not cheap though at $2k a pop. But might be worth it if you need to reach out!!
Buy ticket here ($2K): https://secure.actblue.com/donate/ay-events-sf-lunch-1113?refcode=kurzon&refcode2=kn
Where: Mission Bay area (address will be emailed prior to event).
When: Wednesday, November 13th, 2019 12 - 2 pm <comment><USER2> I'm going be there dressed as a giant $1,000 bill! Now, to find that picture of Grover Cleveland I used to have ...

</comment><comment><USER3> But why?

<comment><AUTHOR> Never know, some might need to reach him</comment></comment>