skysight-inc/HackerNews huggingface dataset:
Ask HN: Take home interview project – is this ok?
Hi HN! First time post but long-time lurker.

How would you handle this situation?

About three weeks ago I applied for senior front-end developer job at a major global airline. I immediately got a response saying they liked my experience and wanted to interview. I was sent specifications for a take-home project to build a web application that would act as a test of my technical ability.

The project was relatively simple: A React-Redux app to search for and display data from a json dataset. That being said, there were "bonus" points for adding advanced functionality to the web app, and the recruiter repeatedly told me to take my time on the project to make it "perfect".

So I put my best foot forward [why would you not?], and spent ~40 hours producing a production-grade quality submission that ticked all the boxes, & some more.

A week later I got a response from the recruiter saying the interviewer was "very happy" with my submission and wanted to proceed with a final-stage, on-site interview. However, the interviewer's manager did could not approve for the budget and they would not be proceeding.

What is the appropriate response to this?

Should I be contacting someone's manager? Can I invoice the company for my time spent on the project? Was I stupid to accept a take-home project in the first place? Are take-home projects fundamentally unethical?

Honestly, I feel that I shouldn't have been asked to complete a take-home project and pushed to work extra hard on it only to be told the position does not exist.

If it matters, I've worked as a web developer for 5 years and 3 as a senior.
SXSW knocked one of Austin's Uber and Lyft replacements out for hours last night
code quality can't handle our scale
From the home page:

> A one-off $5 payment activates your account for life
Obligatory link to John Oliver discussing the same topic in his usual manner: https://www.youtube.com/watch?v=_tyszHg96KI
if you believe your product brings value to a potential customer then it's not spamming.
Criminally liable? There do not exist schedules or tools or processes that would allow me to put my freedom on the line for my work. I'm a solid developer, too, but I am pretty open-eyed at the challenge of zero-defects.

I think the premise, "engineers need to risk going to prison." is facially ridiculous. I'm down with prosecuting actual fraud but you can't legislate quality. You can only protect diligence.
It is ironic that a codebase with so many classes is likely to occur precisely because of dogmatic adherence to those "best practices" which were originally intended to improve code quality --- aggressive refactoring/modularisation being a likely culprit. What I think they really need is not more design, not more architecture, not more of anything but KISS and YAGNI.
Quickselect Algorithm
I agree with the others here that constant reflection is critical. But for me, keeping track of resolutions with a calendar to do is a recipe for disaster; good for the first two weeks then eventually it gets neglected.

So for this year, I started thinking about a tracking and recording method that is personalised to my needs, and that includes taking account of good and bad habits. I set up a personal website which is basically a learning log/folio, where the front page displays my five learning projects in arty thumbnails. Aesthetics is really important to me so a good design that I'm proud of is one way to keep me visiting the website.

Let's say that one project is French. Now it's really important to clarify your goals further. It's completely unrealistic for me to be fluent in French by the end of this year so I set a couple of goals, such as studying Candide to the point that I can understand and internalise the meaning without looking at the English parallel text. I emphasise that this goal is only for this year, which means I can still keep going with French next year - so no need to kick myself why I can't be as good as those polyglots.

OK, so far so good, I've got some fancy projects that show to the world that I'm a keen generalist, and goals to clarify their scope. But how do you keep track of them?

Because I've come to like writing, and it's one goal to keep practicing it, I decided to link every goal to my blog. Meaning, I need to write about my findings, achievements etc and tag the post to a goal.

I created a category hashtag and placed it under each goal. So say that one project is Blender 3D and one goal is to get used to the different modelling techniques - my hashtag would be something like #blender3dmodelling. This means that I must write something about blender modelling, which means I must study it and practice it. Otherwise if someone clicks on the hashtag, it will display no posts ... and that looks a bit bad. (That 'someone' is usually me haha.)

So far this little technique has kept me more focused on my resolutions aka learning projects. But it's not enough because there's still the danger of gradual neglect - and I've reflected enough to realise why this happens. What if I have absolutely no time to study Blender 3D because of other commitments? I can see myself paralysed by guilt by July. So, for balance, I decided that every month, I will write a post that reflects the previous month, and realistically set targets for the current month. The reflective part is particularly important as it not only keeps you true to your desire to learn, you're also being honest about yourself and your current situation.

So, that's the gist of it. It's not really scientific, the way I keep tracking and motivating myself with writing and showcasing, but it works for me. But this is an example; you may find it too much or too little or just completely unsuitable. That's OK. For yourself, you need your own method, and this means a great deal of introspection to understand your needs and habits. Good luck :)
That's like saying it's not rape if you really like her.
Dog Funerals in the Late Victorian Era
Church vs. Curry Types
In this vein ^, what are his thoughts on Von Neumann probes?
>It'd be nice if you told us what code you're referring to. I've been giving examples and rough technical outlines how I'd handle problems that needed code sharing. So far you've given us zilch but naysaying.

