Interviews vs. auditions - <AUTHOR> https://ryanholiday.net/heres-the-technique-that-ambitious-people-use-to-get-what-they-want/ <comment><USER4> I teach and coach people to get jobs through performance and it works.

Schools teach people to react, take tests, and show how great they are. For a posted opening, you're presenting yourself as a commodity -- a slightly shinier one, you hope. It's based on compliance.

Most analytical, geeky types got a lot of schooling. After decades of it, most people have learned that model without awareness of alternatives.

If you want to avoid challenges in life and just get a job so you can retire 50 years later with nothing remarkable in between, that strategy works.

What Ryan described -- to audition -- is standard in other fields, such as sports, acting, singing, and other active, social, emotional, expressive, performance-based (ASEEP) fields. No actor won an oscar for his or her GPA. No athlete won a championship for being president of a student club.

In ASEEP fields, your performance matters. Sadly, many in business continue to think and act on a compliance-based model. Those who start from a performance- based model find and create opportunities to excel.

I'll always remember how a client told me he met a guy running a business in a field he wanted to move into. He told me he first got to know the guy to make sure he'd like working with him. He then told him his passions and hobbies in that field, then that he had zero professional experience, and then, as he told me, "I led him to hire me."

That's leadership. The guy hired him, saying "I can teach you this field, but I can't teach getting it and you get it." (Incidentally, what he called "getting it" is what I taught him -- you can teach it, just not through a compliance-based model.) So he got paid to learn the new field. Not long after he started new initiatives in that business.

<comment><USER5> "If you want to avoid challenges in life and just get a job so you can retire 50 years later with nothing remarkable in between, that strategy works." I find this to be hyperbolic. Compliance and presenting yourself as having more value than the person next you have are not deterministic in "avoiding challenges in life" and not accomplishing anything remarkable. I don't want to run a startup. I want to put my head down and get shit done. Does that mean I don't want challenges in life? No. Does that mean I won't accomplish anything remarkable. No. One should be aware that compliance and process has its place.

One could argue that the special ops schools (like BUDS) drills into you that you are but one of many and to be compliant (even thought BUDS itself is an audition) and that you are a commodity. Please tell me that Navy Seals avoid challenges and accomplish nothing remarkable.

<comment><USER4> "If you want X, Y works" doesn't imply that "doing Y means you want X," which, unless I misunderstand you, is what you were reacting to.

Speaking of SEALs, I just wrote about them in the draft of my next book, on becoming entrepreneurial, in relation to ASEEP fields, which may be relevant to this thread, since military training trains performance:

"Entrepreneurship is as active, social, emotional, expressive, performance- based as any field. Most books and courses on entrepreneurship teach entrepreneurship appreciation, not practice. They may not hurt, but they don't necessarily develop you to genuine, authentic, free self-expression. Business literature isn't written to help you become more entrepreneurial. If all the business articles about Navy SEALs -- to pick one genre of entrepreneurship literature -- helped people perform as SEALs do, SEALs would read business literature instead of train. They train because it works."

<comment><USER6> I feel like this is something I've known about but never could quite describe it. Do you have any books or other resources you could link or DM me? I'm interested in learning more.

<comment><USER4> I wrote my book to fill the gap I saw between teaching _about_ leading people and developing leadership practices.

