They Rejected Us - <AUTHOR> https://rejected.us <comment><USER2> The best one I've come across yet is Brian Acton being rejected by Facebook [0] ends up creating Whatsapp and in turn selling it to Facebook for $19B. Talk about comebacks.

[0] [https://twitter.com/brianacton/status/3109544383?lang=en](https://twitter.com/brianacton/status/3109544383?lang=en)

<comment><USER3> On the other hand, if Facebook had hired him, it's unlikely he would have had enough freedom to create Whatsapp or anything like it. Even if Facebook knew what was going to happen, Facebook still made the right choice when they rejected him and later bought his company. Rejection can be a good thing for everyone.

<comment><USER4> Maybe.. but maybe he would have been on the Messenger team and made that What's App.

<comment><USER5> I doubt that. In most companies the Managerial chain kill bottom up innovation.

There's less than 1% chance Facebook messenger would be able to live to the philosophy of "no ads, no gimmicks, secure messaging"

That's why startups can disrupt. It really does reward bottom up innovation.

<comment><USER4> We are talking about a startup that sold to Facebook for $19 billion dollars whose founder was rejected by Facebook when he interviewed for a job there before he started what's app. I know this is make believe world but had Facebook hired him and had he worked on messaging I bet he would have beget a similar product (in make believe land). The problem most of us Americans didn't understand was that SMS cost money (in the rest of the world) and not in the USA. Most American text plans were free and unlimited in the beginning... that was until the US mobile networks caught on to the Europeans and realized they could charge per text. So that what made what's app. And FB could have saved themselves $19B.. still.. if you are right then he probably would have left FB and started What's app on his own.

<comment><USER5> There's a reason why the founders quit even after Facebook bought them.

Facebook is a growth at any cost kind of company. They really wouldn't have listened to him even if he joined Facebook in the first place.

The messenger on Android sends all your text messages and phone logs to Facebook. Mark approved that in the name of growth.

There's absolute no way Whatsapp would have been invented at Facebook. Facebook only bought it because it could have been a serious threat to their dominance.

</comment></comment></comment></comment></comment></comment><comment><USER6> This really highlights how hard it is to hire, at least in Tech. We come up with processes and fantastic lists of questions that verify how well a candidate knows minutia, and use that as proxy for how well he/she will do in a position where the primary required skill is speed of learning and growth.

I'll hire someone who knows how to find out what they are missing over someone who knows a lot of details but can't grow. But that is hard to justify and involves risk: what if I misread someone's capacity to learn and I just hired somone without the skills nor the ability to learn? Joke's on me!

So larger orgs will naturally go for process-driven hiring practices, so they can cover their behinds (and part of that is due to the requirement of applying the same standard to everyone—can't fault them for that).

But this is how small orgs can win, by taking chances on candidates that are very driven to grow, and can create impressive teams that will outlive the company: good teams always find a way to recombine at least partially in other companies.

So the corollary for candidates is: you have to reverse-engineer the hiring process of the large company you're trying to join. Or you can go for smaller companies* that do something you want to get deep into. Total comp is less but look at it in terms of you getting paid to learn. Then make yourself available so that large orgs come trying to hire you. When that happens, it will be on your terms.

———————————————

* Note: small companies don't have to be startups. While startups can be fantastic places for growth, they can also be sh*t shows since the entire company is trying to figure itself out, so be sure you properly interview their founders to get a feel for their integrity/sleaze.

<comment><USER4> How do you determine "can't grow" ?

</comment></comment><comment><USER7> If there are two good candidates and I pick one of them, it doesn't necessarily mean you were 'rejected', you just weren't selected. I've been 'rejected' by plenty of companies but I try not to take it too personally.

<comment><USER8> Still, it's pretty silly when a company says you're not knowledgeable enough in X when you literally wrote the book on X.

Being told, "You obviously don't have experience" by a company when it's literally untrue really grinds my gears.

<comment><USER9> I think you have to take all interview feedback with a pinch of salt. People make emotional decisions then try and rationalise them. You will rarely hear what the emotional issue was.

<comment><USER8> Yeah, I understand it. The _public_ reason for a rejection is rarely the same as the _actual_ reason for a rejection.

It just grinds my gears when a company adds that little bit of insult at the end of it, by somehow making it your fault in the end for supposedly lying to them.

</comment></comment></comment></comment><comment><USER10> Try getting rejected at the final executive approval (i.e., their magic eight- ball) after passing the in-person day and the hiring committee.

Once you've seen the inside of the hiring process, you'll never take this stuff personally again. It's utter garbage. At best, the process manages to select for a few traits that are probably useful, while de-selecting for others they didn't realize were crucial for ultimate success.

If you doubt this, ask yourself how one of the tightest hiring sieves in the world managed to produce Google+.

<comment><USER11> There was one company I applied to, for which I passed the screening and the technical interview, that I got a "Welcome Aboard" email from which also included paperwork for getting started. I just needed to meet the CEO as a last step, but they told me it was basically a formality and that I was hired.

I arrived on time and was told to wait outside the CEO's office. Through the wall, I could hear him talking to someone over the phone about football and what flavor chicken wings he wanted to have ordered and delivered to him. I sat there for 25 minutes hearing his muffled dudebro voice ramble on as if his schedule was clear for the day.

Finally, he let me in. At least he remembered my name. I told him why I wanted to work for Acme Corporation and the skills I planned on bringing to the table. He told me almost nothing and had me out of there in less than 10 minutes.

Not even an hour after I left did I receive an email from the same HR person who told me "Welcome Aboard!" that they wouldn't be moving me forward in the hiring process. It was one of the most devastating moments in my life because that initial email and the phone call I got after was a sign that my shitty life was finally going to turn around.

It did help teach me a good lesson that I would learn multiple times(with much softer landings) later on, which is that _most_ people involved in hiring don't know what the hell they're doing and that just because a company makes a lot of money doesn't mean that forms of insanity aren't baked into their processes. You've just got to let rejections roll off you.

<comment><USER12> Or you can do what I did, rip them a new one and tell them that their process is shit.

</comment></comment></comment><comment><USER13> As someone who's gotten rejected by more companies than I can even count or remember, I think this is great. I have a bitter, guilty fantasy that I could go back to some of those harsh rejections long ago and show them the updates to my resume since they declared me useless.

I wonder if/how companies try to measure their false negative rate. Despite how straightforward it is to fire someone in the U.S., they keep saying "it's better to reject a good candidate than hire a bad one." Is that really true? I wonder how many big companies have thought about testing that assumption, maybe changing their selectivity and measuring the effect. Have they really measured how much it costs to hire/fire a bad performer and shown it to be greater than the productivity they'd get out of a good performer they are inclined to reject? Does their strategy of holding out for months, looking for that unicorn candidate instead of hiring someone who's "just fine" today really work? How do they know? Have they measured it?

Are they even serious about their existing selectivity? Is it baked into their annual performance process too? How many of them apply their selectivity bar to their existing employees? One common thing I've seen at companies is many of their "old guard" long time folks would never pass today's interview hazing. The most difficult thing most people ever do at a company is pass the interview.

<comment><USER14> >Despite how straightforward it is to fire someone in the U.S., they keep saying "it's better to reject a good candidate than hire a bad one."

It depends on the role. Sales tends to be pretty performance-oriented without a lot of leeway if you miss your numbers.

But, for better or worse, the attitude for most roles at most companies is that, once they hire someone, they mostly don't want to fire them if they're doing an even halfway competent job so long as the company as a whole isn't doing layoffs.

<comment><USER15> > they mostly don't want to fire them if they're doing an even halfway > competent job so long as the company as a whole isn't doing layoffs

This doesn't sound anything like the "bad hire" everyone claims to be paranoid about.

</comment></comment></comment><comment><USER16> I graduated from Fullstack Academy, and I've been rejected outright by most companies I applied to; only a couple have given me over-the-phone interviews, and nobody brought me on-site.

I have all but stopped applying, am doing freelance work to keep my skills sharp and pay the bills, and plan to start my own company in the future.

My motto: If you can't join 'em, beat 'em.

Edit: most companies I applied to are not of FAANG caliber. Also, I don't feel entitled to be hired; in most cases they didn't even deign to write a rejection email.

<comment><USER17> A couple of pointers to help you forward. First, don't give up. Keep building up your experience and portfolio. To be honest, Fullstack Academy graduate means to me that you're completely entry level. That's fine, but when I'm hiring I almost never want entry level people. And even if I do want entry level people, I've got about 1000 CVs from people to choose from (and that is not an exaggeration). Landing that first job is really, really important.

How do you land the first job? You have to stand out. It is possible (and even likely) that your CV is not great. The first thing I would do is to make sure to attend as many meetups as you can for areas relevant to your experience. Try to find a few experienced people and see if you can get some feedback on your CV. Reassure them that you aren't looking for an interview per se, you would like some independent feedback so that you can make your CV look better.

When you get an over the phone interview, your attitude should be that the in person interview is nearly 100% guaranteed. There should only be 2 reasons for not getting the in person interview: the job is wrong for you (which you should be able to detect) or you have flubbed the phone interview. Without being too much of a pain, get to know some senior people in meetups and chat with them about technology. Try to get some honest feedback on what they think about your potential as a programmer based on those conversations. Over the phone interviews are a bit like that -- you should have the feeling of just kind of geeking out about your chosen field and chatting with like minded people. Practising conversations like that will help you a lot. Getting feedback is really important as well.

Now, here's where it gets hard. When I'm in a big city and go to a meetup, I often find myself chatting with someone who is clearly not very strong as a programmer. Usually they are looking for work and usually I'm not interested in bringing them on board for an interview where I work. However, it's hard to give good feedback because you don't know the person and can't tell how they will react. It's important to pick up on that vibe, because of the next step.

If you find that people aren't going out of their way to rush you to an interview, probably it's because you don't present yourself as being a solid enough candidate. So this means you need to figure out what your biggest weakness is and work on that.

The biggest red flags I've found with really junior people (and sometimes even senior people) are:

\- they have funny ideas that they obviously haven't tried in realistic situations because they aren't going to work. e.g, "In my foobar server code I discovered that it runs faster if I name all my variables, a, b, c, etc." Maybe not quite so stupid, but often pretty close.

\- they have strong opinions on stuff despite having almost no experience "Ruby is the best programming language, OO sucks, Testing is stupid", etc, etc.

\- they regurgitate stuff they've heard or read and present it as gospel "Why isn't everybody using microservices? Super-programmer Sam says you are a dufus if you don't and I believe in Super-programmer Sam".

\- just generally clueless without realising it "I'm good at Rails. It's the best way to write front end apps".

What I'm looking for in a junior developer is someone who knows a little bit, understands that they know only a little bit, is hungry to learn more, enjoys programming and demonstrates a knack for learning.

Things that really impress me are people who meet me one time and if we get talking about TDD, for instance, will go away and at the next meeting flag me down and say, "I did this. Can I get your feedback on it?"

Doing freelance work is great if you can manage it. However, you should also take the opportunity to build things that will help your life (even if it's just a TODO app, or even if somebody has already written something better). Use the opportunity to practice. Write it one way. Rewrite it a different way. Listen to senior people who tell you "X is amazing, you should use X" and then try it. Go back and say, "I tried X and I'm not sure that I understand how it's better. Can you have a quick look at my code and tell me if I'm doing it in a good way?"

As strange as it sounds, this is exactly what I want in a junior person at work. I want them to be eager, humble, always learning, and engaging. I want them to bug me constantly about how to improve. I want them to listen closely to everything I say and to try to integrate my advice. People like that are gold for me and I will seek them out.

But the biggest thing is that you _need_ to be interacting regularly with people in the industries. Meetups are best. If you can't manage that (due to your location), then devote yourself to working on open source projects, hanging out on IRC, etc, etc. It sucks that you have to work so hard at the beginning of your career, but it will pay dividends!

Anyway, good luck! As long as you are always thinking, "What can I do to become a better programmer", everything will fall into place.

<comment><USER16> Thank you for your honest advice! It's great to learn about the thought processes going on at the "other side of the table."

Some more context which clarifies my decision to "pave my own road":

-Before Fullstack Academy, I founded/co-founded two startups (we succeeded in building the products, but failed at marketing). I've also taken some actual CS courses. Bootcamp filled gaps in my knowledge and taught me how to collaborate better, but it wasn't my first time coding or interacting with fellow coders.

-Most of the jobs I applied to are entry-level. If a company is looking for senior talent, they should state that clearly and not waste junior developers' time.

-When I get excited about a company, I put a lot of time and energy into my cover letter/introductory email. In return, most companies didn't even bother with a template rejection.

<comment><USER18> If you're willing to put the time in, use your network to find someone that works at company X. LinkedIn is good for this. You can even send a link request to someone on LinkedIn that works there. But don't use the default, "I'd like to connect." Say, "Company X looks cool because ... - Do you have time to meet for coffee and tell me how you wound up there?"

<comment><USER16> I got a few warm introductions. In those cases I sometimes got further in the process, but never to an on-site.

</comment></comment></comment></comment></comment><comment><USER19> Maybe it's just me but it sure does seem like a lot of these people ended up at Twitter. And I don't see a lot of Google.

<comment><USER20> The obvious explanation would be that the maintainer (who used to work there) hit up colleagues for stories, or because it circulated among Twitter employees for whatever other reason. It's not very likely to imply anything about Twitter's or Google's hiring.

<comment><USER21> It could also be that twitter has a better hiring process with fewer false negatives.

<comment><USER20> That's _possible_ , sure, but the evidence here doesn't support that conclusion any more than it supports the reverse. When you have a small group of things that clearly weren't chosen at random, the safe bet is that they don't imply anything about the set from which they were selected.

<comment><USER21> The evidence doesn't support any conclusion really. We are just guessing. I'm merely calling what what A could be in A implies B.

</comment></comment></comment></comment></comment><comment><USER22> Do practice interviews at companies you don't really want to work for. It takes the pressure off and makes the real interviews easier.

<comment><USER23> Who has time for that if you have a full time job? Do you spend all your vacation in interviewing?

<comment><USER24> Your first job is your job, your second job is working on OSS on github to make yourself look good, and your third job is interviewing :^)

<comment><USER11> > your second job is working on OSS on github to make yourself look good

Sounds good on paper. In practice, what people do on Github is _worthless_.

I've only one company ever actually looked at what I made on GitHub. Otherwise, they'll never check out what I've done even if a project is listed on a resume. Nobody has the time or amount of shits to give to actually review your own code. Very few people I know who are working as software engineers even have any serious projects or contributions on GitHub.

As much as I love _doing_ side projects, the idea that companies care what I do on GitHub is some of the worst advice I've encountered. Now my profile is full of trash I've forked along the way and it hasn't made a lick of difference as to how many interviews I've gotten.

<comment><USER25> I'm not frequently involved in hiring, but when I'm looking at a resume for a potential coworker I will check their github. If it's shit, that doesn't matter at all to me, but if it has some neat stuff I will look deeper, and the bar for "interview" and "hire" can be substantially lowered for the in-person interview.

Basically, I'm looking for good signal, but that can show in a lot of different ways for different people. If OSS or side project or whatever is something you enjoy doing, or if you're not working full time and struggling to prove that you can bring the goods, these sorts of things can help you.

</comment></comment></comment></comment></comment><comment><USER26> Imagine looking at a website like this without being in the tech industry (or, more specifically, the "highly successful" tech industry). I can't imagine people in many other occupations looking at a site like this with any amounts of sympathy.

We truly are in a fortunate "bubble" where we can sympathize with those who don't get exactly the top-paying job they were looking for and had to "settle" on Twitter, Microsoft, etc.

</comment><comment><USER27> The Big Co interview process is a binary classifier (hire/no hire). It's actually reasonable to tune it to minimize false-positives, since a bad hire can be disastrous for all parties involved - imagine an employer changing their minds on you during your first few months. Tradeoff is that this will increase false-negatives, saying No to great people, and lead to stories in the link above.

Other thing worth mentioning is that "culture fit" might make companies turn down excellent developers, who don't happen to have the founders' same personality type.

</comment><comment><USER28> Salty software engineers :)

It gave me a good laugh, it's comforting to find some people who are saltier than me. It made confronting my own saltiness easier.

</comment><comment><USER29> Thanks for sharing this. I'm switching careers, and I've lost count of how many rejections I've received at this point. Probably my highwater mark so far was getting to Google for an onsite interview. The day after I was so proud for getting there, and not completely bombing the interviews (i.e. I was always able to at least arrive at a solution for the problems, if not always an optimized one). But ultimately that wasn't good enough, and it is back to square one.

It is easy to say, "don't take it personally", but when you're starting from a non-traditional background, and therefore the amount of rejections you receive is probably higher than normal, it is really challenging not to let it get into your head and think maybe you're just not cut out for this line of work.

</comment><comment><USER30> Like most, I've been rejected by a few companies. It hurts but it is normal. I've had what I thought was great interviews but not got it, and on the other side been offered jobs after what I thought was a terrible interview.

And I've been on the other side of the table many times and rejected good candidates simply because we had what we perceived to be better candidates.

So it is often not even be your fault, just for some arbitrary ranking/preference done by the interviewers that day someone else got the role(s).

</comment><comment><USER31> I wonder how safe would be me post my own stories... Since I don't have a major company job, would it stop my hiring chances?

But basically: one company rejected me because was against company policy hire people without experience... Except they wanted to be the first company in my country to hire someone for that role and wanted to hire a local. No wonder they even wrote magazine articles complaining of not finding anyone...

Another rejection: person that was supposed to phone interview me didn't shown for work at all, they asked another person to interview me, that person had no idea what was going on, stuff didn't went well at all... Had to answer questions for coding language I didn't knew because the person didn't knew the language the job offer was for...

<comment><USER32> I have evidence to suggest that I have been subjected to illegal hiring discrimination in the past. However, I'm not going to share my story because I know a ton of HN people will defend the discrimination as justified (even though it's not, and even though it was illegal).