Sorry, why the complaining? We were talking on a more abstract level. Yourself just gave some anecdote about "Someone did this on a project I work on (C#). Utter nightmare. Loads of repeated code as new programmers didn't know methods existed, loads of extraneous DTO objects, lots of nested single line methods, massive code bloat", that's hardly an example either.

>I've never had to write identical code on an Order class as a Person class. Can you give me an example of 90% of the logic being the same on an Order and a Person class?

Apart from the data contained without, which process would not be the same? Most high level operations would be exactly the same: filtering would be the same (it just needs to accept a predicate), ordering would be the same, serialization would be the same, etc etc.

For a very simple example, you don't need:

persons.sort("age", sort.DESC)
orders.sort("created_at", sort.DESC)

etc, you just need:

sortedPersons = sort(persons, cur -> cur.age, sort.DESC)
sortedOrders = sort(orders, cur -> cur.created_at, sort.DESC)

And the same function can work with 100s of other classes and containers.
"Logan's Run" is more prophetic than I thought!
How to complete a side project and turn it into a business
> The EU still has 1/2cent coins

I was confused there for a second because "1/2cent coins" looks like "half-cent coins", where you actually mean "one-cent and two-cent coins".

And yeah, I would like to see these go. I refer to them simply as "Buntmetall" (a German word that translates literally as "colored metal"; appropriate since the small coins are brown-ish) and throw them away at any occasion.
> Air conditioners using Freon cooled far more quickly than air conditioners using modern hydrofluorocarbons.

While we're at it, there's also no replacement material that has ever come even close to asbestos for braking or insulation.
Aside from the fact that this isn't really true, you have to also account for many externalities that car dominance creates:

- Land use. While every transportation mode uses land, cars use way more, and in dense urban areas that land is very valuable; users of the land who are driving are getting it 'for free', when it could go to a more productive purpose.

- Pollution

- Noise

- Danger

All of these are 'costs' that just looking at how much money you spend on roads won't account for.
Yes, but it's not as if we can fabricate these events.
DICK (PENIS) SIZE DOES Not MATTER FOR a WOMEN TO GET ORGASM
Up to 15% of Twitter Accounts Are Fake: Study
Living without expectations
> This means if your bitrot is random and you're using 16KB blocks, you will need to see on the order of ((2 * * 32) * 16KB)=64TB of corrupted data to get a random failure.

No, that's what you need to generate one guaranteed failure, when enumerating different random corruption possibilities. Simply because 32-bit number can at most represent 2^32 different states.

In practice, you'd have 50% probability to have a collision for every 32 TB... assuming perfect distribution.

By the way, 32 TB takes just 4-15 hours to read from a modern SSD. Terabyte is just not so much data nowadays.
This list can be summarised as "try genuine interpersonal engagement". A lot of great friendships and work relationships start from business outreach.

So this analogy :/
The Weird Age of “Previvors” Is Coming
That's actually a really good point for housing as public infrastructure. The parallels to roads are very interesting.
They check references. A surgeon has to keep his/her hands wet or face hurdles getting back into any OR.
Both of them are fixed now.
That's true in some sense, but it's also true that we've built our infrastructure in a way that's very expensive. Car dominance and low-density sprawl don't come cheap.

It's like saying a poor person CAN afford a new iPhone if they just only start eating only rice and beans, and therefore iPhones are affordable for the poor. It's not just about whether the cost can fit the budget, but about what you're getting for that cost.
Do you want to certify someone's mastery of S/W dev techniques? Or their compliance with a S/W dev process? Or establish S/W standards for deliverables?

Frankly only a guild cares whether you're a master craftsman. I see greater value to customers in the latter two, especially if S/W products were held to a standard of 'quality', esp efficacy and reliability. Then the S/W dev process could adopt a quality assurance process like that of housing construction, in which a building code exists and defines metrics of product performance that must be met by the builder through iterative inspections and a formal compliance process.

Should such a process exist for all software? No. But I believe it should for some software products, like those in automobiles, medical devices, and essential infrastructure, etc. Do such formal dev processes benefit from their practitioners having some sort of formal certification themselves? Probably not. It's the process and product that's needs certification, not the craftsman.
If they seem cynical, they're honest.
The problem with Google is that all the money it makes are gained by selling top search positions for money with adwords. It is like corruption.

The real evil are ads. They are bedrock of all worldwide bullshit and scam. They make seller don’t care about reputation, competitors and eventually product quality. They transfer products completion into ads competition. They make all products more expensive because of this “advertising tax”.
They turn off customer’s head to make a zombie who buys best advertised product instead of one with the best quality. They are good only for advertising companies and scammers.
Hah, thanks for the story.