Amazon has the preface and first chapter in the "look inside" link above the picture of it [https://www.amazon.com/Leadership-Step-Become-Person- Others/...](https://www.amazon.com/Leadership-Step-Become-Person- Others/dp/0814437931), which develops what I wrote here more.

The movie Most Likely To Succeed [http://www.mltsfilm.org](http://www.mltsfilm.org) is about project-based learning. The books and articles by the guys behind it, Tony Wagner and Ted Dintersmith, are on active education and I found valuable.

Here's a post of mine with a video of Ted and the movie director: [http://joshuaspodek.com/another-problem-with-traditional- edu...](http://joshuaspodek.com/another-problem-with-traditional-education- employers-dont-want-traditionally-educated-students) and links to relevant posts of mine.

</comment></comment></comment></comment></comment><comment><USER7> Taking control audition style may work if you're a consultant trying to convince a client to hire them, but you had better know their business backwards and forwards, and unless you're in a very well defined space (like their football coaching example), you probably don't.

However, if you attempt this at a standard FAANG job interview, it is emphatically _not_ going to work. There's a set of questions you need to work through and attempting to go off script is not going to be appreciated. Pretty much the only exception is leadership roles, particularly when the brief is "we need somebody who can turn around/10x our floundering business".

<comment><USER8> "audition style may work if you're a consultant trying to convince a client to hire them"

That's one of the main reasons I'm self employed.

Getting a job is mostly doing dumb interviews, tests and crap.

Getting a project is mostly telling the client that I can do it for an amount of money they find okay.

<comment><USER9> As a consultant you are much more in control of your working relationships than as an employee. A consultant has many clients; an employee only has one employer. That alone provides sufficient leverage to dictate the terms of the role, which is a major advantage of self-employment.

<comment><USER10> I think it's basically the same deal PG is always talking about: Nobody is willing to pay triple for an employee which is actually three times as productive, but a consultant can honestly charge three to five times as much in order to provide equivalent return on investment.

I also find that in general, people who won't listen to an employee are excited about collaborating with a consultant - even when you're the same person making the same contributions.

I find it pretty frustrating - I have long-term views and I want to make a significant, long term impact on the companies I work for, and being a consultant means it's all about quarterly results. That being said, I'll take sober consideration from day one over "time over grade equals seriousness" any day.

</comment></comment></comment></comment><comment><USER11> I only skimmed the article, but whenever I read such material I feel these techniques are suited for jobs banking on charisma instead of knowledge and skill based ones.

I am a software engineer. I haven't held too many jobs, and have attended very few interviews. As an interviewee, I always gauged the enthusiasm of the interviewer before 'unleashing my talent'. I have had my share of insipid interviews where the focus was on API specifics instead of ideas and larger pictures. I politely excused myself out of the building mid interview when I realized they needed just a code monkey, albeit with experience. Seizing control would have been a total waste.

I have also conducted my share of interviews. The biggest turn off for me is when candidates try too hard to impress, either by listing out insignificant contributions to FOSS they have made, especially when not asked, or wearing their supposed geekiness on their sleeves. The worst are the self declared nerds and geeks, who speak, look and act in a way that covers all the stereotypes floating on the web. Its worse when, out of turn, they bring up a cool thing they 'hacked'.

Generally, going beyond job interviews, I think the need for being alpha is ridiculously amusing. I am no psychologist, but it smacks of overcompensation and utter lack of self confidence. I avoid such people in life.

<comment><USER12> I think if you give the article a second chance, you'll see that it does not advocate for the self-promotional behavior you dislike.

The article doesn't tell us to "listing out insignificant contributions to FOSS they have made, especially when not asked." Rather the article tells us to research about how we can add value to our prospective employers beforehand.

Stated in that way, the article's message is quite "boring", but also true.

<comment><USER13> The challenge here is that it's incredibly hard to know how to add value, from the outside. Especially for not-very-senior positions, adopting this tactic can backfire big time. I interviewed a guy who attempted to tell us how he'd design our systems, and only showed a severe lack of understanding of the domain ( _) (which is really not surprising, it takes most people at least a few months to start to grasp it).

(_) It also smacked of arrogance - it's as if he thought he knew better than people working on it "how it should really be done".

</comment></comment></comment><comment><USER14> This is basically what a good sales pitch is. Call it audition if you want. A lot of developer jobs are not looking for this kind of drive and skill set though. In fact, I have been told by a former startup employer to not spend so many brain cycles on how to improve the business and just focus on getting the code to work.

Many managers feel threatened by such people it seems. So not a good idea if looking for a job. Good template if pitching to investors.

</comment><comment><USER15> I doubt this would work in any more structured interview process for a regular job at a larger company (with the likely expection of VP+ level jobs), but it could be very effective for interviewing at startups, especially when they're small enough for you to be interviewed by one of their founders.

A good way to do this is probably _not_ to take charge immediately upon concluding the small talk, but to simply ask whether the interviewer would be interested to set aside some time to see some ideas you had prepared for their business ( _shows binder_ )

</comment><comment><USER16> As an engineer I think this is best interpreted as a recommendation to ask a lot of questions when you are given the chance. Take it as an opportunity to demonstrate a greater understanding and care for the opportunity than just the scope of your role. Ask about culture, about challenges, competitive positioning in the marketplace etc.. I try to ask questions that demonstrate a lot of compassion for team dynamics and business objectives. It's never led me astray.

<comment><USER17> As someone who has interviewed a lot of candidates, I would agree the Q&A is the best place to show this.

Most of the stock questions are filters for people who can't do the job - <USER2> this person's answer reasonable?

Where I've seen candidates shine is when they ask really good questions. Question that indicate they've put some thought into the role. When all I get is "How do you like working here?" or "What's the company culture?" it shows the person is either uninterested in the role or incapable of delivering something beyond "here's what you asked for boss".

</comment></comment><comment><USER18> Further discussion from Ryan about this topic in a recent EconTalk podcast:

[http://www.econtalk.org/archives/2018/04/ryan_holiday_on_1.h...](http://www.econtalk.org/archives/2018/04/ryan_holiday_on_1.html)

The part about interviews vs. auditions is around the 49 minute mark. The entire podcast was fascinating. The topic of the podcast is his recent book about Gawker and Peter Thiel and a broader discussion about "conspiracies".

edit: separate HN thread for this [https://news.ycombinator.com/item?id=17048391](https://news.ycombinator.com/item?id=17048391)

<comment><USER19> It was a really good podcast. One of my takeaways is that Holiday does a good job of not "taking sides" even though it is a seductive, socially compelling thing to do. I think that EconTalk and the book deserve their own HN thread.

</comment></comment><comment><USER20> I've noticed an increasing number of candidates using this kind of "take control of the interview" approach. It's reached the point of having candidates talking over top of me during phone screens trying to wrest control of the conversation away.

I've never hired someone who does this. I'm not interested in how you're going to rework my team or rewrite our software.

Interestingly, when interviewing potential peers or CEOs, I'm kind of expecting them to do this.

<comment><USER21> I think that's because it's very hard to get this strategy right. In some interviews, it may not be possible due to the way the interview process is set up, and in particular the magnitude of information asymmetry.

I think getting it right hinges on two things:

1) Does the interviewer actually _have_ a concrete objective that you are qualified to help them achieve -- even if they themselves aren't necessarily aware of it or have it top of mind. 2) Can you identify that objective either ahead of time or in the interview process, and in a polite yet direct manner convince them that you can help them achieve it.

If neither of these are true, it is bound to come off poorly. Whiteboard/puzzle based 'general intelligence assessment' style interviews don't lend themselves to this. Wishy washy job descriptions don't lend themselves to this. Hiring processes influenced by politics rather than need (i.e. where a manager is disincentivised to hire someone better than they are) don't lend themselves to this.

If a majority of candidates who try this strategy with you aren't able to pull it off well, perhaps step back and take a look at your recruitment/interview processes and see if you could actually _help_ the good ones impress you.

I'm not saying I've done this right in the past, quite the contrary. For me the ideal interview is me simply describing a problem my team has, and the interviewee _educating_ me on how to solve it and why they are the right person to do so (though usually the fact they are able to do the former implies the latter). I've tried to format interviews more like this over time and I have personally found better results as a consequence.

<comment><USER20> Exactly, if we're in the "how would you solve this problem" or "tell me a time when" phase, knock yourself out and be assertive.

When I'm giving my 10 second description of my phone screen process works and I get interrupted to be told "this phone screen will be done differently" ...

</comment></comment></comment><comment><USER22> Well... this article is merely saying (with many many words) that it's way better to show up to interviews and important meetings with utmost preparation than unprepared.

<comment><USER23> Its more about what you are preparing for.

Generally people prepare well on the technical details (algorithms, programming etc..) and solve the problems that are put forward by the interviewer.

Here, you prepare well on the real problems faced by the company (say scaling beyond a million user) and then outline the solutions that you have for that.

</comment></comment><comment><USER24> While I am not sure this would work in every situation, I appreciate the main thrust of the article: treat the interview as audition, come in prepared to talk about how hiring you will improve the business, differentiate yourself from the other interviewees.

</comment><comment><USER25> I don't know if the need to have the entire program written out is most important.

The best candidates I've hired show aptitude to ask the right questions and, in return, ask probing questions about what led to our decisions, have we thought of [x], this is how [x] might work, what about [y] competitor or space within our industry, etc...

The most memorable interviews I've come out of / been a part of are the ones in which the candidate leaves me thinking or scratching my head about why we're doing what we're doing and whether they'd be a great fit to help us achieve our goals.

This is all from a product management perspective so might not be the same across the board.

</comment><comment><USER26> as an engine mechanic, is this sort of game play normal in office jobs?

When I've been taken on as an apprentice, its an interview to see my competency...where i stand i guess and what i need to learn. Questions like 'whats the hardest thing' and 'how do you handle grumpy people' are pretty normal.

Being hired on full-time, and having to hire another mechanic myself, The questions are pretty cut and dry. Can you stick to a schedule, describe a 4 cycle engine, what a cam profile, give me a reference.

Once weve hired someone new, we generally know if shes going to make it or not. we all chip in to help if theyre struggling, but we dont play weird games.

<comment><USER27> For some reason people are deathly afraid of hiring the wrong person. So afraid that they'd rather pass on 100 good candidates to avoid hiring one person who doesn't fit.

It's particularly bad for programming jobs where they expect candidates to go through up to a half dozen separate interviews. The whole process is just completely broken.

</comment></comment><comment><USER28> IMO, the reason this is rare and stands out is because these types of people tend to _already_ be running their own show, and don't need to interview or audition.

</comment><comment><USER29> Would reframing the developer "technical interview" as an audition instead create better expectations for everyone?

<comment><USER30> That's the analogy I use when people complain that whiteboarding doesn't mimic/approximate they day-to-day job. If you're the casting director for a play you're going to have auditions, you're not going to cast people based (solely) on their resume and having a conversation about their acting background. But auditions are very different than an actual performance: there's no audience or costumes or props, the lighting is completely different than what it will be, you're reading from a script, you may be the only person on stage while the other roles are read offstage, you're being accompanied by a piano instead of a full pit orchestra, you're mostly standing in one place instead of moving to established blocking, and so forth. The point of an audition isn't to mirror performance night, it's to get an idea if you're capable of acting/singing/dancing/whatever. Likewise the purpose of whiteboarding isn't to mirror the day-to-day work, it's to get an idea of your problem solving capabilities (some might argue it's also to see if you actually know how to code, but personally I feel that's what the technical phonescreen is for).

<comment><USER31> I agree with the sentiment but almost no other profession does this. Could you imagine a Surgeon being forced to "Audition" for his job? "Here perform heart surgery on this guy for us, if he lives you get the job."

<comment><USER30> > I agree with the sentiment but almost no other profession does this

Almost no other _creative_ profession _doesn 't_ do this. Our profession is much more similar to actors and musicians than it is to doctors or lawyers. You also have to factor in practicality and gatekeeping (for lack of a better word) - it's not very practical for a doctor to perform mock surgery for an interview, whereas it's very feasible asking someone to write some code on a whiteboard; and if you're a surgeon you have things that indicate you know how to perform surgery at a much higher level of confidence than knowing someone can problem solve (well) just because they list "developer" on their resume, surgeons have to go to many years or medical school, they have to spend time in residency, they have to pass their boards, if software development had the equivalent of all this (and I'm not necessarily saying it should) then yes there'd be much less need for "auditions" in our field.

<comment><USER27> >Almost no other creative profession doesn't do this.

This is only true for a very small subset of creative professions.

Actors and musicians _perform_ in front of an audience. That's their job--they are _performance artists_. Asking them to perform in front of you is very similar to what they'll actually be doing day to day. A much better analogue is a creative profession that doesn't involve performance art.

Interviewing an illustrator, a graphic designer, a writer, or an architect generally involves looking through a past portfolio of work with the interviewee. In general they aren't expected to perform on the spot in front of an audience because that's not part of their job.

<comment><USER30> > Actors and musicians perform in front of an audience

 _Some_ actors/musicians. Movie actors never perform in front of an audience, TV actors usually don't perform in front of an audience, studio musicians rarely perform in front of an audience - these professions have auditions (unless you're an A-list actor, but I'm sure most software companies would hire John Carmack without an "audition" so we likewise do the equivalent). But more importantly I think you missed my point, in that the audition for these professions are under very different conditions than what you'll actually be doing "on the job" (one of the bigger complaints with whiteboarding seems to be that it doesn't closely mirror the actual work).

> Interviewing an illustrator, a graphic designer, a writer, or an architect > generally involves looking through a past portfolio of work with the > interviewee

That'd be fine if the point of the technical interview was to determine they know how to write code, but it's not IMO. As I mentioned above it's to determine they're capable of problem solving, because _that_ is the important part of what we do (you should also obviously make sure a candidate knows how to code before you hire them, but that's the point of the phone screen).

<comment><USER27> >Movie actors never perform in front of an audience, TV actors usually don't perform in front of an audience, studio musicians rarely perform in front of an audience - these professions have auditions

This is only true for an _extremely_ limited definition of audience.

Movie actors most certainly perform in front of an audience. There are hundreds of people on the set. Even a small indie film has a few dozen people on set. It's the same for TV actors.

Studio musicians also have plenty of people watching over their shoulders while they perform, and they're expected to be able to do so on the spot without preparation.

>As I mentioned above it's to determine they're capable of problem solving, because that is the important part of what we do

That's the important part of nearly everyone's job. Architects, graphic designers, engineers, sales people, mechanics, plumbers.

There's nothing special about programming in this regard. We've just convinced ourselves that our industry is so special that of course we need weird hazing rituals. Everyone else seems to get along fine without treating people from new college grads to programmers with 20 years of experience like this is their first job.

Can you solve this artificial problem that I already know the answer to right now in this time boxed, needlessly adversarial situation situation while I watch over your shoulder and critique you?

<comment><USER30> It's a bit odd you responded to various parts of my comment but not the "But more importantly I think you missed my point..." portion (i.e. kind of silly for us to debate this audience straw man)

> That's the important part of nearly everyone's job. Architects, graphic > designers, engineers, sales people, mechanics, plumbers.

Communication, like problem solving, is likewise an important part of nearly everyone's job, but the importance of good communication skills (as valuable as they are) are much less important to being a good software engineer or good plumber than they are to being a good reporter or trial lawyer or public relations professional.

I'm guessing, like most developers, this is your first/only profession - <USER3> it's not mine (I switched careers in my early 30s), and I can assure you not every job requires the level of problem solving we deal with on a regular basis (and no, that doesn't make us "so special", not all jobs are identical, some have more or less value in different areas, but one is not more special than another because of the importance of problem solving or communication or empathy or creativity or anything else).

<comment><USER27> >It's a bit odd you responded to various parts of my comment but not the "But more importantly I think you missed my point..." portion (i.e. kind of silly for us to debate this audience straw man)

Your argument was that almost all creative professions have auditions similar to whiteboard interviews. I pointed out that that's not true because it's only true for performance artists. You then took the discussion off topic by arguing that movie stars aren't performing in front of audiences.

Actors are expected to perform in front of an audience, programmers aren't. The ability to perform in front of an audience is difficult and rare, and is completely orthogonal to the skills required to work day to day as a programmer. Whiteboard interviews are just too far removed from anything resembling actual programming to be a work sample test. At best you're administering an ad hoc IQ test, but then you're adding an adversarial public performance aspect for no good reason. That adversarial public performance aspect is the biggest single difference between whiteboard interviews and real programming work--it's a much bigger difference than the difference between acting auditions and acting day to day.

>I'm guessing, like most developers, this is your first/only profession

I also switched careers after years in another field.

> not every job requires the level of problem solving we deal with on a > regular basis

This is true. But having worked on the embedded systems side of hardware, there are many professions that do require at least the level of problem solving that programming does.

EEs (the majority of whom don't have any kind of certification unless they're working in power systems), computer engineers, and even embedded developers don't routinely go through the kinds of whiteboard problem solving tests that you're talking about. Engineers working on real time, safety critical systems are hired every day without a Google style 6 person interview interview.

The key differences are that these companies aren't trying to cargo cult the Google interview process, they don't have engineers a year or two out of college conducting the interviews, and they aren't paralyzed by the fear of unqualified candidates slipping through.

I spend a lot of time on (capital E) Engineering forums. You don't see people on those forums complaining about the industry standard interview. You don't see flame wars started every time someone even mentions interviews. I've never heard of an EE with 20 years experience being asked to solve pet problems by a 22 year old new grad. And I've never heard of an EE spending months practicing for an interview.

Clearly our interview process is broken. Perhaps it's time to look at similar industries and spend some time trying to figure out if we are really so different instead of insisting that programming is so uniquely challenging that it requires such a controversial interview process.

<comment><USER30> > Your argument was that almost all creative professions have auditions > similar to whiteboard interviews

No it wasn't. Feel free to re-read my original comment[1]. My point was not that they _have_ auditions, it's that the auditions don't closely mirror what they'll actually be doing if they get the gig (which is one of, if not _the_ , most common complaint about whiteboarding).

However, it seems your primary concern is that the whiteboarding is done in front of an "audience" \- I can sympathize with that but there's going to be an audience (by your definition of the word) regardless of the structure of the interview, i.e. your "looking through a past portfolio of work" example[2] is still discussing your work to an audience (as opposed to creating new work on the spot) and is still very dissimilar to the actual day-to-day work (N.B. I've never actually been an "illustrator, a graphic designer, a writer, or an architect" but I'm pretty sure their days aren't spent just sitting around discussing their portfolios).

> Perhaps it's time to look at similar industries and spend some time trying > to figure out if we are really so different instead of insisting that > programming is so uniquely challenging that it requires such a controversial > interview process

Perhaps I'm mistaken (I'm by no means an expert on the history of our profession) but my understanding is whiteboarding interviews are a relatively new phenomenon (i.e. last decade or two) and presumably programming interviews prior to that were more similar to many other disciplines. It seems unlikely (though certainly possible) that our entire industry would move away from that if it didn't have major shortcomings.

If you feel you have found a better way to hire developers than what most of the industry does I would encourage you not just to use it for the interviews you conduct but also to share your thoughts and findings with others via a blog or maybe even a book. Either would certainly have more potential impact than debating the issue with me in a buried thread of a day old HN discussion. It's been an interesting discussion and you've motivated me to research the history of software dev interviews, best of luck to you in your career and interviews.

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

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

<comment><USER27> >No it wasn't. Feel free to re-read my original comment[1]

Sorry I wasn't very clear. When I said "similar to whiteboard interviews" I meant similar in the sense they are both different from the day to day job.

>is still discussing your work to an audience

This is true. But _discussing_ is very different from _performing_. In my experience, standing at a white board while someone who already knows the answers to the questions they are asking tends to have a large impact on most people's ability to perform.

I've seen this in numerous interviews. The number of false negatives in this type of interview process are extremely high.

>and is still very dissimilar to the actual day-to-day work (N.B. I've never actually been an "illustrator, a graphic designer, a writer, or an architect" but I'm pretty sure their days aren't spent just sitting around discussing their portfolios).

But the key difference is that the work they are discussing is a product of their normal work environment.

Despite what we like to tell ourselves about wanting to see how people think, the vast majority of these types of interviews are going to push forward the people who can solve the problems they are presented with. So what Google style interviews really select for are people who happened to have recently studied the solutions to the types of problems presented during the interview and who excel at public performance. The end result is that we encourage job hunters to game the system by studying a subset of problems that don't represent the real day to day challenges of working as a programmer.

> It seems unlikely (though certainly possible) that our entire industry would > move away from that if it didn't have major shortcomings.

The majority of programming jobs are at non-tech companies, non-tech companies don't tend to have Google style whiteboard interviews.

A large subset of the industry has moved to these types of interviews, but that's not an uncommon occurrence. It's happened several times in the past. Tech hiring is very fadish. Back when MS was the big company everyone wanted to work for, they used to ask insanely difficult brain teaser questions. By the early 2000s every tech company was asking these stupid riddles: You are a chef. If you had an infinite supply of water and a 5 quart and 3 quart pail, how would you measure exactly 4 quarts?; How many cars/gas stations/piano tuners/etc. are there in the USA? etc...

The fad was strengthened by Google because they used the same kinds of questions. This went on for a decade or so until Google decided brain teasers didn't correlate well with job performance. Word spread and companies stopped doing it (a few are behind the times and are still stuck on the last fad cycle).

Now the fad is repeating itself, but the companies are trying to emulate Google's newer brainteaser free 6 part whiteboard interview process.

The thing is, Google can afford an insane amount of false positives. Most companies can't, yet they still insist on cargo culting the Google interview without really understanding why.

>If you feel you have found a better way to hire developers than what most of the industry does

I do have what I consider a better way, but I certainly didn't invent it. I interview developers the way people interview architects, illustrators, and engineers. I look at past experience and portfolios, and I judge whether they can competently walk me through the projects in their portfolio.

If the applicant doesn't have much experience, or if their portfolio is too small (all of their work is covered by NDAs or something like that) I include a take home work sample test.

I've also had good experience pairing the applicant with a developer to work on a sample problem that neither one has seen (and isn't something we'll benefit from).

>you've motivated me to research the history of software dev interviews,

Our industry would be much better off if more people were willing to look at why we do things the way we do them.

>best of luck to you in your career and interviews.

Thanks, you too.

</comment></comment></comment></comment></comment></comment></comment></comment></comment></comment></comment><comment><USER32> After a thick paragraph about sports history I gave up, which is 100% my fault. The moment an abstracted "sports metaphor" becomes an actual detailed account of sports figures (players, coaches, teams, etc) my interest in the topic enters a death spiral.

</comment><comment><USER33> You'll just get knocked back for being tone deaf.

<comment><USER34> And if you're looking for a position where you can have a major impact, that tells you a lot about the position.

</comment></comment><comment><USER35> Seems like the key to making this work is having done the legwork beforehand to know you're making suggestions that won't wind up being tone deaf.

That legwork probably looks like having several conversations beforehand with people on the inside beforehand, so you actually have a basis for thinking you know what sort of problems are relevant for the decision makers.

On average, that's probably something college students looking for their first jobs aren't well positioned to do (especially if they're looking for their first job through formal recruiting channels at huge corporations).

And on average, for people with a few years of professional experience, its a matter of realizing that hanging out at conferences, happy hours, and other informal situations where you're around other similar professionals is low hanging fruit for these sorts of conversations, and recognizing that these situations present these sorts of legwork opportunities is a big advantage.

\</comment><comment>----

I said students don't typically do that well, but I don't think that has to be a rule, lots of advice talks about trying to do 'informational interviews'. I think this is sort of what they're getting at, what you want to get out of an informational interview, is to sort of be able to frame the problems a future interviewer might have, and be able to do an interview like this.

There's probably a lot of trial and error that goes into getting this right. And also, probably a lot of investment in having conversations where the payoff doesn't seem very obvious.

\</comment><comment>---

couple book suggestions: 1\. [http://www.svastralwind.com/uploads/2/7/2/6/2726225/the_2-ho...](http://www.svastralwind.com/uploads/2/7/2/6/2726225/the_2-hour_job_search_- _using_technology_to_get_the_right_job_faster.pdf)

gives a method for setting up informational interviews, good read overall

2\. I've suggested this books a couple times, I think its actually really deep when contemplated on

Spin Selling by Neil Rackham

\</comment><comment></comment><comment>-

Let me do a quick breakdown on why I think Spin Selling is really deep.

Its basically a method for asking questions that elicit deeper responses

its breaks down all sales questions into 4 categories:

SPIN Selling proposes there are four types of questions, thus SPIN stands for :

1) Situation Questions deal with the facts about the buyers existing situation.

2) Problem Questions ask about the buyer's pain and focus the buyer on this pain while clarifying the problem, before asking implication questions. . These give Implied Needs.

3) Implication Questions discuss the effects of the problem, before talking about solutions, and develop the seriousness of the problem to increase the buyer's motivation to change.

4) Need-Payoff Questions get the buyer to tell you about their Explicit Needs and the benefits your solutions offers, rather than forcing you to explain the benefits to the buyer. Getting the buyer to state the benefits has greater impact while sounding a lot less pushy. What these questions do is probe for explicit needs.

The quick takeaway, is that sometimes situation and problem questions are sometimes needed to make sure you know what everyone is talking about, but those questions are boring for the person being asked them. The basically amount to giving information to someone who clearing doesn't know as much as they do.

What you really want to do, are minimize those question (probably by googling extensively before hand), and ask implications questions and need payoff questions, those are the questions that will lead the listener to consider things they hadn't previously considered.

When you start asking those questions, you'll start having conversations where you learn things other people don't know.

This is presented in the context of making sales calls, but its actually good advice for a huge range of conversations where what you're trying to determine "what does the other person want?" "why do they want it?"

<comment><USER36> You might also like

[1] Sharon Drew Morgen's Buying Facilitation

Its message, "buyers don't know how to buy", helps make sense of some of the controversy in this thread. If you're hiring 100 software engineers, god help you if you don't know how to hire. But if you're hiring your first CFO, say, it's more likely that you "don't know how to hire", and that a commanding (yet polite) interviewee will be helpful.

Sharon Drew Morgen emphasizes the process of questioning and the "systemic" nature of the uptake. Again, more relevant for a "big hire" than a dozens per year hire. If you're the first CFO ever hired, especially, it makes sense to help the hiring team think through how the company will adjust to having that new role and whether they've done the necessary groundwork for those adjustments.

[2] The Challenger Sale

Similar, but with an emphasis on the content. Do your research in advance to figure out how your type of widgets solves specific problems that most of your customers have.

The hiring analogue again fits best for "big hires". E.g. "since this is your first CFO, a big part of the job will be to straighten out the ad hoc financial routines that have grown up so far. I have the necessary great financial/accounting skills, but I'm also a great listener/researcher with the people skills to bring people into more constraining routines."

[1] [https://buyingfacilitation.com/blog/buying-facilitation- new-...](https://buyingfacilitation.com/blog/buying-facilitation-new-way-sell- influences-expands-decisions/)

[2] [https://www.cebglobal.com/insights/challenger- sale.html](https://www.cebglobal.com/insights/challenger-sale.html)

</comment></comment><comment><USER37> I just went through a phone interview with a candidate today who did this. He had pre-shared a 36-page presentation of his career/goals/etc.

I spent some time studying this presentation ahead of the interview and thought he was thoughtful and that this indicated an attention to clear communication.

Then we started the interview. I told him I had read his presentation in detail and commended him on the homework. He then super-politely asked if he could spend ten minutes to quickly go through it to add some more details, via a shared screen service. "Sure, why not?"

40 minutes later I finally cut him off, two thirds into the presentation. I came away from this thinking he was trying to control the communication, perhaps stearing me away from probing at his weaknesses rather than thinking he was a proactive comminicator.

Please don't do this.</comment>


Let WalMart Fix US Healthcare - <AUTHOR> http://articles.moneycentral.msn.com/Investing/JubaksJournal/LetWalMartFixUSHealthCare.aspx

<comment><USER2> WalMart can help by offering inexpensive pharmaceuticals. I don't know if they can help overcome a larger problem. The problem seems to be that health care providers do not compete on value delivered. Until we effectively measure value (long term benefit divided by cost) delivered and compare it across providers we will have no way to use the market to stimulate improvement.

Right now we don't measure long term benefits and decisions are insulated from costs.

(Yeah, I drink the Kool aid: [http://www.amazon.com/Redefining-Health-Care- Value-Based-Com...](http://www.amazon.com/Redefining-Health-Care-Value-Based- Competition/dp/1591397782))

<comment><USER3> _"... WalMart can help by offering inexpensive pharmaceuticals. ..."_

Inexpensive yes, effective maybe, probably no. Walmart works by dictating the price a supplier sells. This is how it gets things so cheap, screw the other guy hard. So the question is _"do you want the cheapest drug or the most effective?"_. By effective I mean, _"it does what it claims"_. There are huge _quality_ problems in outsourcing pharma-products to China, India and other non-first world states. If you want to Walmart exerting it's control on drug price, the likely result is cheaper but an inferior outsourced product.

</comment></comment><comment><USER4> Seems like there a couple of interacting problems but no one size fits all. It does seem like WalMart would be useful for high frequency low severity (adjusting for risk of some high severity situations lurking in the intake). Trauma needs a trauma center, chronic progressive conditions benefit from Kaiser's approach (and have proven amenable to pharmaceuticals in many cases). It's not clear where to put cancer, if we can't screen and catch it early we don't seem to have a good answer. Stroke and heart attack may benefit from early intervention that's one time plus physical therapy follow up. There may be some more categories.

Trauma (e.g. automobile accident, gunshot, explosion) => trauma center

High Frequency Low Risk (for most: cough, cold, flu) => WalMart

Chronic (heart disease, diabetes, high blood pressure, gout, glaucoma, cystic fibrosis) => pharmaceuticals / Kaiser pro-active healthcare

Low Frequency High Risk (cancer, heart attack, stroke, appendicitis) => medical center / surgery

Getting fewer people to smoke would have a huge impact.

You also need to distinguish between an intervention that gives a 1 year old another 60-80 years of life and a 72 yr old another six months, they may cost the same but the first has a much stronger impact on society. I am not saying deprive anyone of medical care, but understand there may be an enormous cost for medical care in the last year of life. Good health is dying more slowly: good medical care doesn't save your life, it lets you die of something else a little (or a lot) later.

</comment><comment><USER5> "The goal, everyone agrees, is to maximize coverage, heighten competition and cut costs. Good goals, all."

No, the goal is to save lives and provide EVERY American with health care in order to improve the quality of their life. This isn't about being "cost effective," it's about doing what is right,

<comment><USER6> >This isn't about being "cost effective," it's about doing what is right.

There are a finite number of resources in this world and an infinite number of wants and needs. It is ALWAYS about being "cost effective". Money used on health care cannot be used on other things, such as education, transportation, or investment in a company that provides jobs and useful services.

How much medical care should everybody get? Should we be willing to spend $1 million to extend an elderly citizen's life for a year? Should EVERYONE have access to that quality of medical care? These are important questions. Cost and benefit must be weighed in health care, just like anywhere else.

Life is more complex than leftist soundbites, my friend. If spending $1 trillion extra on medicine would save a thousand lives, I would contest that it would not be worth it. The question is, how much of a reduction in the quality of life in America are you willing to accept for an improvement in the average quality of health care?

<comment><USER5> I understand that there are limits and finite resources. If you're asking where to get the money from how about a little less on weapons development and a little more on medical research.

"How much medical care should everybody get?"

Well -any at all- would be a start for the millions without it. A lot of the questions you posed (who gets what and how much) have been answered in one way or another by the dozens of countries who already employ a universal health care system. We should be looking to them as a template and applying their to a new system.

Sorry, but I get a bit heated about UHC. People tend to say things like "Where is the money going to come from?" or "The government is too incompetent to manage such a system" which are cop-outs, imo.

"The question is, how much of a reduction in the quality of life in America are you willing to accept for an improvement in the average quality of health care?"

I'm willing to give up a lot more of my money for health care than for weapons and war funding.

<comment><USER7> >I understand that there are limits and finite resources. If you're asking where to get the money from how about a little less on weapons development and a little more on medical research.

Sounds great. Only one problem: money is an illusion. The issue isn't money, it is supply of medical care as measured in units of doctor-hours.

The only way you can get doctor-hours for person X is to take them from person Y. Doctors already work far more than full time and are unlikey to work more. Getting more doctors will be tough, since medical schools are all full.

The issue is that medical care is a very scarce commodity. And you can't legislate scarcity away. Any proposed solution that doesn't create new doctor- hours (or find a substitute good for doctor-hours, such as nurse-hours) is a fraud.

<comment><USER8> Doctors are kept artificially short in supply by the US medical school system. This is very, very fixable.

<comment><USER7> Technically it is medical schools that are kept in short supply. Most medical schools operated at full capacity, and about 2/3 of qualified applicants are turned away.

This is certainly fixable, though the time horizon (medical school construction/expansion time + doctor training time = 10-15 years) is longer than most politicians like.

</comment></comment></comment></comment></comment></comment><comment><USER9> The title is misleading. Wal-Mart can't fix US healthcare. But Wal-Mart can make big inroads into fixing prescription drug access. But there are so many problems in healthcare that Wal-Mart isn't positioned at all to fix. Tens of millions of Americans need health insurance (though the 47 million number that is thrown around includes many who are young and don't want insurance, and many people in between jobs and temporarily uninsured). If Wal-Mart can't insure it's own employees, I don't think they'll become the health insurance provider for underserved Americans.

That said, here is another problem that Wal-Mart can "fix": It's too hard, and too expensive to see a doctor for a minor illness. CVS' MinuteClinic and related offerings by Wal-Mart are trying to exploit this niche.

But basically, there is too much wrong with healthcare for any one entity (incl the gov't) to "fix" it. As an administration official said (privately): "The great thing about health policy, is that your education & training is still useful. The issues we're facing now are the same ones we were facing 30 years ago!"

<comment><USER6> I don't think the title is misleading. The author claims that Wal-Mart can lower health care costs and increase access to more people. Do you have any specific argument against that?

> If Wal-Mart can't insure it's own employees, I don't think they'll become > the health insurance provider for underserved Americans.

Nobody said that they would, including the author. However, if Wal-Mart can work their magic on basic health care, then it becomes much easier to get by on a high-deductible catastrophe plan for most people.

<comment><USER9> Well, healthcare != drugs. Yes, better medications are a part of providing better health care, and Wal-Mart can help a lot with that. But there is much more to providing quality healthcare.

I'm not criticising Wal-Mart - they're doing a great job lowering barriers to access. I'm just saying we should recognize the limitations and not call it a panacea for American healthcare.

<comment><USER6> They also expanding into basic doctor's visits through their pilot clinic program. It's in the article.

</comment></comment></comment></comment><comment><USER10> What a preposterous suggestion. Should we start having Taco Bell service our cars?

<comment><USER11> If YUM wants to switch its core competency from serving fast food to automobile servicing... why not?

Snark aside, there's a current trend in "retail healthcare" that I think is really interesting. Drug stores like RiteAid and Walgreens experimented with posting a doctor at each store to provide basic diagnosis for approachable prices on a 9 to 5 scale. That combined with cheap generic prescription drugs, it's become a very good health service for people that don't have jobs that provide medical care.

Will this scale to other more advanced medical treatments? Maybe. That's what the article is talking about.

<comment><USER10> Maybe I should have expanded a bit. I think the Wal _Mart healthcare system would be about as good as the Wal_ Mart-branded clothing. Not good.

If Taco Bell started to service your car while you were in the drive through, some men in business suits might say it's a good synergistic initiative. I mean, your car is already there in the drive through.

But really, Taco Bell makes horrifically shitty tacos. Is that even meat they use? It's embedded deeply in the corporate culture to make shitty tacos, and I am positive the same philosophies they use in building their tacos would go into the quality of their in-drive-through-car-repair.

Wal _Mart, similarly, does everything cheaply and fucks with entire markets by using their power to demand certain prices or functionality. Wal_ Mart effectively morphs some companies into Wal*Mart-like companies. I think it would be stupid to assume they wouldn't do the exact same thing to healthcare professionals.

Can you imagine having the same person who negotiated the price of a toilet bowl brush down from $1.99 to $0.99 by demanding the toilet brush company use half as much plastic as being the same person negotiating with the doctor to delay your xray a few days?

</comment></comment></comment><comment><USER12> Before swallowing this tripe, one must first believe the "government is your enemy, the market our savior" mantra.

Government is a tool that can be wielded effectively or ineffectively. Though Americans haven't quite learned how to do anything with this tool (or rather, have forgotten over the last few decades), other people have and they enjoy the benefits, one of which is affordable, effective health care for everyone. Americans too can enjoy these benefits, however too many of them would rather repeat the mantra and eat their tripe, than learn from reality.

<comment><USER13> What amazes me is that progressives simultaneously believe that 1) the U.S. government is controlled by special interests ( insurance companies, the AMA, drug companies ) and 2) we should give the government more power to regulate healthcare. If you believe 1), then doing 2) means giving even more power to the special interests.

Anybody who wants the US healthcare system to look more like Europe's, must also come up with a realistic way of 1) replacing our Congressional system with a Parliamentary system, and 2) curbing the power of the lobbies. Otherwise, any plan to use government to make healthcare better will be co- opted by the special interests and end up making the healthcare worse.

<comment><USER6> Yes. All institutions are governed by incentives. The Government is not run by angels, but men. Furthermore, being the largest organization of any sort in the entire world, it has a particularly byzantine, inefficient, and wasteful web of contradictory incentives that govern it.

It amazes me that people use such sloppy thinking when it comes to politics. "We'll should use the government to do X" is not the end of the conversation. We must ask how likely it is to carry out the goals given it, how much it will cost to do so compared to alternative solutions, etc.

Edit: In Economics this line of reasoning is called "Public Choice Theory"</comment></comment></comment>


Net Neutrality Petition - <AUTHOR> Anyone know of a good way to contact the larger content providers of the world (FB, Reddit, Amazon, Netflix.. even Apple and Microsoft) to see if they could reduce their server count or something for the remaining 10 days we have to save net neutrality? Slowly loading the reddit symbol isn't enough. Lets make our netflix shows blurry and slow, our FB feeds slow, our reddit feeds slow... lets make it nearly impossible to post new content to instagram or see new photos or read the websites while we still have a chance to change some minds. Anyone have thoughts? I'm sure Paul or Sam is trolling the HN news and maybe will see this and have some thoughts. <comment><USER2> Did you ever consider that what you are asking is actually unethical and immoral? It's also ironic that you are asking private entities to use their monopolies to purposefully slow their services down to manufacturer outrage for political purposes. This could even backfire and give even more credence to folks who support the repeal of net neutrality in their believe that governments will use regulation like this to exert power on the people. Historically, governments around the world have been main perpetrators of using the internet to censor, throttle and restrict the rights of citizens, not ISPs.</comment>


Study Pinpoints Source of Banned Gas That Saps Ozone Layer: Eastern China - <AUTHOR> https://www.nytimes.com/2019/05/22/climate/china-cfcs-banned-chemicals-ozone.html <comment><USER2> I mean, let's be honest here: is this really a surprise?

There's a business culture of dishonesty throughout the country that is unprecedented. Their food supply is poisoned by factories that simply don't care about life and only care about money. There have been articles about how cooking oil is recycled from waste, and how fish are fed feces instead of food and packed in ice from polluted waters. Fake milk, fake baby formula, fake eggs for crying out loud. They add poisonous chemicals to pass tests, but those chemicals killed hundreds of pets in the US. And when the FBI went to investigate, the factory has already been burned to the ground to eliminate evidence. My friend worked at Uber and she said that the amount of fraud perpetrated within China was staggering, more than any other country on a per capita basis.

There was an article on HN recently talking about how some Chinese products on Amazon have 40x the safe amount of lead and 30x the safe amount of cadmium in children's products. How does lead and cadmium get into a Spider-man pencil case for fuck's sake?

It's so bad that even Chinese citizens simply don't trust the products made in China. When Chinese citizens go abroad they buy things like baby formula because they know they can't trust Chinese baby formula. It's sickening. I'm teaching my children to completely stay away from cheap Chinese products because we seriously have no way to know if it's safe, and our government has cut funding time and time again so it doesn't have enough resources to test the goods coming in.

It's reprehensible.

<comment><USER3> America has the same business culture; what's saving (most of) us is our better-functioning regulatory culture.

<comment><USER4> > America has the same business culture; what's saving (most of) us is our > better-functioning regulatory culture.

The difference in America is it's not good business practice to hurt your own customers. i.e. reputation matters. You mess up just once, and it takes years for your brand to recover (this includes non-brand brands, like store brands or generics).

In China it seems like there's a never ending supply of new names constantly.

<comment><USER5> Sometimes the backlash can be catastrophic in China though.

[https://en.wikipedia.org/wiki/2008_Chinese_milk_scandal](https://en.wikipedia.org/wiki/2008_Chinese_milk_scandal)

</comment></comment></comment></comment><comment><USER6> We also know the source of the plastic in the ocean... turns out it boils down to a very small number of rivers, in a very specific region of the world. [https://www.weforum.org/agenda/2018/06/90-of-plastic- polluti...](https://www.weforum.org/agenda/2018/06/90-of-plastic-polluting- our-oceans-comes-from-just-10-rivers/)

<comment><USER7> Likely to change soon. Those areas have stopped buying plastic waste from the rest of the world.

<comment><USER8> Having seen the trash coming down several of these rivers in person, everything I could identify seemed to be of local origin. I certainly didn't see non-local languages written on plastic bottles, for example.

<comment><USER9> It's just fashionable to blame everything on the West.

The East isn't any different.

</comment></comment></comment></comment><comment><USER10> Having been an expat traveled to over 25 countries, I can confidently say our natural world is fucked. Modern industrialism has given the third world too much manufacturing power. And they aren't aware of the consequences and don't care, because "fuckit I want kids toys and double ply toilet paper for my family too, not just the Westerners"

<comment><USER11> All currently rich "sophisticated" countries were in a similar phase when they were fighting their way out of poverty.

Once countries get rich enough, they can afford to care about the environment. China seems to advance much faster than others did historically, so I'm hopeful.

<comment><USER12> We also assumed as countries became more rich/industrialized/advanced they would become more democratic, and more concerned with human rights, and less zero-sum adversarial in dealing with the United States.

I think those hopes are no longer mainstream thinking in regards to China.

How confident should we be about the prediction that China will adopt similar policies to the US in regards to the things you are mentioning?

<comment><USER13> USA democratic system is one step away from China's one party system: it's a two party system in USA which hasn't changed much for centuries.

Europe, Australia, etc, have more than two parties in government. More choice, more representation.

<comment><USER14> "There is only one party in the United States, the Property Party … and it has two right wings: Republican and Democrat."

― Gore Vidal

</comment></comment></comment></comment></comment><comment><USER9> Should they be under international sanctions for polluting our commons and destrying the planet?

<comment><USER15> Simpler is to return production to countries that have proper environmental regulations. Right now we outsource pollution production to China.

<comment><USER9> Really, moving a supplychain is easier than punitive tariffs/sanctions?

<comment><USER16> Requiring companies to not do business in countries (or use specific industries in those countries) based on some specific goal _is_ a form of sanctions.

</comment></comment></comment></comment><comment><USER17> Sincerely, all this environmentalist's manifestations we are seeing in EU, would actually make sense if they where in front of the Chinese embassies here.

Instead they keep demanding local actions from the EU, as if the EU hasn't been in the forefront of environmental protection for almost half a century now. This way they are just diverting the attention away from the real main issue: China.

</comment><comment><USER18> Tragedy of the commons. If there is a shared resource, let the people act in their self interest and sap away all of it.

</comment><comment><USER19> Not only banned flourocarbons, China and Asia are the main source of plastics entering the oceans through their rivers.

Some are calling for environmental mercenaries, like Earth First! or GreenPeace, who will reek havoc on those who pollute or endanger the planet, ourselves included.

<comment><USER20> As much as I hate to see the environment getting destroyed, eco-terrorism is not the way forwards.

Every normal person is empowered to help: purchase from people whose ideals you agree with, win the hearts and minds of those around you, re-use everything you safely can.

<comment><USER21> And perhaps there should be tariffs on Chinese goods to prevent them from dumping poisonous products on the market.

Some of these things like lead and cadmium in children's pencil cases made me wonder if this was intentional.

<comment><USER22> > And perhaps there should be tariffs on Chinese goods

Someone other than Trump will have to do it though, otherwise the motives are all wrong

<comment><USER23> If the results are positive, the motives won't matter.

</comment></comment></comment></comment></comment><comment><USER24> TFA made me think of Dr. Mehmet Oz' interview of Dr. Jordan Peterson [1] from last year (2018). I've transcribed part of the interview below:

Dr. Jordan Peterson:

> "I've always been obsessed with totalitarianism and authoritarian > governments whether they're on the Right or the Left for years--decades > really. I spent almost all of my free time thinking about what happened in > Nazi Germany and in Russia during the Soviet era; but also when Mao was [in] > China--there were other places as well. [I was] trying to understand how it > was that we could have got off the rails so absolutely terribly. I started > studying that at the collectivist level, looking for political or economic > reasons. But as I investigated further those levels of analysis [...] > weren't providing the answers that I wanted--I think partly because I was > really interested in the notion that there's something to learn from what > happened, say in Nazi Germany: but there's something to learn at an > individual level. That's my estimation. I don't think that there were > innocent masses of people led astray by a single malevolent leader. I don't > think the fundamental motivations for what happened in Nazi Germany were > economic and I don't think they were in the Soviet Union either. As I read > more and more about the situation, I realized that the proclivity of > individuals to avoid responsibility and to lie, especially about their own > lives and about their own experience, were really the reasons that those > systems went so far astray."

> "[...] The lessons there for me were psychological and that taught me an > awful lot about the role of the individual: people like Viktor Frankl, for > example, who wrote Man's Search for Meaning, a perennial classic and a great > book--insisted that a large part of the reason that Germany went off the > rails so badly was because individual Germans were so willing to falsify > their own experience. Alexander Solzhenitsyn who wrote the Gulag > Archipelago, the best document on what happened in the Soviet Union, also > made exactly the same argument."

> "So I got interested in the psychological causes of catastrophic governance > and that taught me a lot. It taught me about responsibility. About the > responsibility of the sovereign individual. We have an idea in our [Western] > culture, it's a very powerful idea: that each of us is of intrinsic value. > But associated with that value is a responsibility: we have a responsibility > for our own integrity and for that of our families but also of the state."

This begs the question: are Chinese business men and women willing to falsify their own experience at the expense of the {environment,personal integrity} to make a buck and/or survive?

The business culture of dishonesty (borrowing from HN user docker_up) can't persist forever.

[1] [https://youtu.be/AscPHmLWo-M?t=322](https://youtu.be/AscPHmLWo-M?t=322)

<comment><USER25> This quote reeks of self-righteousness. Western corporations have done as much harm as they could get away with to make a quick buck as well.

Jordan Peterson is an individual who seems like he struggled to make sense of the world according to his Christian/Pure-Capitalistic view of the world and decided to concoct wild self-righteous theories to justify his bias rather than change his viewpoint. The only thing he has going for him is that he speaks with extreme confidence. My advide to you: choose a better messiah to save you from whatever disillusionment you are going through.

<comment><USER26> > decided to concoct wild self-righteous theories to justify his bias rather > than change his viewpoint

To what? Is there a "right" answer that would serve someone better? It's always going to appear self-righteous when you justify your own worldview. The utility of JP's views, is why other people adopt it, not some fictional "messianic cult". JP's reasoning has flaws and gaps as with all people. Even the utility is from other historical wisdom, not his own, repackaged into a story. Easily digestable and as rational as any other I have seen.

<comment><USER27> > Even the utility is from other historical wisdom, not his own, repackaged > into a story. Easily digestable and as rational as any other I have seen.

but that doesn't necessarily make them true

<comment><USER26> What does "true" mean in this context? A belief system isn't true in any sense, nor is it practical to have a full knowledge of reality (enough to have rigid axioms about human behavior), so what's the goalpost here?</comment></comment></comment></comment></comment>


"What is the min investment required to start an Internet business"? - <AUTHOR> http://ask.inc.com/realistically-what-is-the-minimum-investment-required-to-start-an-internet-business

<comment><USER2> Not a terribly useful question, but for curiosity's sake, you can do it with $58.16 (as an upper bound).

<comment><USER3> In which part of the world?

</comment></comment><comment><USER4> You can actually get started for free if you're a developer and understand how to deploy a Rails app on Heroku...</comment>


Show HN: Crown – A flexible game engine written from scratch in C++ - <AUTHOR> https://github.com/dbartolini/crown <comment><USER2> While I find the "sane C++" approach pragmatic and practical all things considered, I'm firmly in the "time to use a better language if possible" camp.

The problem with approaches requiring extra discipline is: it's an extra mental burden to bear while programming. Also, you'll always be limited by the fact that you're working in a less pure ecosystem and will likely end up using libraries written in "not very sane C++" anyway.

We seem to have flexible compiler SDKs these days (LLVM etc.), why isn't there a strict "sane C++" or "orthodox C++" subset available as a custom language or compiler option yet?

<comment><USER3> The first step would be to actually define such a subset. And what happens when this subset calls into "full" C++? If you don't want to lose interoperability you have to be pretty conservative with the things you disallow.

In particular since C++ kept the C-style preprocessor "just copy and paste that file in there" includes it would be tricky to handle "sane C++" including "full C++", especially since templated C++ tends to put a massive amount of code in the headers (think boost for instance, which is mostly .hpp "headers"). You'd have to tell the compiler to switch the "sane" flag on and off within the same translation unit depending on the original source of the code. Nothing impossible, but not exactly elegant. Alternatively you could use a new `extern "sane-C++" { ... }`-type block around all your code to tell the compiler what to do.

At any rate you'll have to make sure that your sane subset can always inter- operate with the "wild" C++ without any cross-contamination.

But really I think the main problem is that you'd have trouble getting a consensus on what would be your sane subset. Some devs will tell you to get rid of exceptions altogether, others will tell you that multiple inheritance is the work of the devil. Some will want to ban raw pointers (or at least severely gimp them). And some will want none of that but something else instead.

<comment><USER2> > _But really I think the main problem is that you 'd have trouble getting a > consensus on what would be your sane subset._

This can probably be solved by adding flexible configuration options (C++ compilers already have plenty). In practice, project leaders would then decide on a set of such options, similar to what happens with code style guidelines.

Perhaps some day a majority of people will agree on a "good" subset of C++ / option set and it will become standardized as a new language or dialect.

</comment></comment></comment><comment><USER4> I'm not trying to be too critical, but the first thing I look for whenever I come across a new game engine is an actual game implemented in it. Unfortunately, almost none of these engines ever seem to get around to providing a MVP.

<comment><USER5> Bingo. Designing a game engine that has no dogfood project(s) just portrays it has no applied use, and hasn't ran into issues with its own design before.

</comment></comment><comment><USER6> I partially agree with "Orthodox C++". Templates should be used only when needed and for turn the code simpler(not like the abomination used in most of Boost libraries).

But also, i don,t see any sane reason to reinvent the wheel and reimplement basic stuff like thread/mutex classes when the C++ version works well. Or using "NULL" instead "nullptr", or using that pre-processor macro garbage instead templates/constexpr, etc

I think some modern C++ features, that if well used, turn the code much clear and expressive.

<comment><AUTHOR> When I started the project C++11 was not supported well on most compilers. I'm fine with new features when they don't limit my freedom.

I'm fine with nullptr, it is going to replace NULL very soon.

<comment><USER7> You should just replace it and define a nullptr macro for older compiles.

</comment></comment></comment><comment><USER8> If you come to finance, most of the developers love premature templatization, it makes them feel like they know something. Not sure it that can be attributed to their insecurity about C++ coding skills, but it gets really ridiculous at times.

<comment><USER9> I have a friend who runs a hedge fund, not really insecure at all but uses templates vigorously. More stuff in compile time rather than runtime. In critical sections inheritance can be prohibitively expensive because of the use of lookup tables.

<comment><USER10> Thrashing your I$ because you have too many template instantiations can be prohibitively expensive too, it's just harder to metric.

<comment><USER11> Just how many nested templates are we talking about here? You can have that problem (obviously) with or without templates. Most sane template designs don't exist when the program is actually run (Debugging them when they don't work is another matter)

</comment></comment></comment></comment><comment> aaron-lebo New hobbyist engines pop up from time to time and then they fade into memory. Why is this going to be different?

Not to be too grumpy but game engines are a weird thing cause they are such complex beasts and usually the people using them have invested a lot of time in learning them. It's fun to make a new engine, but it probably doesn't have the community nor interest to cover the hard 10 to 20% that inevitably come up. Seems like the time is better invested in one of the super big AAA engines or in writing your own.

What's the plan for 2 to 3 years from now?

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

Polycode had some interest around here 4 years ago, with lots of the same goals, but haven't really heard from it since. Similarly, how does this compare to Godot or even something like Torque?

<comment><USER12> Yeah, writing game engines can be a great framework for learning all kinds of useful and interesting concepts (and trying out experimental things!) but an actual, usable engine needs a ton of "boring" stuff regarding tooling and asset pipeline that hobby engines usually miss. When artist creates shiny visuals in <some editor> it is expected to look somewhat like that in engine and then you find yourself deep in some FBX/whatever SDK/your own loader + shaders wondering how the pipeline is supposed to work and how all the usual formats seem to suck in some way. Add animations, IK etc. and suddenly there is a lot of work to do that production quality engines solve.

That is not to say it is always needed though if the game is really simplistic. But there are a lot of engines capable of rendering instanced bouncing OBJs out there.

<comment><USER13> While in general you are right about the boring stuff (although some people find writing tools far from boring - e.g. me, i should actually write _less_ tools if ever want to finish some of my own stuff:-P) the shiny visual bits aren't usually "just" imported. In the (commercial, not personal) engines i worked at, the artists used their 3D mesh editor of choice (max and maya) to make the meshes but only bothered with the basic texturing in that 3D mesh editor. The materials were created inside the engine's own editor since 3dsmax/maya's materials both do not make much sense to fully replicate _and_ they lack functionality that the engine's own renderer (and material system) can provide.

In the last (commercial) engine i worked at, the pipeline was to export the mesh from the 3D mesh editor (3dsmax or maya) to a custom easy to parse format and then import it from the editor to a more compact faster and easier to work with format. Then the artists would create the materials and other resources that the engine needed to work with from inside the engine's own tools. The imported resource remembered the original file so that artists could simply export again and ask the editor to reimport stuff (at a later point we made the editor to automatically monitor the directories for changes - both Windows and Linux provide functionality for this - so the artists would simply export from their 3D mesh editor and the engine's editor would reimport the meshes automatically).

In the previous (commercial) engine i worked at, things were simpler in that we only supported 3ds max (although the 3dsmax SDK was _far_ from simple, if it wasn't for SymbianOS it would be one of the worst SDKs i've worked with... but that is another story) and we exported animations and meshes directly to a custom format the engine expected. The exporter also had a "preview" feature to allow the artists preview the exported files in a standalone viewer that used the engine's renderer to make sure that things looked fine (in that case we actually did try to use 3ds max's materials, although in hindsight that was a mistake since even with the viewer the artists often assigned textures incorrectly - we should have relied only as little as necessary on 3ds max instead of making it the primary content editor).

</comment></comment></comment><comment><USER14> Interesting! I'd be interested in better understanding the motivation behind Orthodox C++. In particular, you seem to dump most of the C++ standard library:

"Don't use anything from STL that allocates memory, unless you don't care about memory management."

I now mostly avoid templatization in my own code unless there's a really good reason. But the standard library often lets me avoid explicit memory allocation. Would love to hear more about the motivation for this (and other aspects of your C++ usage).

Also, if you have a demo of the engine in use that would be fun to see!

<comment><USER13> Generally speaking many C++ game engines avoid the STL stuff and reimplement their own more predictable containers, often with custom allocation schemes. The engine at the last game company i worked at, for example, had its own containers and memory allocator and allowed you to define the allocation category and pool per allocator and per object class (so, e.g., dynamic strings would be isolated to their own pool to avoid fragmenting the heap).

Related, Andrei Alexandrescu had a great talk about allocators in C++ a couple of years ago: [https://www.youtube.com/watch?v=LIb3L4vKZ7U](https://www.youtube.com/watch?v=LIb3L4vKZ7U)

Also related to the Orthodox C++, the same engine also ousted exceptions and RTTI. I'm not sure about the reason for exceptions, but C++'s RTTI was simply inadequate and instead it was replaced with a custom one made using macros (similarly to wxWidgets and MFC) that allowed automatic object serialization and reflection which was used for all saving and loading, exposing objects to the editor automatically with a common UI and exposing classes and objects to the (custom) scripting language with very little setup.

Interestingly most of the stuff the engine had to reinvent seem to be first class citizens in the D language. Also Andrei's allocators also seem to be available (experimentally) there too.

Personally i prefer plain old C (C89 even, although with a few commonly available or easily reproducible extras like stdint) because i see C++ as too complex for what it is worth. However D seems to provide more power with less complexity and more and more makes me want to try it, especially the new "better C" mode that DMD has got (which i think is somewhat the D equivalent to Orthodox C++ that is linked from the page).

<comment><USER15> > Generally speaking many C++ game engines avoid the STL stuff and reimplement > their own more predictable containers

This seems a little like cargo cultism. I wonder if any of these shops regularly measure the performance of their custom containers and compare with the standard library on a modern optimizing compiler and make a reasoned judgment that it's still currently worth the trade-offs to stick with their own stuff.

<comment><USER16> Older implementations of STL had a lot of issues, EA wrote their own version way back when to address them with a list of whys here: [http://www.open- std.org/jtc1/sc22/wg21/docs/papers/2007/n227...](http://www.open- std.org/jtc1/sc22/wg21/docs/papers/2007/n2271.html)

<comment><USER15> Right, but that was a long long time ago, 64 bits long. Even calling it "STL" nowadays kind of dates someone. I wonder how regularly EA currently does bake- offs between their stuff and the standard library. Not that it would matter at this point--they probably have so much legacy code depending on it that it would be painful to switch.

<comment><USER17> You can clone the repo and run the benchmarks yourself. When I last did it it was quite mixed (compared to libc++ on a MBP) - a lot of things were the same or slightly faster in EASTL, occasionally some things were an order of magnitude faster, some things an order of magnitude slower. Those were in what I would consider "edge cases" rather than general usage, for which the two were fairly similar.

As other comments have said though, the main reason it's used (and the reason I was interested even though I don't do games) is because the allocation story in the stdlib sucks.

<comment><USER16> My recollection (which could be wrong, it's been a long time) is that the white papers Microsoft freely distributed for XBox 360 development said specifically to not use any STL containers except contiguous memory ones and probably not those either without custom allocators. The penalties for cache misses/pipeline flushes were very high and naive STL usage made both those things happen a lot in real games (Microsoft would step in and help developers and would do post mortems on things they did to improve performance).

</comment></comment></comment></comment></comment></comment></comment><comment><USER18> Wow it seems to contain a full level editor written in vala, a language I hadn't heard of. It seems to be a high level language similar to C# but with a native compiler and some different semantics (RC instead of a tracing GC for example). Is vala widely used?

<comment><USER19> Its really only used for gtk3 apps. I think it was created with that in mind by the gnome team

<comment><AUTHOR> Toolchain was initially written in C#. Vala simplified a lot the switch to GTK+3. Today I think an IMGUI-like approach is the way to go for game tools. Rewriting the editors should be rather painless due to their engine-decoupled TCP/IP architecture.

</comment></comment></comment><comment><USER20> The code seems clear enough, though I think the preprocessor macros for wrapping OS specific logic could be at the function level or class level rather than at the statement level.

<comment><AUTHOR> Why when code amount is small enough?

</comment></comment><comment><USER21> How long have you been working on this engine for?

<comment><AUTHOR> I started with game engines well before I put this project on github in 2012.

<comment><USER22> Can you recommend any resources/books to learn game engine development? I would love to implement a mini one where I can rapidly prototype AR applications :).

<comment><USER23> You may just want to start by building your AR applications first. After a few of them, you'll have a better understanding of what common functionality is needed.

See also: [https://geometrian.com/programming/tutorials/write-games- not...](https://geometrian.com/programming/tutorials/write-games-not-engines/)

<comment><USER22> I love the article! It makes sense that after developing AR application on a game engine, I will identify the common functionality that would fit better for an "engine" that would fit the ideas I want to develop.

I am interested in developing AR applications that are not as much of a game, so I was worried that a game engine would not fit.

With both learning more about graphics and making my own games, it would make future engine development more clear.

</comment></comment></comment></comment></comment><comment><USER24> Props for the coding discipline. I couldn't even tell how long it has been since I saw C++ as readable as this.

<comment><AUTHOR> Thanks, I'm glad you like it. :)

</comment></comment><comment><USER25> Really cool work! I would love to have some time over to try it out.

<comment><AUTHOR> Hey, thanks. :)

</comment></comment><comment><USER5> Your use of `require` is incorrect.

<comment><AUTHOR> Can you elaborate on this?

<comment><USER5> [http://lua-users.org/lists/lua-l/2012-08/msg00302.html](http://lua- users.org/lists/lua-l/2012-08/msg00302.html)

<comment><AUTHOR> All resource paths (.lua files are resources like any other) in Crown are unix-style and do not include the extension.

I have a custom loader that deals with it: [https://github.com/dbartolini/crown/blob/master/src/lua/lua_...](https://github.com/dbartolini/crown/blob/master/src/lua/lua_environment.cpp#L52)

<comment><USER5> I would recommend that you extend `package.loaders` instead. You risk breaking expected `require` functionality. Then you get the benefits of both!!

[https://www.lua.org/manual/5.1/manual.html#pdf- package.loade...](https://www.lua.org/manual/5.1/manual.html#pdf- package.loaders)

<comment><AUTHOR> I already do so: [https://github.com/dbartolini/crown/blob/master/src/lua/lua_...](https://github.com/dbartolini/crown/blob/master/src/lua/lua_environment.cpp#L85)

</comment></comment></comment></comment></comment></comment><comment><USER26> Great title. C++ is so terrible you have to prefix it with "modern" or "sane" to get people excited about it.

</comment><comment><USER27> It's a lost cause: there's no such thing as "sane" or "orthodox" C++. Instead, use something actually sane like Go. Or Rust, if you really must (first bad pun is free, then it's 50 cents each).

<comment><USER28> Go is a bad choice for game with its unavoidable GC. And Rust is simply too complicated for a person wanting sane C++.

D or Nim (or even C!) would make more sense.

<comment><USER29> Is there not a point where GC overhead becomes negligible? There have been production examples of Go maintaining sub-millisecond GC pauses with a multi- GB heap under a server workload. [https://twitter.com/brianhatfield/status/804355831080751104](https://twitter.com/brianhatfield/status/804355831080751104)

Surely there are better reasons to disregard Go for gamedev by now.

<comment> aaron-lebo I've dipped my toes into using OpenGL and Go a few times and it seems pretty nice. But I'm entry level graphics programming and so it scares me off to go further (surely someone would have used Go by now in a 3d game, if you can do Minecraft on the JVM, why not Go)?

I keep wondering if it's not possible or if there's just not a lot of overlap between Go programmers and gamedevs? Wish someone knew.

<comment><USER30> I wouldn't predict a lot of overlap. On the game dev side, Go offers nothing new, and the forced untuneable gc will be an instant turnoff for the usual reasons. On the Go side, my outside perspective is most of its users seem to be focused on web server backends, trying to justify async everywhere, and/or rewriting slow Python or Perl or Bash scripts and assuming that makes it a systems language.

Go users interested in diving in to SDL or OpenGL bindings to make a game shouldn't be discouraged. Lots of games are made in all sorts of high level languages, the heavy lifting is put onto a few native libraries. But if the goal is to make a general engine, I'd question its utility apart from fun/learning. Again there are game engines in high level languages (with dark native-level secrets in any that try to be performant) but they don't seem to get traction. Even an engine in e.g. C++ doesn't necessarily help your performance goals ([http://www.yosoygames.com.ar/wp/2013/11/on-mike-actons- revie...](http://www.yosoygames.com.ar/wp/2013/11/on-mike-actons-review-of- ogrenode-cpp/)) if your plan is to make it general instead of make it just support whatever sorts of games you're making and planning to make.

</comment></comment></comment></comment></comment><comment><USER31> A cross platform project in modern C++ that doesn't use CMake? Unsure if want.

<comment><AUTHOR> It is not "modern" C++. It uses GENie, a fork of premake.

<comment><USER31> Huh. Okay, that was not immediately apparent from viewing the project— it looked like a hand-written Makefile. Link for the curious:

[https://github.com/bkaradzic/GENie](https://github.com/bkaradzic/GENie)

Appreciating that CMake has its warts, it also has a ton of mindshare and has lots of convenient modules for handling common dependencies. What are the motivations to use a Lua-based scheme instead?

<comment><AUTHOR> I find GENie/premake way simpler to read and write. Also, you have more flexibility since your build scripts have full-fledged Lua capabilities.

<comment><USER31> Yeah, similar sentiments in the PPT presentation here: [https://onedrive.live.com/view.aspx?cid=171ee76e679935c8&pag...](https://onedrive.live.com/view.aspx?cid=171ee76e679935c8&page=view&resid=171EE76E679935C8!139573&parId=171EE76E679935C8!18835&authkey=!AKv_SGrgJwxDGDg&app=PowerPoint)

CMake is "too complicated" and "you need to be an expert". Understandable, I suppose. There are certainly specific things in CMake which are pretty terrible, like the add_custom_command/add_custom_target dance, but from the perspective of someone who has had to become an expert in it (via ROS/catkin), I would be unlikely to give it up. There's just way too much stuff it gives you for free, especially when it comes to things like packaging, testing, etc.

</comment></comment></comment></comment></comment><comment><USER32> Great learning project, but for production just use Unity unless you absolutely, positively (triple-check) cannot. You will be massively more productive.

<comment><USER33> Umm, no. Unity has lots of problems that make it not ideal for games that have fast action or are developed by a larger team.

Like, the fact that it uses an old version of Mono on not-Windows, which uses a mark and sweep garbage collector. You end up with frequent stop-the-world garbage collection pauses that freeze the screen for seconds at a time. Play any Unity game on the PS4 and you'll see it frequently.

I've also heard that Unity's project asset management doesn't really work for teams that have more than 10 people working together, but that's something I don't have direct knowledge of.

<comment><USER34> > You end up with frequent stop-the-world garbage collection pauses that > freeze the screen for seconds at a time. Play any Unity game on the PS4 and > you'll see it frequently.

This is a coding problem, not an engine problem. A game should have almost no dynamic resource allocation.

<comment><USER33> Then what about Unity leads everyone who uses it to allocate dynamically, somehow, on every platform but Windows?

If everybody makes the same coding problem, and the common denominator is one of their dependencies, it makes you wonder what's wrong with the dependency.

<comment><USER35> If you're genuinely interest the developers of Inside have a great presentation on how they hit a stutter free 60fps on all platforms, PS4 included.

[https://www.youtube.com/watch?v=mQ2KTRn4BMI](https://www.youtube.com/watch?v=mQ2KTRn4BMI)

I don't know what projects you're referring to specifically on the PS4 but I'd suspect the difference comes down to hardware spec on the PC masking the issue, it probably being the primary platform and/or lack of time to work on optimisation for the port.

It's the use of C#, which generally written in a manner that creates garbage and lack of experience with programming games that causes many people who use it to go wild with allocations. Both intentionally and by accident. These days you can actually get pretty far before it's ever a problem on a gaming PC. Unity is also incredibly accessible so more people with less technical chops are programming games without even opening the profiler.

</comment></comment></comment></comment></comment><comment><USER36> Yet another game engine written in an imperative language, seemingly with the focus on writing something in Orthodox C++ and not necessarily writing something to solve a problem. Just as the discussion on this post shows, the more interesting thing here is Orthodox C++, not yet another game engine which doesn't offer any featues that modern game engines offer.

If you're expecting people to see this as a useful product, please explain why it should be used instead of the existing game engines. Consider listing its features and comparing them, maybe in a table, to popular game engines. Deferred rendering? Multi-threaded rendering? Entity-component system? etc.

Right now, I can see it has a (nice looking) editor, "physics" (nothing's moving, so it's hard to tell), and "animation" (again, nothing's animating in the image). Alas, one needs to learn to use its entirely fresh standard library reimplementation, and likely its strict C++ subset, if one actually wants to be productive with it. Given apparently no active community, no sample (or actual) games written in it, and no paid support, I don't see how that would be feasible.

If you have no interest in actually making a competitive, novel, or useful (to others, compared to existing solutions) game engine, please just say that. In that case, I'd just say this is a neat side project: well done, but try to focus on building something with it to help sell/prove its features.

<comment><AUTHOR> It is just a simple general-purpose, data-oriented, data-driven, entity- component based, lua scripted game engine written in sane C++ for my own game development needs.

Nobody's trying to sell anything here.</comment></comment>