But I don't give a fuck. A company wants to reject me on stupid grounds? I'll go get a different job at a better company. There's _tens of thousands_ of software employers in the bay area. If one decides they dislike me so much that they're willing to do this, it's probably a bullet dodged anyway

</comment></comment><comment><USER33> This implies that there's a stigma to being "rejected" for a role.

The answer is that you're not entitled to a role, just like a company is not entitled to have you. There's no stigma in saying "You're not exactly what we're looking for right now", even if it's the case that you might be _really great_ somewhere else or even ideal for that exact role in future.

I don't understand people who take a "no thank you" personally, some of the comments are along the lines of: "Ha! sure showed them!" but really it's just like dating, sometimes you get passed up for no other reason than you weren't the person the other was looking for at the right time. Understand rejection, don't treat it like an enemy.

<comment><USER34> > I don't understand people who take a "no thank you" personally

Probably because they've been personally rejected for a job.

I get what you're saying in the context of one job, perhaps when you already have experience. But when you're just starting out and get rejected repeatedly, of course it's disheartening.

<comment><USER14> Maybe things are different today but I remember applying to jobs out of school as being very much a numbers game. I'm sure I had dozens of rejections and those are just the ones that got back to me. By contrast, every subsequent job (well, all three of them) came from very narrow targeting and my personal network.

</comment></comment></comment><comment><USER35> The lesson is you will be rejected for a variety of reasons but it has no reflection on your ability. Candidates with less ability will be hired before you. Not because of you because they are not good at finding the best. The best they can hope for is good enough to not look badly on them.

How many places whiteboard an interview but once you are hired no whiteboards can be found. We are a far ways away from when companies start interviewing with specific questions that relate to the actual role. If that happens you can start taking rejection personally.

</comment><comment><USER36> Way back when you got actual rejection letters, I kept them and started to build a collection and would compare them (which was interesting in itself).