It seems that limited resources often lead to some interesting solutions (and learning new things). A factor that is not very common in VC backed companies.
> Or inner city Atlanta.

Hell, you don't have to go far. Downtown-LA has plenty of human misery and poverty. Pretty much every major US city has a dystopian reality underneath its covers.
Perfectly simple Webpack 2 setup with webpack-config-utils
If technical debt becomes outward facing, the market punishes those involved. As long as technical debt is something engineers complain about but can keep putting the fires out on, then it does make business sense (after a fashion) - a wiser or more apt management might arguably do better, but if it isn't sufficient to make a company uncompetitive then it can at least be argued to be a worthwhile strategy, especially if you get smart young people for cheap who are willing to work brutal hours and then you just replace them when as they wise up and burn/age out.
Oh, but google is as evil, just in a different way. Google collect everything. With android it has your phone activity, postion, text messages, conversation and contacts. With gmaill is has more contacts, and emails. With search, youtube and analytics, it knows everything you are interested in. With map it has a recording of everything that has a location and a visual of it.

It keeps accumulating intimate data on a scale way larger than facebook. And we know that google, like facebook, cooperate with governments, sharing this data.

Google also has a strong AI background, using it for search, driving car, data analysis... This makes it concerning at best.
Credit Reports to Exclude Certain Negative Information, Boosting FICO Scores
Introducing politics is the best way to corrupt a system.
Ask HN: What are the quality C Programming Questions found in web?
I would like to know some good resources around the web, which contains question/puzzles related to c programming language.
Preferably those links which contains comprehensive collections of such questions, or you found the most useful.

Links to articles, blogs, competitive programming sites, pdfs, videos or .txt files etc.

Basically those resources you found useful while preparing for your interviews, conducting interviews or tests related to C.
A lot of companies actually have sprung up with this logic. Thoughtworks, 8th light etc
Perhaps Ethereum is the way to an open internet?
I had to stop reading this because of nonsense like "backronym" and statements that don't even make grammatical sense: "Ours is also one of the fewest industries based on scientific research which blatantly ignores the research"
I think you and a lot of other people here are missing one very important point. It is not "10K Hours" that does the magic it is "deliberate practice" for 10K hours. Most in the profession of programming can't do 10K hours of deliberate practice because that would mean planning your career and skills like an Olympic Runner. Realizing what you are bad at and leaving everything to work on it. Say you realize that you are great at algorithms but not good at reading huge pieces of code written by others.
you can refer http://www.techiedelight.com/list-of-problems/

some of them are in C++ but you can easily follow if you know C
What if slack is down/unreachable? Won't it keep the service from starting?
How much snow do you get? Snow Storm Stella
Dunno. Initially iPhone was not supposed to have apps at all.

Apple even release a web framework for making sites that looked and behaved as if it was native to iPhone.

Only after the jailbreakers enabled third parties to fool around with the guts did we see apps happen. And initially Jobs wants to sue those app devs and distributors into oblivion.
"When your a 20 year old kid"

you + are = you're
PDF of all problems -
http://www.techiedelight.com/wp-content/uploads/Techie-Delig...
> I’ve sent about 500 emails, resulting in 94 new, high DA backlinks. [...] The conversion rate from visit to signup on these articles is at a staggering 40%.

These are great tips and the results speak for themselves. Kudos.
ESP8266 WiFi deauther
Be a consultant first. I didn't think it was as tricky of an industry as it is, but it is.
why are both your comments greyed out?
Yes, I do use --user where possible. Because resource limits are per-user on UNIX, I tend to run every program and every instance of a service as a separate user. cgroups/containers make this less necessary, but old habits die hard.

The biggest systemd fault is one of tooling, and that just comes from a project ambitious enough to try and own it's own ecosystem.

When runit/daemontools, you "debug" a service by typing:

/path/to/service/run

into the terminal. Everything is sensible: grep the output just works. You can use tools familiar like strace/dtruss to "look inside". A unix user can easily leverage their experiences to administer a small unix site, and grow their experiences into larger sites.

With systemd, you run a unit file by copying it into a directory and run some (magic) commands. You need training/internet search to learn those commands. If your unit file doesn't work, you need more training/internet search, but systemd is still so new that your best bet may be to read the systemd source code, or insert a hacky "sleep 30" at the top of your start script and try to race and strace it in another window. Stuff like that.

Want to upgrade your systemd unit? You can't run it along-side an existing version of itself unless you give it a new name, which changes how journalctl can pick up the results. Versioning in the unit name feels wrong, and nobody does this yet which still currently breaks live upgrades where the unit changes.