Once I made a game of it, I could actually have a tiny bit of fun ("yay! another one down! keep going!)

It still stings, but if you want to be truthful, you need to make a friend of failure if you are doing anything worthwhile.

</comment><comment><USER37> I'm really surprised at how they managed to get so many big names from the open source community to share their stories.

Maybe success isn't tied to grinding out a bunch of leetcode?

<comment><USER23> It's very fashionable for successful people to tell the story how they "failed" or got "rejected" but with enough persistence they found success. There is something to be learned from that but you never hear the stories of people who do the exactly the same thing but never succeed and keep getting rejected. There is a lot of survivorship bias in this.

<comment><USER38> _How I Failed and Am Still Failing to This Very Day_

</comment></comment></comment><comment><USER39> I'm starting to think institutionalizing this kind of convoluted hiring/hazing ritual also keeps developer salaries down. Imagine if whenever you interviewed, instead of getting say 1 offer in 5 you got 4 out of 5. Now you'd be in a better bargaining position when considering offers.

</comment><comment><USER40> This might be good, except there's no difference between "You're good but someone else was a bit better" to "You should get out of this industry and stop wasting your time. You aren't owed a living." which is generally the more correct thing.

I wish people gave better signals for the latter, so you might know better whether you should keep applying, pivot careers, or check out.

</comment><comment><USER41> In response to these people being hired by twitter: I think all of these statements are being sourced from twitter, and the links to their names all point to twitter, so it makes sense that people working at twitter would more often say how they got there on the platform.

Many others in the list never made it past the phone screen for twitter.

</comment><comment><USER42> This is really wonderful. As someone who just landed a job after going through so many dehumanizing and demoralizing technical interviews, this makes me feel __a little__ better about my situation.

</comment><comment><USER43> At one time long ago I worked in IT before moving to another industry that was more who you know and personal rep (interviews were a formality). What sticks out to me here is the number of people who say they were 'escorted out' in the middle of an interview or otherwise had one abruptly terminated.

Beyond the rudeness, it smacks of arrogance. Even if you sense the the person will not be a good match, there are ways of wrapping up a little quicker without being a *bag. And we wonder at the coarseness of our society today.

</comment><comment><USER44> This is an example of and response to the poor state of hiring that takes place in development.

Rarely do I know why I'm rejected, even if I ask but it feels like it could be anything, like a keyword. Applying for jobs is basically Bumble but, less fun. Instead of pics of you on a horse, you have a CV.

I bet if you combined up-front testing (like hackajob) or a boot camp course with short-term contractual work from various companies, you could create a decent hiring funnel too.

</comment><comment><USER45> Subtitled "A Compendium Of 'Ha! I Sure Showed you!'".

<comment><USER46> Well, sometimes that, and sometimes:

> _Anne-Gaelle Colom@agcolom jQuery_

> _I was refused a reference by my supervisor in France who thought the male > student on my team did all the work._

<comment><USER45> I didn't say it was always unjustified...

</comment></comment></comment><comment><USER47> "The reasonable man adapts himself to the world; the unreasonable one persists in trying to adapt the world to himself. Therefore all progress depends on the unreasonable man." \--George Bernard Shaw

</comment><comment><USER48> I like rejection. Well, maybe 'like' is the wrong word, but I appreciate the results it brings to my life. I deeply believe that a healthy working environment only comes when both the employer and the employee are right for each other. I would rather fight through rejections to find a good home than have string of mediocre roles that aren't quite right.

<comment><USER49> You'll like it a lot less when you need a way to feed your family (or just yourself), and rejection is all you get. You can't pay your rent and grocery bills with rejection.

<comment><USER50> Aye. I'm making $13 an hour while trying to apply to every job that I can, while building out my portfolio projects to improve my resume, and grinding LeetCode. Needless to say I can't really afford to socialize or eat out. It really sucks after a few weeks :/

</comment></comment></comment><comment><USER51> How many people got rejected and ended up in a worse job than the one they applied for, or in no job at all?

<comment><USER8> The opposite happened to a colleague of mine.

He got rejected by a company ("Not enough experience" was the reason given).

Then, 7 months later, not only did he get accepted to the very same company, it was at 2x the asking price from before.

It really goes to show that the hiring pipeline can get pretty schizophrenic sometimes.

</comment></comment><comment><USER52> If I could be bothered (which I can't quite) I'd set up an "I rejected them" alternative: all the companies I wouldn't choose to work for because they are unethical or corrupt or produce trivial crap that's not worth making.

</comment><comment><USER53> Note to self: If I get rejected from a lot of companies, just apply to Twitter. They'll surely say yes.

Addendum: there should be a companion site "Even twitter rejected me!"

<comment><USER54> The site was made by an ex-twitter engineer, so lots of the entires come from other Twitter engineers.

<comment><USER55> That's a really interesting sort of survivor bias.

</comment></comment></comment><comment><USER56> Looks like nobody knows enough JS...

<comment><USER57> This is interesting because in reality JS is supposed to be easy.

Since I've switched to Typescript, I've forgotten tons about Javascript and I don't care. Obviously I'm refreshed every time I check under the transpiler hood to see what's going on, but that's rare.

JS always felt to me like a language wherein you didn't want to memorize all of it's arcane weirdness anyhow.

<comment><USER21> Typescript doesn't do a lot of transpilation if your target is ES6.

<comment><USER57> True, but in TS I've found the code is structured differently, to the point where 'prototype' inheritance is effectively obfuscated.

The other thing I find odd is why employers care that someone has deep and existential knowledge of JS? Who cares? I would probably object to any of my devs moving into JS weirdness unless it was totally necessary. You want simple, clean and readable solutions to business (or technical) problems, not something fancy pants. Every bit of oddity / less common stuff introduced just increases risk.

<comment><USER21> ES6 supports classes, so it would be the same thing.

> The other thing I find odd is why employers care that someone has deep and > existential knowledge of JS?

They are probably just bad interviewers, or the company really doesn't know what it wants. Esoteric knowledge questions are a warning signal that you probably don't want to work there.

<comment><USER57> Most companies, even the best do this.

As for TS I'm thinking interfaces, generics etc.

<comment><USER21> I wish! Wouldn't that make the interview much easier. Nope, instead they ask you to whiteboard up some code (in whatever language you want) and discuss how you would design something you never saw before.

</comment></comment></comment></comment></comment></comment></comment><comment><USER58> After reading through many of these, it felt a bit unhealthy and pointless.

Something I've always been told about interviewing: getting in the door means you are at least qualified for the job on paper. The company would not waste its time talking to you if there wasn't at least some chance they are going to hire you. Whether they hire you depends on how well you spin your story and how strong of a rapport you form with the interviewers.

If someone does not like you, they will not hire you. This can make things difficult for introverts and socially-awkward people.

</comment><comment><USER59> Interesting that Chris Wanstrath, a newly minted billionaire and the counfounder & CEO of Github, just chimed in on the site and said he was rejected for an engineering job at Yahoo. If the standard Valley screening/interview process isn't able to pickup on the abilities of someone obviously very talented, self-motivated, and entrepreneurial, doesn't it call into question the efficacy of such procedures? It seems like existing hiring procedures might be very broken.

<comment><USER60> There are many reasons why Chris might have been rejected. Maybe indeed Yahoo was not able to recognize his talent. But maybe the company was hiring for a specific role and found someone better? Maybe despite his skills he didn't perform well in that particular interview?

Hiring is very difficult. Your have limited amount of time with the candidate and based on some coding task and a few hours of interview you need to predict whether that particular candidate is going to perform well in the role you're filling. It's hard, and I'm sure I passed on a few good candidates just because at that point of time I wasn't sure enough whether they'd be a good addition to the team or not.

</comment></comment><comment><USER61> I'm far less worried that these companies reject a lot of people than I am worried that so many engineers are willing to accept idiotic open-plan offices, horribly dysfunctional management, pay that (while high) doesn't fairly reflect a realistic fraction of the monetary value you actually contribute to the business.

Jobs at most well-known tech companies are really dumpster fire terrible things, bad for basic psychological health.

It's sad that we consider getting these jobs a serious measure of any kind of success.

</comment><comment><USER62> But how do you know where your bar is if you think your rejection is merely a result of companies not knowing any better. Maybe you are not really good enough to work at google.

</comment><comment><USER63> Max Howell's story really surprises me. You would figure that someone would've internally fast tracked a developer like him.

<comment><USER64> That one is famous. We had a quite lively discussion about it here shortly after the event.

Edit: to this day I have no fucking idea what "inverting a binary tree" means, other than the interviewer was too proud to admit they made a mistake.

Trees have two dimensions and "invert" is the one you can't change.

<comment><USER65> It means to reverse it left-to-right, like a mirror.

You will _never_ have to implement this yourself for real.

<comment><USER66> You won't because it's a toy problem, not because it something only greybeards did in libraries written decades ago.

Asking someone to describe the simplest possible transformations on one of the simplest data structures isn't a stretch, and this is coming from someone without a CS degree.

EDIT: And that's not to say Google doesn't have a screwed up hiring system. I know someone who implemented a dynamic programming problem correctly, with the appropriate big O complexity, but was rejected because the constant time factor was slightly higher than what the interviewer was looking for. That's a BS decision; Max Howell's was not.

</comment></comment></comment></comment><comment><USER67> I'm 36, recently moved to Berlin. I have 10 years of working experience from tiny to big companies working as android developer, front-end and interaction designer.

For some reason I'm struggling a lot to find a job in Berlin. Most of the CVs I've sent never get an answer, those who get there ask me for a phone interview which that I never get through. They always answer me with a copy- pasted template from the Internet.

This is some feedback I got from other people after checking my CV

      - I'm too creative for "normal jobs" but not creative enough for the creative ones

      - My last 2 years I worked as a freelancer and German companies don't like that

      - I don't show consistency in tech stack

      - I'm in the verge of getting old

Whatever the reason is, it's very frustrating. Drains my energy and willingness to keep working in the sector.

(update: formatting)

</comment><comment><USER68> whole lot of "suck it up" type of rationalization here, over a system that is quite obviously broken.

</comment><comment><USER69> You may not have been rejected because of your technical skills, but because of your soft-skills.

A large part of our hiring process involves deciding if you think you can work with this person day to day and if you think they'll fit in the company culture.

</comment><comment><USER70> Seems like a lot of these people who are getting rejected end up at Twitter.

</comment><comment><USER71> This isn't some collection of rags to rich story. I know some authors get dozens of rejections over years before being published. This isn't close.

</comment><comment><USER72> Sometimes rejection comes from an inside company politics, like the person that is leaving is too stubborn to approve a replacement or something similar to "we decided not to hire her, because we think she won't fit our culture, but we can't legally justify it, so it's better to just write back that she can't code".

</comment><comment><USER73> Not hardly enough women in that list. Do they just not get rejected enough? Or are they not willing to speak up about being rejected? Were they not reached out to? Or is this a representative number of "women in tech", including rejections.

Possibly... it's all of the above.

<comment><USER38> Yeah, we need more rejected women in tech.

</comment></comment><comment><USER74> I applaud the sentiment, but isn't this just further reinforcing the underlying assumption?

 _" Hey everyone, these massive corporations rejected me, making me feel bad about myself. But eventually, a massive corporation accepted me, so now I feel good about myself!"_

</comment><comment><USER75> This is like It Gets Better, but for fragile software engineers who obviously are talented enough to make 6 figures some place else. I understand rejection can feel personal, especially when so much of your life and identity comes from the work you've put into mastering some field, but this doesn't seem like the healthiest mindset. I'm just leaving college now and don't have much of a perspective yet, but the application/rejection treadmill feels a lot like a continuation of academic external validation. Just substitute Google and Facebook for Harvard and Stanford.

<comment><USER32> Yeah it feels like they want medals for getting rejected at companies that haven't even bothered to give me a callback.

We all get rejected from dozens of interviews. That's just life. Did anybody ever think it wasn't like this?

<comment><USER76> When I was a senior at university, my friends and I all had a wall at our apartments covered with our rejection letters. Back then (if they gave you the courtesy of a reply) they were sent on paper in the mail. So yes, it's always been that way.

I myself have been on interview committees and voted to reject candidates who got hired, and turned out to be good. Why did I want to reject them? Don't really know, just got a bad vibe in the interview more than anything. We didn't do much technical screening at that company. Decisions were mostly based on past experience and references, and whether you seemed reasonably intelligent and sociable in the interview. I think that we hired a real dud maybe once, so it seemed to work.

<comment><USER77> I did this when I was a math undergrad applying for grad school. I applied to 15 graduate programs and got into 10, and rejected by 5. The surprising pattern was that I got into a graduate program if and only if it wasn't in the Northeast; selectivity of the program didn't seem too relevant. After graduate school, for my first job I ended up being on the graduate admissions committee at the Harvard Mathematics department and got to see things from the other side, where you receive 400 incredible applications, and can say yes to less than 1% of them. In that setting exactly what you wrote "Decisions were mostly based on..." applied just the same.

<comment><USER14> Over the years I've known various undergrad admissions people at another Boston area school. At least the way they used to do things was to basically have a matrix with quantitive academics/test scores on one axis and a score for soft stuff on the other axes.

Admit the "no brainers" in the upper right. Reject the "no ways" in the lower left. Then take a harder look at those in the middle. But the reality is that you could probably take an arbitrary subset of the middle group and they'd probably do nearly as well/contribute as much/etc. as the final selection you sweated over.

I've also been on the selection committee for various conferences over the years and that also often ends up working the same way to a significant degree.

</comment></comment></comment></comment></comment><comment><USER78> Original posting from 2015, 206 comments:

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

</comment><comment><USER79> Why most of these people have been rejected and then landed at Twitter?

Not sure this is a great signal for Twitter, just saying... Selection bias / confirmation bias might be at play.

</comment><comment><USER80> I still can't get over the fact that Google rejected mxcl, author of homebrew, possibly the most important piece of software on OSX, because he couldn't remember some useless piece of easily-googleable (ha) CS trivia on the spot. Even though they all run it internally. If that isn't the purest, most concentrated form of arbitrary, blind, own-goal beaureaucratic corporate idiocy I don't know what is.

And people actually try to emulate their interview practises.

<comment><USER81> "possibly the most important piece of software on OSX"

I'm earnestly trying to avoid downplaying his work, but it's only a package manager. Unless he was interviewing to be Google's next head of package management on OSX, I'm not sure why you think assessing him on something other than his useful side project is bad form. I'm also not certain how an answer being 'easily-googleable' makes it arbitrary or pointless. Someone had to write that answer on Stack Overflow, and the chances are you'd rather hire that guy.

<comment><USER82> _> I'm earnestly trying to avoid downplaying his work, but it's only a package manager._

I'm earnestly trying to avoid downplaying your comment, but you sound like you have _no clue_ how much engineering effort and talent is _actually_ required to build and maintain a reliable, functional, production-grade package manager that a huge number of people use.

Being able to completely implement and support a sophisticated software product end-to-end is a FAR better indicator of engineering talent than isolated algorithm puzzles on a whiteboard. Whiteboard problems are used in interviews simply because individually executed complete projects are so rare (at all, let alone publicly visible).

In fact, whiteboard interviews have all but been proven to be among the least useful at distinguishing good vs bad candidates. The only reason it works is because everyone knows it's a game, studies the game, and gets tested at the same game. It's essentially a disguised IQ test that you have to study for.

The problem is, if you don't study for it specifically, you're at a huge disadvantage. This leads to famous engineers (clearly talented) getting rejected because they don't practice jumping through the particular hoops the company makes everyone jump through.

It seems there are more than several cases where Google needs a high profile engineer more than that engineer needs Google, and as a result the engineer doesn't study the hoop-jumping Google wants. Google rejects them out of bureaucratic process, and loses out on a good hire.

On the opposite side: I'm not a famous engineer, so I suck it up and practice whiteboard algorithm problems like most everyone else -- and as a result, I've never had a problem passing coding interviews. But just because most everyone jumps through hoops to play the game, doesn't mean everyone should have to.

<comment><USER83> To add to your points, the problem is not just missing good engineers because they don't study and play the game, but also hiring bad engineers because they study and play the game.

I personally know of people who habitually study FAANG interview questions, and make it their career to jump ship every few years for salary boosts. I've worked with some of these people; while they are nice and friendly folks and I consider some of them good friends of mine, they are much less-good engineers compared to many others I know, who stay in smaller startups and want to get things done and don't want to play the interview game.

<comment><USER84> I'm one such 'engineer' who is good at whiteboarding algorithms. I can do well on 'system design' questions but dont feel confident at all about really designing such a system from ground up. I, for one, am glad that I can find gainful employment by memorizing 200 pages.

<comment><USER46> I'm happy for you, but I hope you're also that honest with yourself and your employers about your limits when they want you to built something that you know is over your head

</comment></comment></comment></comment></comment></comment><comment><USER85> My favorite rejection story is the one by Adam Sontag

</comment><comment><USER86> >Rejected by Valve Software for a Software Engineer position because i was young. (when i was 19)

Really? I wonder what the culture is like at Valve

<comment><USER87> [https://steamcdn-a.akamaihd.net/apps/valve/Valve_NewEmployee...](https://steamcdn-a.akamaihd.net/apps/valve/Valve_NewEmployeeHandbook.pdf)

<comment> rc-1140 Don't link the handbook, it's not _exactly_ how Valve operates.

[https://www.pcgamer.com/ex-valve-employee-describes- ruthless...](https://www.pcgamer.com/ex-valve-employee-describes-ruthless- industry-politics/)

[https://www.reddit.com/r/valve/comments/8zmp07/former_valve_...](https://www.reddit.com/r/valve/comments/8zmp07/former_valve_employee_tweets_his_experience_at/)

</comment></comment></comment><comment><USER88> Actually if you come to the bay area and just apply to startups... it will lift your spirits by a lot. It's way easier here.

</comment><comment><USER89> I don't understand what this page does, it shows normal examples for everyday life. There aren't even enough details to judge whether company A made a mistake not hiring a person now working for company B. Maybe the match was just poor. Everybody gets rejected, you probably rejected a lot of people and stuff yourself (if you didn't you should try it sometimes), who cares, get over it.

<comment><USER90> That is _the point_ of the site. Everybody gets rejected; here's a bunch of people that got rejected and went to get great jobs and _you_ can to.

<comment><USER89> Ok, I don't really see why there should be a site for this, I mean it's like making a site of people saying they fell a couple of times when they learned to walk.

<comment><USER90> We all have different levels of resilience. This site isn't for you.

<comment><USER89> Hmm, maybe its something parents can take into account: prepare your kids for some inevitable failures.

I could also be on the site btw, I was told during my first assessment interview that I might at some point be a decent supermarket stockboy, not now, but maybe over time.

<comment><USER90> When I was in university one of our dorm mates went home at thanksgiving only to find his parents had moved with no forwarding address. He tracked them down and his parents basically said "you're 18 now, leave us alone". He was traumatized.

I said "Why doesn't he just tell them to fuck off" and one of my other dorm mates said "Parents who raise their kids to have the guts to tell them to fuck off also don't fuck them over". That has stuck with me ever since.

So, it's too late?

</comment></comment></comment></comment></comment></comment><comment><USER91> this is silly. it's interesting when it's someone notable being rejected for the exact thing they're now notable for but a ton of these are just like people who just graduated saying "I didn't get this one job but now I have a job". great memoir kiddo

</comment><comment><USER92> Having failed the on-site's with several "big" companies this year these anecdotes resonate with me.

</comment><comment><USER93> Where is the proof that they were rejected at X and where is the proof that they were hired by Y?

</comment><comment><USER94> You can reapply.

</comment><comment><USER95> tldr

Millenials get frustrated when they get rejected after applying to be a cog at random big corps.

</comment><comment><USER96> From later down in the list: "Applied to the Harvard Business School as a Stanford honors grad with a 740 GMAT, no interview. Was rejected from Airbnb for a customer support role and later was passed over for a PM role at Google after 2 phone screens. I've cofounded Y Combinator startup (Ridejoy YC S11)... Today I'm a product manager at Etsy. Timing and fit are everything."

This is literally the worst rejection story I've ever heard.

<comment><USER97> Worst in what way?

<comment><USER96> Not getting an interview from HBS as "a Stanford honors grad" is the worst rejection he's ever experienced? The whole post reeks of humble brag.

</comment></comment></comment><comment><USER98> Seems like a lot of people went on to be hired by twitter after not satisfying some other hiring processes. What if this just means that twitter hires second rate people? Also, I wouldn't have hired the guy who doesn't use semicolons in his JavaScript, either.

<comment><USER99> I used to hate when I saw JS with semicolons too. "Get off my lawn" with that naked code!

Not sure when or how it changed, but I'm on the other side of the fence now. Without semicolons (unless multi-statements on a single line), JS is so much cleaner. A line break is perfectly sufficient to signal the end of a statement.

<comment><USER100> That is a perfectly reasonable opinion. However, as a grammar-nazi, I feel that proper punctuation is important. While certain poetic forms may take liberties with punctuation for the sake of the artistic expression, sentences end with a full stop--separated by a subsequent sentence in the same paragraph by _two_ spaces--and lines of code end in an unambiguous visible token.

Newline/return characters are whitespace tokens. Differentiating them from other whitespace tokens is the first step on the path to madness. What's next? Treating tabs differently from spaces?

~ (ha ha only serious)

<comment><USER98> I feel very serious about this</comment></comment></comment></comment>


Tesla Model 3 'rival' Volkswagen ID.3 is turning into a cautionary tale - <AUTHOR> https://www.teslarati.com/tesla-model-3-rival-volkswagen-id-3-cautionary-tale/ <comment><USER2> Seems unlikely. Volkswagen has been saying for a long time that the release date for the ID.3 is "Summer 2020". If it gets released in Europe in the summer months (June, July, or August) then they have hit their release date.

There have been rumours that the ID.3 will be released at the end of March, but that seems optimistic and is probably a misinterpretation of being able to spec the vehicles before delivery:

[https://www.thisismoney.co.uk/money/cars/article-8004807/The...](https://www.thisismoney.co.uk/money/cars/article-8004807/The- UKs-supply-1-500-VW-ID-3-electric-cars-sold-TWO-DAYS.html)

In the end, the particular release date doesn't matter much. The main thing is that Volkswagen will be producing EVs year after year from now on across the whole group. Volkswagen is the world's biggest car company and they will, unsurprisingly, also be the world's biggest EV producer.</comment>


Conspiracy theory of everything - <AUTHOR> https://www.ft.com/content/99bc4afc-21f2-11e8-8138-569c3d7ab0a7 <comment><AUTHOR> Quoted from comment section:

 _There are conspiracy theories and there are carefully considered theories about events that suggest a conspiracy. Adam Smith was rather good on how small groups of people can cohere to conspire against the public good in their own interest. Most of our public life is a complex interconnecting set of such small-scale conspiracies.

As to conspiracy theories, we should remind ourselves of their function and why they emerge. Like grimoires in Early Modern Europe, they are texts and ideas that explain the world to the uneducated but the uneducated cannot be blamed for this. They are left in the dark, given half-truthful narratives that they are intelligent enough to distrust.

Conspiracy theories emerge because there is a vacuum in social truth-telling and they fill that vacuum. The vacuum is created by those in power or dependent on power developing a theory for that hold on power that just does not fit as the 'whole truth'. The cracks show (Watergate, Gulf of Tonkin, whatever) and the official theory looks dodgy.

The entire of our society is built on a contestation of half-truthful narratives, stories we tell ourselves to justify our situation or our hold on power or our lack of power. If the 'deplorables' choose to fill a vacuum with their own tales, it is only because our tale lacks credibility for them and often should lack credibility for us.

The current crisis over the Salisbury nerve agent is typical. The Prime Minister jumps in with assertions and propagandists create narratives (on all sides) that are clearly a 'story' designed to get people behind particular tales of perfidy, She may be right but the assertions are premature. Alternative explanations are dismissed.

The lack of intellectual integrity in exploring the complexities of Russian state control of its assets past and present and the motivations and interests of the many parties involved and the opportunity to tell the public the facts without assumptions until investigation is complete is lost and creates the space for surmise and distrust.

From this perspective, a conspiracy theory is simply an act of defiance where you create your own falsehood as a story you chose over the incredible tales of those who are determined on not handling an issue with transparency._</comment>


Blind Injustice - <AUTHOR> https://www.superhighway98.com/injustice <comment><USER2> Police overreach is a real problem, but writing about how Racism isn't the root of the problem and posting it right now is pretty tone deaf.

</comment><comment><USER3> It is the root. It's just it's the racism 50+ years ago not the racism today that's the real problem. Until we address the economic advantages white people had back then and have today due to it we wont solve racism. Are we really just supposed to get rid of it today and then say "time to catch up"? I hope not.

<comment><USER4> Based on what you're saying, it's not a race issue then, it's an economic one? Were there not other races that were poor 50+ years ago?

<comment><USER3> Yes I think it the economic issue has eclipsed the race issue due to the strides we've made against racism in modern times (of which there is still much to do).

I find it very hard to talk about this issue concisely but I'll try. Other races were poor 50+ years ago just as they are today and I believe these poor people suffer many of the disadvantages many African Americans suffer because they are indeed the same.

Edit: that wasn't very concise it seems after rereading it. I failed to mention that I don't think any other race (in the US) has been as totally economically disenfranchised as African Americans were and that is why this is predominantly an issue that affects African Americans.</comment></comment></comment>


Palm founder Jeff Hawkins on neurology, big data, and the future of AI - <AUTHOR> http://www.theatlantic.com/magazine/archive/2013/07/the-intuition-machine/309392/

<comment><USER2> Numenta/Grok/Hawkins harps on this idea of "streams" of data and how traditional NNs don't work well because they lack recurrent connections. The whole "no recurrent connections" thing was not true in the first place because recurrent neural networks most certainly exist and did in 2005, they just weren't very effective. However, fast forward to 2013 and nearly a decade of new research, recurrent neural nets are more powerful than ever. I suspect they could go head to head with anything Hawkins is selling.

The problem more generally ends up as a philosophical one: if we're trying to create a machine capable of intelligence, how much inspiration should we take from the brain? Perceptron based NNs loosely approximate the brain while Hawkins believes a more literal approach is the way forward. Still, even Hawkins' approach stops way short of something like the blue brain project.

Personally, I suspect it's much like achieving flight: We need to build an airplane (a machine that takes advantage of the same phenomena as a bird does in order to achieve flight). Just like the bird is not the only way to fly, I don't think the human brain is the only way to generate intelligence. But until someone can prove it one way or another, I have a feeling it's a debate we'll be having for a while.

</comment><comment><USER3> Academia is really pushing the boundaries of neural networks and getting machines to perceive visual and auditory input. Great to see commercial ventures step in to create value from those advances. Google is hiring in that field because [0] voice and sight would seem to be the two most natural inputs (vs typing and clicking).

Interesting that Grok is not trying to push the boundaries of neural network size in the same way that new Google employee Geoffrey Hinton has stated as his goal. Grok's approach would likely create huge value to the Honeywell's and GE's of the world. There are lots of turbines, thermostats, generators, and robots to improve.

Will the day ever come that your coffee maker has a Nest-like capability to determine when you're up, a Google Now-like function laity to know if you have time for coffee, and a Grok-like capability to know when to have your coffee ready?

Seems ridiculous, but there's a chip in just about everything. So, why not?

[0] My own speculation.

</comment><comment><USER4> Here's an related talk by Jeff Hawkins at Google, where he gets into his ideas about the structure of the brain, and what he's done to reconstruct it in software/hardware.

[http://www.youtube.com/watch?v=4y43qwS8fl4&list=FLgNLujlOCEu...](http://www.youtube.com/watch?v=4y43qwS8fl4&list=FLgNLujlOCEuMeiWdePPZaAQ)

<comment><USER5> Thanks for pointing out the video!

In this talk, in the second half Jeff is actually talking about Grok too, and at ~38 he shows the architecture: [http://i41.tinypic.com/4jhiu.jpg](http://i41.tinypic.com/4jhiu.jpg)

</comment></comment><comment><USER6> Numenta was founded in March 2005, more than 8 years ago. What has it accomplished?</comment>


CLU: Reference Manual (1979) [pdf] - <AUTHOR> http://publications.csail.mit.edu/lcs/pubs/pdf/MIT-LCS-TR-225.pdf?new=2 <comment><USER3> Codified Likeness Utility?

All joking aside, my first question when I saw this was "is there a compiler / implementation for this language".

Here's what I found in response to looking for that:

[http://pmg.csail.mit.edu/~dcurtis/clu/](http://pmg.csail.mit.edu/~dcurtis/clu/)

[http://www.pmg.lcs.mit.edu/CLU.html](http://www.pmg.lcs.mit.edu/CLU.html)

Looks like you're in luck if you're running a VAX. Otherwise, I dunno...

edit: OK, there's a CLU2C compiler:

[http://woodsheep.jp/clu2c.html](http://woodsheep.jp/clu2c.html)

<comment><USER4> We used CLU when I took MIT's Software Engineering class. I think we used pclu ("Portable CLU", which translated to C.

</comment></comment><comment><USER5> Thanks for sharing it as it forced me to look it up. The Wikipedia article has nice summary and traces its effects:

[https://en.wikipedia.org/wiki/CLU_%28programming_language%29](https://en.wikipedia.org/wiki/CLU_%28programming_language%29)

I knew about some of Liskov's work but didn't know CLU was her precursor to OOP. Among other things. Pretty forward-thinking. I see it as a nice space between Structured Programming and OOP where people wanting some, not all, OOP constructs might be comfortable.

<comment><USER6> Indeed. In 1979 I was part of a small group of students working with Professor Irene Greif on designing a public key authentication system (very hard, as I understand it it took until 1985 to get it right), and she was part of the LCS group that used CLU. Coming from a Structured Programming background, it indeed occupied a nice space there (although LISP was more fun).

<comment><USER7> Greif.

<comment><USER6> Thanks.

</comment></comment></comment></comment><comment><USER8> This reminded me the good old days when I was writing a CLU compiler based on the spec found in the russian translation of Liskov's Abstraction and Specification book. :-)

</comment><comment><USER9> Surprising amount of C/Unix influence in lexical conventions, for 1979. For instance note the character escapes in string literals: \n newline, \177 octal (7.5, p. 25). The text formatter program in the example appendix (IV.2, p. 140) is a miniature troff.

</comment><comment><USER10> I took 6.170 (software engineering aka small group projects) and 6.035 (build a compiler), both in CLU, at MIT in the 80s. I was a Lisp guy so I didn't want to like CLU, but I remember thinking the exception handling was a win - <USER2> declared the exceptions thrown so that the compiler could check that you were handling all the thrown exceptions. Lisp had nothing like this since everything was dynamic and with C it was given that real men did not check return values for errors. I was glad to see them resurface as checked exceptions in Java.

</comment><comment><USER11> Look generics and exceptions in 1979!

I guess some language designers missed something.

<comment><USER8> CLU was way ahead of most of the mainstream languages of 80s. I remember that coding the compiler for generics and Pascal-like unit system I added on top of the standard spec was quite fun! I was compiling generics to an intermediate language opcode and then generating the machine language during the linking phase. Oh, those good old days!

<comment><USER11> I was being sarcastic.

There are so many powerful languages since the late 60's on the mainframe systems and yet we got what we got.</comment></comment></comment>


Next.js 9.4 – Fast Refresh, Incremental Static Regeneration - <AUTHOR> https://nextjs.org/blog/next-9-4 <comment><USER2> you guys might be interested in a current Reddit thread (also on HN: [https://news.ycombinator.com/item?id=23136688](https://news.ycombinator.com/item?id=23136688)):

[https://old.reddit.com/r/javascript/comments/ghfyd2/secondgu...](https://old.reddit.com/r/javascript/comments/ghfyd2/secondguessing_the_modern_web/)

specifically this sub-thread of Mithril's author and myself doing a "Hello World" Next.js perf assessment vs a full-blown ecommerce page:

[https://old.reddit.com/r/javascript/comments/ghfyd2/secondgu...](https://old.reddit.com/r/javascript/comments/ghfyd2/secondguessing_the_modern_web/fq8th3k/)

<comment><USER3> Later in the thread, the author links to this site as a real world example using domvm* -- even anecdotally it feels very fast!

[https://us.thermosoft.com/floor- heating/systems/thermotile-m...](https://us.thermosoft.com/floor- heating/systems/thermotile-mats?track=0)

* Edit -- initially i incorrectly claimed that this site uses mithril -- (it uses domvm w/SSR, not Mithril)

<comment><USER2> dammit, it's still pre launch, plz don't hug it to death too much! oh well, here we go!

the link above disables Google Analytics on that page, which would otherwise add an extra 50ms of js time (and would account for the majority of the js on the page).

(it uses domvm w/SSR, not Mithril)

<comment><USER4> I'm really interested in your comment about how Gastsby, Next et. al. are doing SSR wrong. For context, I'm an SSR newbie, currently trying to migrate a site I started away from Gatsby (realized it's not the right tool for the job).

To me, it seems like Incremental Static Regeneration is the best of both worlds - you get a static site without huge build overhead and SSR niceness.

However, peeking in dev tools, sure enough your site is a bit faster in nearly every lighthouse metric compared to static-tweet.now.sh despite being decidedly more complex.

Could you expand on how Gatsby and Next are doing SSR wrong and what it takes to do it right (i.e. what is DOMVM doing instead).

I'm sorry if you've answered this elsewhere in the thread, I looked around and didn't find anything.

<comment><USER2> > I'm really interested in your comment about how Gastsby, Next et. al. are > doing SSR wrong. For context, I'm an SSR newbie, currently trying to migrate > a site I started away from Gatsby (realized it's not the right tool for the > job).

please read through the whole Reddit thread i linked. i compare a minimal Next.js hello-world page to domvm-rendered e-commerce page. what specifically they do to produce such a sub-optimal result will remain a mystery to me because i don't particularly care to investigate. no one has given me a bare- minimum Gatsby site to evaluate so i have no idea how it compares besides looking at one of their slow showcased apps in the reddit thread: [https://airbnb.io/](https://airbnb.io/)

i think a lot of your questions may be answered by reading the Reddit thread.

<comment><USER4> I looked through it earlier but missed the "continue this thread"

> SSR can be done correctly, even with React

This stands out to me, and I agree completely.

I dug around in devtools and found a few interesting things looking at the static-tweet.now.sh (Next w/ Incremental Static Regeneration). It seems like the performance is more or less on par with domvm as far as network usage EXCEPT for the initial bundle (which is mostly react & dependencies). For subsequent visits, this is cached and performance is great, but devtools tests with a clean cache so this is hidden.

Admittedly, that's a huge qualifier. It doesn't seem like Next is doing anything wrong with SSR other than using a framework with a huge bundle. As a result, the huge bundle ends up getting sent even for a page (or entire site) with no interactivity.

In theory, it might be possible to avoid sending the bundle for routes that don't need it, but this ends up being a fundamental limitation of react afaik.

Vercel (the folks behind Next) put it really well

> React at Facebook is… > …unlike React at ${anywhereElse}

The large initial bundle pays off for a site like facebook or a web app which really takes advantage of all React has to offer (wether that's performance, tooling, or dx), but definitely deserves more second guessing than it recieves.

<comment><USER2> right.

perhaps it's possible with Preact|Inferno + SSR, i dunno. but this [1] seems to use babel/webpack and a bunch of other stuff. it's not clear to me from that post how minimal the end result can actually be.

the thing is, React's _ecosystem_ is also to blame, it is so full of ready-to- go-do-everything popular components with inefficient code that cannot be tree- shaken, that lack of care in bundle evaluation is absolutely rampant. every imaginable feature is just some burned-out dev's `npm i` away, node_modules be damned.

[1] [https://www.digitalocean.com/community/tutorials/build-a- ssr...](https://www.digitalocean.com/community/tutorials/build-a-ssr-app-with- preact-unistore-and-preact-router)

</comment></comment></comment></comment></comment></comment></comment><comment><USER5> I have nothing but good things to say about Next.js, one of the few web libraries that I'm really excited about. Great developer experience, the API is simple and very stable and the feature set is really powerful.

<comment><USER6> If you've had a chance to look at nuxt.js and/or gatsby.js, how'd you compare those with next.js?

<comment><USER7> We built [https://indieshops.co](https://indieshops.co) on nuxt.js and then used next.js for [https://vimota.me](https://vimota.me) (my personal site) and [https://referrist.com/](https://referrist.com/):

Our experience was that nextjs was way more reliable (had to restart the nuxtjs local server every couple page loads), had much much better support for typescript, and had a more active community and ecosystem which led to questions being answered more easily and things improving at a quicker rate as well.

That being said, I think it's great to have competition and hope Nuxtjs continues to do their thing! I'm particularly excited about the new frameworks being built on top of or adjacent to nextjs (Blitzjs, Redwood, Remix).

</comment></comment></comment><comment><USER8> Every time I see someone on this site complain about the build setup complexity of modern frontend and having to fiddle with webpack/babel for ages I'm thinking of all the times I have done:

yarn create next-app my-app & cd my-app & yarn dev

and be up and running in 2 minutes.

<comment><USER9> Why don't you list all the command you have to issue before the project hits the production?

I can do this too: without the "modern frontend" all I had to do is open my code editor.

<comment><USER10> Uh, "git push"? With netlify or vercel you're up and running in about 60 seconds. I don't see how you get from your code editor to production without a few commands in between.

<comment><USER9> That's the point: I don't. So bragging how it is easy to have an initial setup with a command or to makes no sense. It's what you do till the project reaches the production state.

</comment></comment></comment></comment><comment><USER11> Shameless plug, but if you plan to pair Next with an headless CMS, we (DatoCMS) make it super easy to handle responsive, progressive, lazy-loaded images with blur-up thumbs, as our edge CDN takes care of everything for you, without paying any cost at build time.

[https://www.datocms.com/blog/offer-responsive-progressive- lq...](https://www.datocms.com/blog/offer-responsive-progressive-lqip-images- in-2020)

<comment><USER11> Example here: [https://cms-datocms.now.sh/](https://cms-datocms.now.sh/)

</comment></comment><comment><USER12> so happy for this, been using canary `nextjs` + `now` for all my non work projects

my favorite feature of `now` is environment variables, and `next.js` 9.4 has even better support. so if using `now`, you store your env vars / secrets in your project on [https://vercel.com/](https://vercel.com/) in separate buckets for prod, dev, etc

then on your local environment run `now env pull` and get the latest dev env vars populated in `.env` of your project. this is super great for remote teams where you don't have to share .env files via communication channels / ask someone for the latest variable value

<comment><USER13> How do you make sure the secret env vars are only used in server side JS and never in the client bundle? I was working on a Nuxt app and got really nervous about this and never found a good answer.

<comment><USER13> Just read TFA and it looks like the Next team has a good answer for this! Glad they made it simpler.

</comment></comment></comment><comment><USER14> "Fast and reliable HMR". I had to look this one up. It means "Hot Module Replacement".

<comment><USER15> No wonder given that it's a TLA.

<comment><USER16> Totally lame acronym

</comment></comment></comment><comment><USER17> For a simple static site, is this a better option than Gatsby?

<comment><USER18> Definitely, compared to Gatsby, Next is much simpler. At least every time I tried Gatsby, I just had to give up after a few hours because of the complexity and massive amount of boiler plate that you had to stitch up yourself from examples.

<comment><USER19> Interesting, just yesterday I migrated a site from react-static to Gatsby (because of a nasty bug that's been open in react-static for ages, seems to be struggling somewhat for maintenance) because I thought Gatsby looked simpler than next.js, haha.

Perhaps it was just that Gatsby felt closer to react-static's model and it was more readily apparent how to adapt a react-static site to Gatsby with as few changes as possible, using their createPage api to replace the route config in react-static and bypassing all the GraphQL as described in [https://www.gatsbyjs.org/docs/using-gatsby-without- graphql/](https://www.gatsbyjs.org/docs/using-gatsby-without-graphql/) \- I didn't have time to do a detailed comparison of frameworks or rebuild large parts of the site.

I was pleasantly surprised how quick and easy the migration was, took me about 90 mins for a site with about six templates and Gatsby seems to build faster and has a much better ecosystem of plugins etc. I wrote up the process at a high level at [https://github.com/react-static/react- static/issues/1203#iss...](https://github.com/react-static/react- static/issues/1203#issuecomment-626361725) if anyone is interested in the specifics

Did I understand correctly that next.js isn't just a static site generator and ideally you have a server side component too? This was what started confusing me in their docs, but perhaps I got the wrong end of the stick.

I'll have to give next.js a proper look next time I'm building a site from scratch anyway!

<comment><USER19> OK, ended up migrating another site I manage to next.js as the preview feature is a killer for the site admin, and I have to say I do like it more. It's a bit more work to migrate but I think worth it. Thanks for the recommendation!

</comment></comment></comment></comment><comment><USER20> Having absolute imports and aliases built-in is huge. This was a pain to set up before, so I'm really excited to try this out.

</comment><comment><USER21> Incremental Static Regeneration sounds awesome for pages where you don't mind the data being a request behind but you don't want it completely static at build time. Seems like a really nice middle ground that lets you keep the backend simple and get the speed of serving static pages.

</comment><comment><USER22> Next.js teamed with SWR[1] means I could totally remove redux from my app

[1] [https://swr.now.sh/](https://swr.now.sh/)

<comment><USER23> What does that have to do with redux?

How does it replace a client side state management solution?

<comment><USER24> I have used react-query which does the same thing. The server responses can be cached like a redux store. The same query can then be reused elsewhere. You have setting to not cache at all, cache for some time or cache infinity. I have used it on redux project and replaced many with react-query. It does feel better for server data. Not much boilerplate.

</comment></comment></comment><comment><USER25> I love static site generators but I often feel they are geared towards one type of site (like Jekyll or Hugo for blogs etc.)

We have a huge web based "operating system" and constantly adding more stuff. I spent a couple months architecting and implementing i18n and translations, for example. I looked at GNU language files and other formats and made our own JSON based one.

I tried my hand at static site generation, and it basically takes an existing site and renders certain URLs from the config (including looping through variable values) as a specific browser would fetch them. If you serve different versions of a resource to different browsers (eg mobile browser or css vendor prefixes) you'd have to generate different directories for each one, which can be cleanly chosen by a web server based on the user agent string.

This led to a whole host of issues that made us refactor our framework's server->client data exports into two parts: session data and regular config data. So a static page would not have any session data. Any experience of being logged-in would have to be added via Javascript or widgets hosted in iframes.

We also have scripts like "combine.php" and "update.php" which minify and combine files, or look at file modification times and set up metadata with timestamps and hashes to use for subresource integrity.

Actually, I would say that the idea of "static site generation" can be a special case of CACHING. To achieve 90% of the benefits, just host your site through a CDN and set your web app server as an origin server. Pages can be rendered on demand and then cached on a CDN. You will have to separate out your session stuff, though! And any dynamicall generated content will need to go under that.

Finally... I would say that all this is actually pointless :) Because you should be building client-first apps. Assume Javascript is available and do all your routing, layouts, header, footer, locally.

There are TONS OF REASONS WHY THAT IS THE FUTURE. The rabbit hole goes much deeper:

[https://qbix.com/blog/2020/01/02/the-case-for-building- clien...](https://qbix.com/blog/2020/01/02/the-case-for-building-client-first- web-apps/)

</comment><comment><USER26> If I want some requests resolved at runtime with Next, what are my choices of a production-ready server? I assume `npm start` does not scale very well. What are production practices with Next?

Do you just build your static website and then fetch the data from the browser like React would? Because if so, why would I use Next and not pure React?

SSR frameworks sound very attractive to me due to Kubernetes and hitting internal resources that shouldn't need to be exposed to the world, but I find myself again and again creating gateway services exposing backend services for Ingress.

<comment><USER27> `npm start` is just whatever you tell it to do - eg `node ./src/index.js`, and yes that is plenty production-ready - you don't need any special thing, it's not like Ruby etc

However, regardless, you should really put it behind a load balancer of some kind, and it's generally best to do your TLS termination in that too.

And you'll want something to manage the application and make sure it's running etc as normal. Usually the cleanest option is to have it wrapped up in a Docker image being managed by an orchestrator, but there's also options like pm2

<comment><USER26> React runs webpack by default. Are you telling me there are large prod websites running on a dev server in kubernetes somewhere? Because I'd definitely not feel confident putting that into production. (I am genuinely curious how is FE run nowadays with cloud-native stacks)

And of course TLS termination and load balancing aside, you do that in your orchestration platform (so, Kubernetes typically).

<comment><USER28> In Next.js there are only four commands:

\- `next dev` starts the dev server with unoptimized code and webpack hot- reload

\- `next build` compiles all your code to be ready for production (optimizations enabled and not hot-reloading, pages that aren't dynamic server-side get turned into regular HTML, etc)

\- `next start` serves that production-ready bundle, with a bare-bones (but production-ready) server

\- `next export` forces every page to compile down to HTML and gives you a folder of static markup and js you can upload to any static host

So yeah, `next start` is indeed production-ready, and similar to what major websites already do. (Also there's no soft, hard, or default dependency between webpack and react, but the starter template uses it to make life easier for devs)

<comment><USER29> What's the difference between `next build` and `next export`? I couldn't tell from reading your comment.

<comment><USER28> `next build` makes a server that needs to be run with nodejs. Dynamic pages keep being JS code. the fact that some pages are optimized down to html is an internal implementation detail.

`next export` makes a folder of static resources (HTML, packages client JS code, CSS). It also forces every page (even dynamic ones) to compile down to HTML.

</comment></comment></comment></comment></comment></comment><comment><USER30> Dumb question, but what is the benefit of something like Nextjs over react/redux? So many things to learn...

<comment><USER31> It provides pages/routing, JS/CSS compiling/bundling, and even optional static site bundling. It's basically the missing pieces for a deployable react app.

<comment><USER32> If I don't need anything fancy (not even SSR), Parcel does it for me out of the box:

        parcel build *.html --public-url https://domain/

It's great to use my dev/build tool for static site generation.

<comment><USER31> We're blessed with many great and free options.

</comment></comment></comment></comment><comment><USER33> I rerender pages on demand like this, but also rerender the entire site every 6 hours. There's some computer science theorem that says tracking the dependency of which outputs are sensitive to which inputs is actually identical to solving the halting problem... i.e, no framework can actually track which pages are affected by which pieces of data. (This is true if you run custom code. If you are running in some type of limited non-Turing complete language it could be done.)

<comment><USER34> It's true that there will be a limit to what dependency tracking can do, because if you rename the nickname of an author of a blog post that is in 1,000,000 pages, then we'll fire 1,000,000 function invocations preemptively to recompute all pages.

That's why Next.js is focused on enabling both eager and lazy pre-rendering behaviors (AOT and JIT). There is no silver bullet :)

</comment></comment><comment><USER35> I'm going to shill my own product [https://www.prerender.cloud](https://www.prerender.cloud) because it's (mostly) solved this since Chrome headless was finally released in fall 2016.

If you can be patient enough to cache any state you might have in a special global var that gets serialized during the "server side render", then it works for any JavaScript framework that can rehydrate/reattach to SSR'd HTML.

</comment><comment><USER36> Environment variables being exposed to the client is great assuming this means they can be configured at runtime and available on the client

<comment><USER37> You'd have to assume that they are only read during SSG/SSR.

</comment></comment><comment><USER38> Anyone managed to get latest next.js to work with reasonMl? There is an excellent tutorial on yt, but it is a bit outdated

<comment><USER39> This is pretty up to date: [https://github.com/ryyppy/nextjs- default](https://github.com/ryyppy/nextjs-default)

<comment><USER38> Thanks, I will check it out

</comment></comment></comment><comment> tren-hard Can I use nextjs or ssr react with websockets? Does that go against the pattern of server side rendering?

If I have a large app that has a few pages which use websockets so I'm not sure if nextjs is something that makes sense for me or if I should just start with create-react-app and go from there.

<comment><USER31> Sure, why not? SSR just creates the first version of the page, the web sockets can kick in once the page is rendered.

<comment> tren-hard Ok that makes sense. Thanks

</comment></comment></comment><comment><USER40> I've been waiting for aliases to come out canary!

</comment><comment><USER41> Love NextJS, it just keeps getting better at each new release...

Fast Refresh seemed impressive in some GIF's in tweets a couple weeks ago.

</comment><comment><USER42> Good work! Was very happy with 9.3s new SSG functions. Excited to see further development in this space.

</comment><comment><USER43> So Vercel is like Netlify but with their own web site development framework (NextJS), and Netlify is like Vercel but with their own CMS (Netlify CMS), and together they have raised about $120MM.

</comment><comment><USER44> the only reason I use Nextjs is to avoid going through setting up the router, I found Gatsby complex to learn in 10 mins.

<comment><USER26> Gatsby definitely requires at least a couple weekends, but I really liked developing with it. As a backend person, it feels very "backend-y" if that's a word.

What complexities are you running into with router in React? (I'm genuinely curious, I had to use it a few weeks ago for a simple app and found it surprisingly simple).

<comment><USER44> no complexities in particular, but with next I just don't have to think about it.</comment></comment></comment>


Two years of revenue from a Dark Room - <AUTHOR> https://www.reddit.com/r/gamedev/comments/3syzuc/two_years_of_revenue_for_1_ios_game_a_dark_room/ <comment><AUTHOR> I came across this on the gamedev subreddit. For a game that spent so long at the #1 position on the charts these numbers are depressing.</comment>


Brooks: Mental activities involving rule-following less valuable in computer age - <AUTHOR> http://www.nytimes.com/2014/02/04/opinion/brooks-what-machines-cant-do.html

<comment><AUTHOR> What he thinks are more valuable are "enthusiasm," "people with extended time horizons and strategic discipline," and "procedural architects."

Sure — machines just program themselves if the environment is right.</comment>


What are good machine learning startups in India for internships? - <AUTHOR> <comment><USER2> There are a bunch of companies in the AI space, the 2 that I know of are

\- [http://www.madstreetden.com](http://www.madstreetden.com) \- [http://www.artifacia.com](http://www.artifacia.com)

There are more, Be careful of the company you pick, just because they have a .ai domain or AI/ML in the tagline does not mean they are using AI/ML

<comment><AUTHOR> Thank you. Yes, that's my major concern. My brother is in IIT Kanpur, doing BS in Maths and Scientific Computing, and wants to apply for summer internship at companies working in AI space.

<comment><USER3> Not to sound rude but genuinely curious, why are you asking on behalf of your brother?

<comment><AUTHOR> He has a list of companies, I am just trying to help him :)</comment></comment></comment></comment>


Show HN: Formpost.co – Send forms from your static site - <AUTHOR> https://formpost.co/ <comment><AUTHOR> Hey all,

I am the creator of [https://formpost.co](https://formpost.co). This is just a free microservice from [https://darovi.co](https://darovi.co) for people to use with their static websites. There are many like it, but this one is mine ;)

We will be adding custom fields in January 2017 so feel free to give it a try and thank you.

<comment><USER2> So with formspree you had to validate every page I believe. Which was impossible for my use case, I wanted to add contact forms at the bottom of each blog post and didn't want to have to remember that every URL needs to be activated. What If I changed the article URL? Have to reactive, etc.

So is this a problem with formpost? Thanks

<comment><AUTHOR> This is not a problem for formpost. The alias is all you need to get your form. If you have a contact form on each blog post you will receive a submitted form regardless of URL.

</comment></comment></comment><comment><USER3> This is great. I've used [https://formspree.io](https://formspree.io) before, but it was a headache to obfuscate the emails, so your alias functionality looks awesome. Do you have any sending limits and/or future plans for monetizing the service?

<comment><AUTHOR> Thank you! Right now during this phase we don't have any imposed sending limits, but we do have a soft cap of 200 emails per hour. This is simply to combat against spam. If someone is sending 200+ emails per hour they should probably find a different solution to be honest. That cap could change depending on behavior and usage as we monitor the service.

Future plans to monetize may include saved messages (which I'm not to keen on), multiple alias' or alias forwarding, the custom fields may or may not be monetized. I may go the Patreon route and if people like the service they can pay what they want.</comment></comment>


New Month, New Ellp Cards - <AUTHOR> https://blog.ellp.com/2017/01/26/new-month-new-ellp-cards/ <comment><USER2> This article, like the Ellp home page, tells me nothing at all about why Ellp exists or why I should care.</comment>


Magic Leap Raises $793.5M Round From Alibaba, Warner Brothers, and Others - <AUTHOR> http://www.wired.com/2016/02/magic-leap-raises-the-biggest-c-round-in-venture-history/ <comment><USER2> That is pretty astonishing. So 500M before 793M now, that is over 1.3B$ raised. So the only "exit" that makes sense is an IPO with at least a $5B valuation? It will be interesting to watch that is certain.

</comment><comment><USER3> Previous discussion/more comments here: [https://news.ycombinator.com/item?id=11019232](https://news.ycombinator.com/item?id=11019232) (techcrunch article)</comment>


Sequencing is the new microscope - <AUTHOR> http://ldeming.posthaven.com/sequencing-is-the-new-microscope <comment><USER2> Yes, looking at the vast array of techniques for sequencing that have been advancing in the past 5-10 years, and I'm truly amazed at what we can see and what we are discovering--it seems far far above the potential of any microscope. Various sequencing preparations allow determination of 3D organization of the genome, and association with proteins, RNA, and other small molecules with those 3D structures, among much more that I haven't been able to keep up with.

As Feynman said nearly 60 years ago:

> We have friends in other fields – in biology, for instance. We physicists > often look at them and say, "You know the reason you fellows are making so > little progress?" (Actually I don't know any field where they are making > more rapid progress than they are in biology today.) "You should use more > mathematics, like we do." They could answer us – but they're polite, so I'll > answer for them: "What you should do in order for us to make more rapid > progress is to make the electron microscope 100 times better." > [https://www.zyvex.com/nanotech/feynman.html](https://www.zyvex.com/nanotech/feynman.html)

Turns out that biologists (and chemists and some physicists working on bio) ended up hacking together a bunch of techniques that work far far better than wildest dreams of current microscopy. It requires tons of informatics afterwards, but it gets answers and information of such magnificent scale that even an electron microscope 100x better couldn't dream of.

It turns out you don't just need the resolution, you also need a massive field of view, and a massive _volume_ of field of view not just a plane, to get close to the discoveries that go into a state of the art paper these days. I'm not sure if microscopy can catch up, it if it ever does it will be through massive deep learning on teravoxels or maybe a few orders of magnitude more. That's not in the cards anytime soon, as far as I know.

<comment><USER3> Actually similar to the electron microscope Feynman describes for pharma- biochemistry is the new microED (micro Electron Diffraction) for biological structure determination.

[https://www.ncbi.nlm.nih.gov/pmc/articles/PMC5656569/](https://www.ncbi.nlm.nih.gov/pmc/articles/PMC5656569/)

The ability to see the actual atomic organization of a molecule (and its various confirmations) of previously "uncrystalizable" compounds is also amazing. There is money to made building these lab systems! It needs to be automated ,but everyone will need to upgrade.

[http://blogs.sciencemag.org/pipeline/archives/2018/10/18/sma...](http://blogs.sciencemag.org/pipeline/archives/2018/10/18/small- molecule-structures-a-new-world)

</comment></comment><comment><USER4> Microscopes are the new microscopes. They tell you a lot more about phenotypes. And genotypes- some recent papers can identify specific cancer mutations simply from images of tumors. Also, recent work has shown that you can do sequencing _with_ a microscope.

<comment><USER5> Seriously. Progress in microscopy hasn't slowed down at all. There was an Nobel prize given for optical super-resolution imaging recently. Cryoelectron tomography is insane: near Angstrom level resolution of 3D segments of cells. People are measuring the entire transcriptome of single cells using microscopy. Optical tweezers are allowing researchers to measure forces inside cells by literally grabbing intracellular structures with a laser and yanking them around.

Progress in sequencing is also exciting, but don't discount microscopy!

<comment><USER6> There's even 2-photon laser microscopy. I worked on such projects before and the field of optogenetics is amazing!

</comment></comment></comment><comment><USER7> As somebody whos been working in this field for a bit, both sequencing and microscopy are advancing in very exciting ways. So Its weird to see an article pitting one against the other.

I do wonder how easy/costly it is to compare differences in single cells via sequencing. I realize there are methods for cell isolation using stuff like microfluidics. But a lot of these methods use elements of microscopy.

My sense has always been that next-gen sequencing coupled with superres microscopy is the way forward.

</comment><comment><USER8> It's a short(ish) and somewhat thought-provoking read, although it has the questionable value of most analogies, and is light on details; however, I enjoyed this line:

> One of my biggest personal fears is working in the wrong field to achieve > the goal I care about.

</comment><comment><USER9> There is no opposition between microscopy and sequencing. To the contrary, technologies are converging on the microscope as "omics" data (sequences are one type) are now moving to the microscope because of the need for additional information such as cellular states or spatial information. For example, in mass-spectrometry imaging, mass-spectra are associated with regions of an image or single molecule fluorescence hybridization (smFISH) techniques are used to produce transcriptome data at the single cell level on a microscope.

</comment><comment><USER10> How do you deal with spatial resolution? Whether a part of a tumor is nearby blood vessels seems important information that sequencing is difficult to address.

Other things that come to mind:

\- Size of cells \- Texture / shape of cells \- Local microenvironment \- Morphology of tissue

Combining both seems like a promising step forward (as commenters here have already mentioned).

</comment><comment><USER11> > the outperforming endurance of DNA compared to any modern hardware

This struck me as a strange analogy, considering DNA's inherent fragility, but it would make more sense compared to modern software than hardware.

Alternatively, it also makes sense if "hardware" means a particular model/architecture, with DNA corresponding to an HDL, rather than an instance of hardware (e.g. single CPU, server, or smartphone). A frequent enough topic on HN is the challenge archivists have with archaic software and data formats, even if all the original collections-of-bits are faithfully preserved.

<comment><USER12> DNA is not fragile, and can act as a very stable long-term storage medium.

DNA in living cells has some fragility because it is in an aqueous solution and also actively used to generate RNA. DNA out side of cells is even more fragile, it will inevitably be eaten by bacteria. But put DNA in the right sterile environment, it can last for thousands of years and has great resistance to electromagnetic interference.

<comment><USER11> > the right sterile environment

This has echos of No True Scotsman. Computer storage media also have ideal conditions that can be used to extend their lifetimes (though, granted, not indefinitely, AFAIK).

What about in real conditions, subject to things like temperature variations (including "extreme" heat that non-operating computer hardware can do just fine in), exposure to light, humidity from the air (to put it back into aqueous solution occasionally), and common oxiders found floating around in the air?

Could one rely on an arbitrary single strand to last even 5 years in an office environment, or are numerous, RAID1-style, copies required to maintain fidelity?

</comment></comment></comment><comment><USER13> I don't think one can perfectly replace the other. In many experiments where both technologies could be used, sequencing data is more valuable (currently). But for some questions, you must have microscope data.

</comment><comment><USER14> Nah, programming and computer power are still the new sequencing and microscopy.</comment>