Eventually the tooling will get better, but then we'll have a way to read files, and away to read systemd files; we'll have a way to run programs, and we'll have a way to run systemd programs; we'll have a way to "test" units, and a side-by-side mode, and so on.
> people who graduate from non-certified schools tend to have a lower starting salary.

I graduated from a non-certified school and my starting salary was higher than friends from a certified school, for an identical software engineering position.
> So the people affected by them are in a better position to change them if they don't like them

This is an oversimplification. If you look at the bay area for example and its housing crisis, the people who are most impacted are the people who haven't moved there yet but might do so in the future (and will pay higher future rents if housing supply does not increase). But potential residents obviously don't get to vote.

And that's how you get into a situation where people can't afford to settle down in their hometown area, even when they have good jobs.

The other thing you're missing is that you can easily end up with a tragedy of the commons type situation when local government is sufficiently fragmented. Again, this happens in the bay area: if the bay area was one city with one government, people would probably be fine voting for more housing supply across the whole area, but since it's split into dozens of cities, each one tends to suppress housing supply to boost local property values, instead arguing that some other city should be the one that provides more homes.
What is the response from OSs to Docker?
I wonder if the main operating systems are trying to develop any useful feature to gain space in the Docker background. From this point of view, Bash on Windows is the first step. Are OSs to became only one ingredient in a new universal virtual machine? The same force that makes javascript strong, that is unification of resources, will drive Docker adoption and virtual machines to a new unification in which OS developers have to foresee the future to gain market advantages. As an example, soon I hope/expect to see a hybrid system between Docker and virtualbox, the integration path is clear: the market for future OSs will be centered for selling travels, fitness, financial advice, tutoring systems, and matching applicants to jobs. OSs will change their focus, rather than be seem as technical tool they will be regarded as the entry point, door/window, for useful services. Clearly, the first and necessary step is to convince users that the information they provide is going to be used for their benefit, being trust more important that technical expertee. User don't want to be trapped into a small box, they want to be in a spring box to head into the future.
I don't think all the things discussed are still relevant as it's a fairly old post. Also, "best practices" are not always best depending on the scalability of the problem itself.
I'm near 60 and the code I wrote 5 years ago is crap. 5 years ago I thought the code I wrote 10 years ago is crap. 10 years ago I thought the code I wrote 15 years ago is crap. Etc.

About the only positive thing I can say about code I wrote in my 20s is it seemed like a good idea at the time.
Something that caches dynamic responses will certainly work as well. Usually those are situations where you want content changed on every reload, though. My site is actually dynamic as well, but it's just C code that concatenates three files together, and does just a tiny amount of metrics at the end.

I'm not going to say my design is maximally efficient, because it definitely isn't. It's just that 'modern' dev creates sites that are orders of magnitude more expensive to construct pages with. That stuff works for major corporations with data centers. It doesn't work so much when you're one of 256 instances on a single blade server inside a single data center hosting 20,000+ servers.

Also, when it comes to HTTPS, my site also uses that. HTTP redirects to HTTPS, and the TLS used is very strong 256-bit ECC.

The biggest cost to crypto is definitely for people living overseas from the server location. The added round-trip inherent in TLS v1.2 and below slows things down for international visitors. But ... I kind of lost it when my own ISP started injecting falsified HTTP responses to redirect me to their "maintenance notifications." I don't have the luxury of switching ISPs, so instead I'm moving everything possible to HTTPS.
At first I read 'disrupting' instead of 'disturbing'. Ahh, spooky
Uber's "predatory loans" work on a week to week basis, with a minimum rental period of 4 weeks. Please explain how it is predatory.
You can always start your own business writing code. Nobody else's approval is required.
There's a certain sense of naivete or smug entitlement with your last point: "When I can get all that affordably in the city, I'll consider moving back."

Obviously you'll never get all those things in the city, especially the ones involving lots of land. What makes a city a city is having people close together. That's what a city is.

The only way you can get density that low in a city is when zoning regulations require some area to stay that way, and its regulations like that that enforce low densities that have caused tons of problems in the US.
So to be honest they should rather change job descriptions from "employee" to "slave".
You need to check out perfect competition, monpoly and oligoply.

Briefly, with (textbook) perfect competition, profit maximising firms will price their goods at marginal cost and produce a socially optimum amount.

A company with a monopoly will sell at a higher price and sell less than the socially optimum amount.

There are also dynamic effects:competition acts as a spur for innovation.

This is the text book argument against monopolies.
Are you suggesting there are some people who only browse Gopher?
That's what happens when comments get a lot of downvotes. You don't see a "karma" score on HN, but comments with negative number of votes get more and more grayed out until they are hardly visible.
The Ultimate List of ICO Resources: 18 Websites That Track Them
Please don't sell our embarrassing fascination of Eurovision as something good by calling it our "number one cultural event". Makes me sad :(