10x Engineer - <AUTHOR> https://medium.com/about-work/6aedba30ecfe <comment><USER2> While the article correctly highlights the lack of rigorous scientific studies on 10x engineers, it also generalizes a bit too much from anecdote to make the argument that they are mythical creatures. A more reasonable argument is that the hypothetical existence of 10x engineers explains little about the productivity of most organizations.

Personally, in the couple decades I have been in this business working in countless companies in Silicon Valley, I have met a few individuals that I think could be accurately characterized as 10x engineers. An important point is that they are not productive at just one type of development but genuine computer science and software engineering polymaths. They are incredibly rare but they do exist for all practical purposes. People that are 10x engineers never seem to think of themselves that way, it is how the other engineers think of them. It advertises itself; if you have to tell people you are a 10x engineer, "ninja", "rockstar", etc then you probably are not.

I will add that none of the 10x engineers I worked with were burning the candle at both ends. They did not work particularly hard compared to everyone else, they were just extraordinarily effective and consistent at making excellent choices in an engineering context _and_ always worked very well with most engineering teams they needed to work with. I've never seen any of these guys burn out, they've been doing it for decades.

I would also suggest that it takes quite a few years of diversified experience before you can be a legit 10x engineer. Consistently making excellent choices requires both breadth and depth of knowledge and experience that you simply can't develop in less than a decade.

<comment><USER3> I would argue that the 10x engineer isn't a myth - the myth is that these 10x more productive employees are unique to engineering whereas they can really be found across industries.

My starting point is this study by biz school professors (unfortunately paywalled) about how power law distributions define employees in sales, scientific research, entertainment, and really much of skilled labor: [http://onlinelibrary.wiley.com/doi/10.1111/peps.12054/abstra...](http://onlinelibrary.wiley.com/doi/10.1111/peps.12054/abstract)

In effect, it's common for 20% of employees to be responsible for 80% of a company's productivity.

I'm a writer at Priceonomics, so you can read the blog post I wrote about the research and the topic here: [http://priceonomics.com/whats-so-special-about- star-engineer...](http://priceonomics.com/whats-so-special-about-star- engineers/). I'd love to hear what HN thinks in the context of this thread.

It's a longread. I think the most important points are:

1) You find star performers in many industries

2) Star performers are not inherently more productive - context is important. They are talented but also benefit from the system supporting them. In one study, the performance of 10x Wall Street analysts crumbled when they switched employers if their team did not come with them.

3) If you get obsessed with 10x employees and A players - and lose sight of important points like the importance of team - you will become Enron. Really. Enron lived and breathed the A players motto until their idolizing of "talent" lost all connection to reality. You can find a link to a great Malcolm Gladwell article on the topic in my post.

<comment><USER4> _Star performers are not inherently more productive - context is important. They are talented but also benefit from the system supporting them. In one study, the performance of 10x Wall Street analysts crumbled when they switched employers if their team did not come with them._

[http://en.wikipedia.org/wiki/Alexey_Stakhanov](http://en.wikipedia.org/wiki/Alexey_Stakhanov)

Stakhanov was held up as the >10x more productive coal miner; however, it's now generally understood that this was the result of a propaganda effort, and he had a team preparing and clearing for him.

This is a common risk in work-rate-measuring systems, how do you account for worker A spending time which saves the time of worker B? Especially in knowledge work, where the old guy/gal who does very little but carries all the oral history of the company in their head can be more important than anyone realises.

</comment></comment></comment><comment><USER5> The 10x is a huge simplification, but it doesn't make it any less true. Obviously there's a huge range.

I'd go so far as to say there are 100x engineers -- but it's not that they _personally_ achieve 100x more than another programmer sitting in front of the computer. It's that they have the vision and talent to set a project up the right way from the start, so that the normal programmers can be productive. They're the difference between a project being delivered in 2 mos with a new batch of properly-working features coming 1 mo after, or a project taking 2 years with 8x more programmers, crashing half the time, and further features becoming impossible.

And then there are -2x engineers, who mess up things in the code base so bad that every hour of their work takes two hours for other programmers to fix or undo.

Then there are engineers that accomplish things that other engineers simply cannot. Call these infinity-x engineers.

No matter how much people want to call the 10x engineer a myth, there is a truly gigantic variation in productivity levels, which is especially magnified at architecture-level roles (where productivity can have a multiplier-effect on other engineers, for better or worse).

<comment><USER6> Even the 100x is a simplification, of course.

One example (out of an infinite set of them) would be if you need a software system that deals with massive amounts of signal processing on a power constrained real-time DSP chip. There are lots of people out there who are "Senior Software Engineers" at whatever company they work at currently (because they can create website solutions by stacking existing JavaScript frameworks with some glue code) who may never be capable of delivering that system to you. Not 10x later than someone who can, not 100x later than someone who can, not 1000x later than someone who can, but not within their lifetime and thus certainly not within a useful time-frame for your project.

And I don't mean to pick on web developers here, that's just used for example. There are plenty of people out there doing web development who could adapt to embedded system programming, or who already do both adeptly, but there are also plenty of "web programmers" who are really actually designers or glorified project management people with little to no aptitude for programming at all.

Also, I don't think this is unique to programmers. I wouldn't expect a general practitioner doctor to be able to perform neurosurgery and just have him take 10x longer to do it, he may just never have the "hands" for it.

<comment><USER7> but the criteria to which you ascribe to is one of education and training.

A GP is certainly not a neurosurgeon, and therefore cannot possibly do the same job. Ditto with embedded programming vs a "front-end" developer.

But, if you consider only embedded programmers, would there be a 100x programmer out there?

<comment><USER6> "A GP is certainly not a neurosurgeon, and therefore cannot possibly do the same job. Ditto with embedded programming vs a "front-end" developer."

Cannot possibly do the same job? Really?

I've done embedded programming, front-end web programming, back-end web programming, desktop app programming for Win32, Qt/Linux, game programming, OS system level programming and currently do mobile app programming, among other types of programming. And I'm not particularly special, I know quite a few other people personally who have done various combinations of these jobs and others at a high level of skill in each specialization. That's sort of my basic point is that really good and flexible programmers are not fungible products you can really ascribe any productively multiplier to.

<comment><USER7> i didn't say a person can't be both a front-end and an embedded developer. I merely said that a front-end developer (who is not trained in embedded programming) cannot do it. That you (or that there exists people) who are both doesn't have any relevance.

</comment></comment></comment></comment></comment><comment><USER8> One of the many problems with the 10x Engineer concept is that it imagines that skill is a single dimension, when in fact it depends massively on context, environment, and the specifics of individual experience and the problem at hand.

I am definitely not a 10x anything, but my group once got handed a massive data-processing task that my supervisors--better coders than me, to be sure-- believed was impossible to automate, and budgeted 200+ man-hours to do manually. I asked them to hold off for a minute and successfully automated the entire process in three days. That doesn't mean I'm an all-purpose supercoder; it means I happen to be really damn good at analyzing patterns in data sets. Give me work that I'm good at, but don't expect me to be that good at everything.

<comment><USER9> Also related is the myth that "an engineer" is a fungible resource. They are not. It's not one problem space. You can't swap engineers around like that, you have to match skill sets and experience to the problems you're having, or build new skills.

<comment><USER10> There is a trade off. If you don't swap your people around then they become very one dimensional. Sometimes it better to put someone less experienced in an area on a project so that he gains perspective (ie. see all junior staff)

<comment><USER9> A good point. A better phrasing would be "you can't move engineers around like that and expect them to be instantly productive". The problem is that engineers are viewed as being one dimensional as in "amount of engineering". Swapping for cross training, skill building, or just plain variety is quite healthy.

</comment></comment></comment></comment><comment><USER11> I just realized what was bugging me about this article. It points out that the empirical support for 10x claims is shoddy. That's fair enough. But then it switches to making a bunch of claims that have _no_ empirical support: 10x is a myth, it's pernicious, it may lead to drug abuse, etc.

So which is it? If we're going to hold 10x up to the standards of rigorous research and conclude that it's bullshit, then by the same logic the rest of the article must be even more bullshit. (At least 10x has _some_ experiments behind it.) By that standard, the only legitimate thing any of us can say on the subject is "we don't know".

But if on the other hand we're going to grant some validity to the folklore, then the most likely explanation for the persistence of 10x claims among respected software veterans is that it's grounded in reality, even though it's silly to take "10x" literally. (What the hell is "x"?)

<comment><USER12> Well said. Without objective evidence, we should be open to the possibility of this being true or false.

However, as various people commented here, and I can attest as well, there are engineers who are orders of magnitude better than others. It's plainly obvious when you meet them and work with them for enough time to see.

So the interesting thing is why some people disbelieve their existence. If they haven't met such engineers, that is fine - they should be skeptical until they see evidence. But it is irrational for them to discount the eyewitness evidence of others.

So the really interesting issue here is _why_ some people, like the article, want to deny the existence of such engineers. Are they threatened by them or something along those lines? I'm not sure.

(And of course "10x" is meaningless literally, etc. etc. But programming is a human activity, and we can measure our fellow humans despite how complex we are; for example we can say that some authors of fiction are hugely better than the average, such a thing is not even debatable.)

</comment></comment><comment><USER13> Even if the 10x engineer were to exist, assuming a normal distribution, they would be extremely rare and highly sought after. To optimise your business around hiring such a precious unicorn would seem like a very foolhardy strategy. For one, simple probability suggests that you probably won't find one. And if you were to find one, could you be certain that it were a real unicorn rather than a horse with a plastic cone stuck to its forehead? And even then, what happens to the business you've built around it when your prized unicorn is stolen or passes away?

There are probably no 10x engineers, but I'm quite sure there are 10x teams. Better to focus on growing one of those than chasing a fairy tale.

<comment><USER14> YES. What the 10X myth hurt most is probably hiring practices.

<comment><USER15> The thing that always got me is that even if they do exist, the candidate selection methods are, at best, a very unreliable way to identify them.

Still, it really fed into the "only hire the absolute best" mythos that has spread in countless other harmful ways. Consider the aphorism "A players hire A players, B players hire C players".

The general message of all of it has always been: "You must hire the very best, even one merely good employee will poison the well and ruin everything".

Yet hiring practices are, as I said already, imprecise... which creates all sorts of bizarre behavior in the attempt to snag the "very best".

<comment><USER14> Yes, "only hire the best" hurts everyone. What they should have been doing is hiring more and firing more. At least you'd have a better idea of how well a person does in the context of your environment.

<comment><USER7> i suppose this is what a probation period is.

</comment></comment></comment></comment></comment><comment><USER11> I spent Saturday digging out a basement with my son. The kid was a machine—for sure he did an order of magnitude more than I did. There's your 10x right there. If you can see it with picks, shovels, and a wheelbarrow, it's hardly implausible that you would see it in software.

The research literature on programming productivity sucks, but not because 10x is a myth. It sucks because we have no reliable way of measuring these things.

<comment><USER16> Age, physique, motivation and balancing work with rest had nothing to do with it?

I'm 10x more productive than my dad at physical labor, but a lot of that is because he's 75 and I'm less than half his age. Doesn't mean I'm any kind of physical labor "rockstar"...

<comment><USER11> Of course those things have something to do with it! Who would ever say they didn't?

</comment></comment></comment><comment><USER17> I thing part of the mythology about the 10x engineer stems from the very real and shockingly widespread existence of the NNPP or the "Net Negative Producing Programmer".

There are many environments in which NNPP's are pretty much the standard, programmers that produce more problems and bugs than actual working and sustainable solutions.

In such an environment any competent developer will quickly stand out and will easily be labelled as a "x-times engineer", when all they actually are is just good at their job where others fail miserably.

The 10x myth is a way to give a positive spin on the shockingly common incompetence in our field.

<comment><USER18> I like the way Mike Church put it in a Quora answer ([http://qr.ae/NHgRJ](http://qr.ae/NHgRJ)): employees are either multipliers, adders (most common), subtracters, or dividers (fire immediately). Whether multipliers are 5x or 10x more productive is a matter of nebulous metrics, but there are obvious standouts whose presence brings a very nonlinear increase in value to the team.

<comment><USER19> The four-types classification reminds me of a semi-famous saying by a German general, Kurt von Hammerstein-Equord ([http://en.wikipedia.org/wiki/Kurt_von_Hammerstein- Equord](http://en.wikipedia.org/wiki/Kurt_von_Hammerstein-Equord)):

 _I divide my officers into four groups. There are clever, diligent, stupid, and lazy officers. Usually two characteristics are combined. Some are clever and diligent -- their place is the General Staff. The next lot are stupid and lazy -- they make up 90 percent of every army and are suited to routine duties. Anyone who is both clever and lazy is qualified for the highest leadership duties, because he possesses the intellectual clarity and the composure necessary for difficult decisions. One must beware of anyone who is stupid and diligent -- he must not be entrusted with any responsibility because he will always cause only mischief._

<comment><USER20> And yet if you look at high school students homework load, it seems bent on producing stupid AND diligent people...

</comment></comment></comment></comment><comment><USER21> I remember when my boss told me I was a 'Rockstar' because I stayed up all night finishing a project by an unrealistic deadline he had agreed to for a customer. That was when I knew it was time to quit. Most of this is just ego boosting trumped up by managers or VCs or MBAs to get 'brogrammers' to try to compete to outdo each other with 'dedication' to the company. Sure some people are better then others but if you buy into an idea that you are a 'rockstar' or a 'ninja' or better then '10 other programmers combined', then I'm sorry to say but you're probably really just a 'tool'.

<comment><USER22> You make a strong point. This may be used to get people to work harder for the same (or even less) money. I have met talented programmers/engineers/developers. They had that a natural instinct towards computers. But they were not born as 10X. You can be highly talented, but still not be very good. The thing is, people who are born talented gravitate towards exploiting that talent. In computers, its the guys who are always thinking, talking, and dreaming about systems. The ones who sometimes stay up late because they just have to code. Or the ones who are obsessed over the layout of a PCB.

It is the mix of talent, and dedication that puts some people above others (in terms of skills). Not some myth or anything.

</comment></comment><comment><USER23> I don't know anything about 10x engineers.

I know about 1x engineers, maybe 1.5x engineers.

And I know about 0.1x and 0.5x engineers. They're the engineers who scraped by in college, whose heart isn't in it, who clock in and out each day and just try to stay under the radar. They're good at looking busy and getting nothing done. They make the 1.5x engineers look really good.

<comment><USER24> Exactly. If you're going to talk about 10x engineers, the first question has to be ten times _what_.

</comment></comment><comment><USER25> There are probably a few real "10x developers" out there but the reality is that there are so many lazy and under qualified developers out there that it's not hard for anyone who has put concentrated effort into learning to program to look like one.

<comment><USER26> Yep. I'm hardly a 10x engineer but time and time again people tell me I'm the only one to solve basic questions.

As one person who hired me said: there are an awful lot of people who want to have a fat programmer salary but very few who can tell me what design patterns are good for.

Basically once you get past the recruiters there's very little competent competition.

</comment></comment><comment><USER27> 10x might not be a good description. It is not specified at all what is multiplied by ten. But I'm sure there are engineers that are capable of performing at levels far, far beyond the average.

No one would bat an eye if you point out the huge skill differential between a professional musician or a professional footballer and an amateur. If it could be quantified, Yngwie would be at least 500x better electric guitar player than me and Messi 9.37e8 better at football. I don't think software development skill is all that different. In fact, it would be surprising if the difference between average and elite was only 10x when it is so much larger in other disciplines.

</comment><comment><USER28> I think the free market mostly answers this question. According to indeed.com, the average software engineer salary is $91K. So obviously a company (assuming they could properly identify them) would pay $910K/year to a 10x programmer. Are there people out there making that for pure coding (i.e. not management)? Maybe, but it seems doubtful. I would think that generally 99.9999% of programmers make less than $400K if they're just doing programming (I'm excluding things like options or equity in comp, which is mostly just a lotto ticket anyway). So the market seems to think that even the absolute best are 3x-4x programmers.

<comment><USER29> _So obviously a company (assuming they could properly identify them) would pay $910K /year to a 10x programmer._

The 10x-100x engineers tend to have names like Carmack and Torvalds. So, yes, they tend to get what they're worth, in the end.

<comment><USER7> is Torvalds earning 900k/year? i dont know, but i have doubts that he is.

But using salary is a wrong metric, because a 100x programmer would be founding their own company, and the value they gain is sometimes worth way more than 100x the average salary had they remained a salaried employee.

</comment></comment></comment><comment><USER30> People who don't believe in 10x programmers don't understand that they themselves are probably 3x or 4x programmers, thus to them a 10x programmer is probably only a 2.5x or 3x programmer relatively speaking.

There are a lot of 1x programmers out there. So many that it's very easy to be an "above average" programmer.

I am not a 10x programmer, but I'm not a 1x programmer either. I've met people who are 6-10x programmers, and they are incredibly good at what they do, to an extent that's hard to describe. I think it requires an even balance of skill, pragmatism, experience, and passion that allows someone to have that kind of performance.

<comment><USER31> What about 10.1947x programmers. Or 5.345x programmers?

And, do you average out the productivity, or is that the minimum or maximum? I mean, if you go on vacation, you are a 0x programmer for that time you are gone.

Basically, I think it's a silly thing that's been taken to far. Everyone is a 1x programmer compared to themselves, and a 10x programmer when compared to the right person in the right context.

<comment><USER30> 10.1947x programmers are a myth.

</comment></comment></comment><comment><USER32> If I'm being generous, I'm a slightly above average engineer. Spot me 10X and I'll outperform any engineer on the planet. Do I believe in the 2X engineer? Definitely. 3X? Sure. 5X? Possibly, if their name is Ritchie or Torvalds or the like. But 10X? What I do in a week, they'd only get 4 hours. What I do in a year, they'd get 5 weeks. Doesn't exist.

<comment><USER33> The 10x "mythology" doesn't mean 10x productive as an above-average engineer. It means 10x productive as the least-productive.

So think of somebody who would consider you a 3x. Now the engineer who is 3x relative to you is just about 10x to them.

Now consider the developers with net-zero or net-negative productivity. The 10x rule wildly understates how much more valuable a good engineer is relative to them.

<comment><USER14> Then the mythology is worthless. The focus should then be on eliminating bad engineers, not to go chasing after unicorns. Or even more importantly, figure out why some "10X" become "0X", or vice versa.

<comment><USER34> Yes. Remember this whole thing started over 40 years ago, when management still had the mindset of large teams of factory workers and/or office paper pushers. Some were clearly better than others but for the most part, employees were supposed to be pin-compatible fully interchangeable parts, so the idea that some people could be lagging so far behind the others without management's notice was a new and novel concept. Today, not so much.

</comment></comment></comment></comment><comment><USER35> I always thought of 10x engineer not as one that writes 1000 LoC while others write 100 LoC. Rather, as one that says, at an early stage of development "let's do it this way" and the total amount of manyears spent on the project (including maintenance etc.) happens to be 100 rather than 1000, which would be the case if second best approach is pursued.

<comment><USER36> There's an old programmers joke about this, which I'm not going to try and re- hash in entirety, but basically it's a listing of C++ code that starts off small, then as the programmer gets experience and learns how to do it 'better', the code grows, and grows, and becomes a massive engine of code. Then of course, as the years pass and the engineer gets more experience, the code shrinks and shrinks until it's slightly smaller than the original.

<comment><USER37> It's a hello world: [http://www.ariel.com.au/jokes/The_Evolution_of_a_Programmer....](http://www.ariel.com.au/jokes/The_Evolution_of_a_Programmer.html)

And I digress. Every growing C programmer pass into a stage where he wants to push that Seasoned professional code into the least amount of lines possible. Even if nobody can read the lines.

</comment></comment></comment><comment><USER38> tl;dr: denial of the 10X productivity we all observe in practice in any large group. Implies its not true until an 'official study' says its true, regardless of vast empirical evidence that supports this obvious fact.

<comment><USER39> That's a misleading summary. No one is saying that all engineers are equal.

<comment><USER38> Huh? The article repeatedly calls the 10x assertion 'mythology'. It disingenuously tries to 'debunk' the history of this assertion while blithely ignoring testimony from throughout the industry.

<comment><USER40> Besides, OP challanges the 10x programmer notion on the basis that there are methodological issues in the papers and books, and then goes on to list... a series of tweets.

</comment></comment></comment></comment><comment><USER41> Any article that takes a body of peer reviewed scientific research, points out some procedural problems, and then--without any supporting evidence--claims that their competing perspective is correct is bullshit. Scientific claims demand scientific refutals, not the agglomerated opinions of the twitter- sphere. This is exactly the same tactic used by climate deniers.

</comment><comment><USER42> I have known developers who, given a moderately complex programming task, will complete it within a reasonable amount of time. The code will be correct with no more than the expected bugs, and the design will be OK as a stand alone piece of code.

The design will not be ingenious. It will not take other parts of the system into account. It will not have simple tweaks done in preparation of future design change requests, tweaks that would make the code no more complicated, but many times more flexible. The code will not be as eloquent or as simple as it could be. A slight alteration to the initial design would have greatly simplified the code and ensured against bugs.

Then there is the opposite side of things.

The programmer who understands the greater business needs of the product, and writes code in anticipation of what is to come. Not entirely abstract to the point of ridiculousness, but with proper hooks put in that will be needed later. A software engineer who thinks past the most obvious implementation to what sorts of implications different designs offer. A software engineer who creates eloquent and understandable systems.

Yes one can argue that proper procedure and design reviews can enable the OK developer to reach the level of the Software Engineer, but at what cost to overhead? 2x? 3x? How many meetings, how many discussions?

There is a huge productivity difference between even experienced developers. Denying that is purposeful blindness.

<comment><USER43> YAGNI is a virtue. Make to code loosely coupled so the system can be modified in-place when the time come rather than building features that may not be needed in the future.

</comment></comment><comment><USER44> This probably sounds arrogant, but I am pretty sure I'm a 10x programmer or at least 5x. I don't consider myself all that smart, though, I just seem to have a weird ability to get things done without much hassle. I feel like the 10x guys have a mentality where they're able to break things down without getting bogged down with the complexity of the whole thing. It's not that they're necessarily geniuses at understanding complexity - it's that they're able to break down complexity into simple parts.

Anyway, I kinda feel like just as there are 10x programmers, there are also -10x programmers. I'd say, even -100x. It's crazy how much time one person on the team can actually burn. One -10x person can suck up two 10x programmers' entire day with support and still create an absolute mess that has to be re- written. A piece of code that's solid will just run. A piece of junk can introduce bizarre, intermittent bugs that the team will be fixing for months.

I've noticed that -10x guys have a crazy knack for hiding their errors too. They'll figure out a way to get some botched code past unit tests and QA. Sometimes there appears to be an incredible amount of labor that went into circumventing every obstacle which was designed to prevent shooting themself in the foot!

Anyway, not sure the point of my post. But, I do believe that the 10x guys are out there and they can produce 10x without burning themselves out because they just have a way of looking at things that make them more simple.

</comment><comment><USER45> You can argue with anything if you reduce it to a ridiculously absolutist statement. But the bottom line is that there is a significant gap between the top 1% developer and average "let's see if I can google some code that does that" developer. Is it 10X? Who knows, no sane person can claim to being able to measure that exactly.

</comment><comment><USER46> Have you ever taken compilers, operating systems, or some other project-heavy class? If so I'm pretty sure you've noticed several individuals completing a project with ease while the rest of the class, working in teams, struggles with. You can visit any decent CS program, any semester, and see this happen. It's no myth.

<comment><USER7> It might be a failure of the teacher - some concepts are difficult to grasp for some people due to the way their brains think. Some people think in different shapes, different methods. If the method your brain happens to like is the one that is being taught, then you might do reasonably well, by pure chance. If your brain's method didn't fit with the method being taught, you might not learn so well, and thus struggle.

This is evident even with something as simple as counting numbers - see this video [http://www.youtube.com/watch?feature=player_detailpage&v=UMk...](http://www.youtube.com/watch?feature=player_detailpage&v=UMk963QdShA#t=113) , and that's just the concept of counting.

</comment></comment><comment><USER47> I think it's hard to measure productivity differences, especially in terms of 'x' (times), but it's definitely not constant.

However when it comes to whether they exist or not, here's an anecdote:

I was working for a TV channel and a piece of software needed to be 'actualized' (made over). By the time the other programmers told me the specs, over the office space, and started debating how long many days it should take, I was done (so roughly 1h).

Another point they make is that a group of people can generate compounded productivity. I live the exact opposite. Right now I'm sitting in an office with friendly people, and I roll my thumbs in boredom, but at night I work 1h for select clients and do more than in a week at my day job.

The only problem is loneliness. I hardly ever met anyone who enjoys multiple subjects (maths/physics/software/networks/biology/literature and capital management for me mostly), in fact I mostly receive jealousy disguised as mockery. Heck, I learned not to talk about seemingly arcane languages (Racket, LUA and the like) otherwise I'm cataloged and have to fight ridiculous prejudices. I found the best solution is to appear dumb.

Discrepancy between expectation of programmer productivity and the reality of one programmer can be very deceiving.

</comment><comment><USER48> >It over-focuses on the role of the individual and individual contribution in success, reinforcing Silicon Valley's tendency towards hero worship, elitism and destructive individualism while ignoring the context of situation and privilege.

It correctly focuses on people that get stuff done. End of story. Some people drift and others paddle, simple as that. It is valuable to be able to tell the difference.

>It can provide a cover for destructive and abusive behavior by the "10x engineer"

Whole. Separate. Issue. Being productive has zero to do with being a jerk or not. People might tolerate jerks if they are productive, but that is a value calculation. People also tolerate poor public speaking or being chronically late or any number of other deficiencies for the same reason. If a person creates value they have more leeway, in general. So what?

>It erases many of the essential team and cultural dynamics involved in true productivity.

True productivity? As opposed to what? Productivity is productivity. This post assumes people are too stupid to calculate the long term effects of behavior and its relationship to productivity over time or to the output of the work group.

I think this post is trying to create an argument where none exists.

</comment><comment><USER49> More studies will definitely help. I have a 10X engineer in my larger group and there's no question that he is one. Since I've seen this 'mythical' creature, I would not agree with the piece. Of course memetic transmission of the idea without critical evaluation can be harmful. However, color me paranoid but I see the sentiment behind this as being egalitarian and not meritocratic.

</comment><comment><USER50> I find it sad that this article leaves out the (admittedly unpublished) research on the 10x phenomena, which is described in _Peopleware_. They consistently found 10x differences between experienced programmers on the same task, with the same tools.

I find that particular research important for three reasons.

1\. The 10 fold difference was consistently demonstrated many times.

2\. Their research was conducted with professional programmers, in their workplace.

3\. They were able to estimate the impact of a number of different factors, and they found that the single biggest impacts were workplace factors. (Ambient noise, dedicated office space, availability of white boards, etc.)

Admittedly they are unable to tease out why the connection exists between the workplace and productivity. Do productive programmers choose good workplaces? Or do good workplaces make programmers more productive? Probably a bit of both.

BUT if you're an employer, go read that book. Then consider your office plan. It is a lot easier to pay for a good workplace for an effective small team than to pay for a less effective larger team. Office space is probably not where you want to scrimp.

<comment><USER51> How, exactly, is one supposed to cite unpublished research?

<comment><USER50> The authors of the book were the ones who did the research for their consultancy. But you could easily cite _Peopleware_ itself for the research.

<comment><USER7> tbh, qualitative research like this has no predictive power. It's just a (few) case studies. The variables that are in these case studies cannot be controlled for, nor tested and/or predicted. All it gives is some example anecdotes. Unfortunately, a lot of social science research end up like this, because of the complexity of the problem. Thus, i wouldn't cite peopleware as research, but as anecdotal examples, or case studies.

</comment></comment></comment></comment><comment><USER52> Lets put it other way. Why someone should produce 10x more work, even if she/he could? Salary would be probably only 20% higher. And there is a huge pile of disadvantages (no holidays, extra support...). It is also career limiting move as someone becomes irreplaceable and can not get promoted.

<comment><USER7> > becomes irreplaceable and can not get promoted.

if a company does this, the employee should threaten to quit. Either they end up really quitting (good riddance - its probably a bad place!), or they realize your value, and pay you extra. No need for "promotion" (to another role/job).

I don't get why pay grade is tied to promotion.

</comment></comment><comment><USER53> Let's face it: there's little to nothing that's new under the sun in software. Experience means understanding old but newly recast problems faster, and if you're lucky, solving their higher abstraction level equivalents the next time for greater apparent effect to the lay observer. As widely understood, the essential repetition of the solution act is something that bores good programmers. I frequently explain programming to others as not entirely dissimilar to floor sweeping. Who is the 10x engineer, then? Simple. They hit those areas that are simultaneously the most trafficked and noticeable, but perversely also the most ignored: the office fridge, the corporate atrium, the stained carpet outside the front door under someone else's management.

</comment><comment><USER54> I'd say it's more of a binary distinction. There are people I've worked with who had no notion of their own limits AND had superior ability. Those people would do surprising things as a matter of course, that others might be able to do with time and planning, but most likely would never come up with on their own.

When you find yourself greeted in the morning with things like "Hi, remember we had that chat about how to store timeseries data? I added an arbitrary- precision real type to the database last night and set it up", you are in the presence of one of those people.

(The other thing I've found about these people is that they are usually the opposite of rockstars. They tend to be quiet to the point of zen. Otherwise there are no worthwhile demographic indicators.)

</comment><comment><USER55> I've worked with a ton of programmers over my career and I know some that are truly better than the rest. But I only know one guy that is the 10x guy. He is filled with energy and cranks out good solid code every single day. This is after he bikes 20+ miles to work. And then 20+ home. He is a machine and I've never seen anyone like him since. That's one guy out of hundreds I've met. I tend to think everyone wants to be the 10x guy, but more likely they're just "good" programmers who want to be better. And that's not a terrible thing. Not every pilot needs to be Chuck Yeager, some just have to fly freight around in a way that doesn't get them or someone else killed.

</comment><comment><USER56> I don't think the author is saying that there's no difference between productivity between engineers, it's exactly the opposite, there are so many differences and nuances that it's almost impossible to measure all of them. Your mood, chair, coworkers, boss, temperature, programming language, editor, task, etc. all have some influence over your productivity. You can't say "all things equal" because things are not equal in the real world. That's not to say that performance measure is hopeless but that it's as complicated as weather forecast: you have a huge ammount of variables.

</comment><comment><USER57> Steps to become 10x engineer:

1\. Be one of the first in the project.

2\. Make project messy (for example, by practicing narcissistic design [1]).

3\. Don't do any kind of mentoring for newcomers, don't write any docs.

4\. Be an asshole to kill newcomers' confidence.

5\. When all other founding engineers leave, you will be 10x even by fair metrics.

[1] [https://github.com/stuarthalloway/presentations/wiki/Narciss...](https://github.com/stuarthalloway/presentations/wiki/Narcissistic- Design)

</comment><comment><USER58> John Carmack was 10x.

<comment><USER14> at building video game engines. Do you think he'd be 10X at building CRUD application after CRUD application?

<comment><USER59> Being 10X for a short duration is much easier than maintaining 10X over years. And also, are these people successful in terms of personal fitness and health? Is their home clean? Do they have good relationships with their family and friends? Do they spend time socializing, or do they spend all their time working? If being 10X is true, why haven't they figured out how to get rich yet?

<comment><USER58> If you're 10x, I don't think you're thinking about making money.

<comment><USER59> I agree. The conscious focus of most 10X people is probably on specific programming problems, rather than higher up things such as making money.

</comment></comment></comment></comment></comment><comment><USER60> It seems like Medium has become a magnet for articles that reference some science and then go on to draw conclusions that simply do not follow from that science, yet present the conclusions as if they do. The hollow icon article is another good example: [https://medium.com/design- ux/a93647e5a44b](https://medium.com/design-ux/a93647e5a44b).

</comment><comment><USER61> Steve McConnell makes some good points regarding 10x SW engineers in "10x Productivity Myths: Where's the 10x Difference in Compensation?" [http://www.construx.com/10x_Software_Development/10x_Product...](http://www.construx.com/10x_Software_Development/10x_Productivity_Myths__Where%E2%80%99s_the_10x_Difference_in_Compensation_/)

</comment><comment><USER62> I think the main problem with this concept is that everyone fits into two categories.

As with any probability distribution of natural phenomena, there is a bell curve. There aren't a handle of 10x programmers and and bunch of 1x ones.

Even if the variance is much lower than people think, there would still be room for some number of 10x the productivity of some other person.

</comment><comment><USER63> The thinking that gave rise to this article is a mess. It's not a hypothesis, but a FACT that someone can be 10x productive than other person.

You were likely once 10x less productive than you are now when you first touched a new language.

Citing a number of reasons why someone may want to create this myth, does not make it a myth. Pretty ridiculous.

</comment><comment><USER64> What are the units we are talking about here? Is productivity measured in hours and if so hours of what?

<comment><USER65> I believe that was one of the points of the article. "10x Engineer" is being thrown around as another euphemism for "Rockstar" or "Ninja" without any true meaning.

</comment></comment><comment><USER66> For a given task, at a given time, there are for sure engineers that are 10x, or even 100x, compared to some other engineers. But that doesn't make them absolute "10x engineers", it's always relative to the task and the other engineers.

</comment><comment><USER67> Do you believe chess Grand Masters exist? They're blind to invalid moves, they don't even see strategically penalizing moves.

"10x engineer" sounds like a requirement a recruiter would put in a boring corporate job summary. Meh.

</comment><comment><USER68> It's strange that she criticizes the research basis for the 10x claim, and yet she's basing her claims about burnout and even alcoholism and drugs on a couple of tweets she received? What happened to source criticism?

</comment><comment><USER69> You need a 10x environment to be a 10x engineer. Any 10x engineer can be held back by months or years of legacy and bad code cleanup to start getting to his 10x productivity level.

</comment><comment><USER70> Of all the engineers you've worked with, if you can think of eleven such that you'd rather hire one rather than the other ten, then that person is a 10x engineer.

</comment><comment><USER71> Does this even need scientific validation? There seem to be people who can't code at all, so if you can code, compared to them you are an infinity times engineer.

</comment><comment><USER72> A 10x engineer is not an engineer who works 10x as hard or fast, but someone who knows what to focus on and as result comes up with more elegant solutions.

<comment><USER73> Then why the magic number 10?

</comment></comment><comment><USER74> I work with a '10x engineer'. He works from 8 AM to 11 PM, like clockwork, every weekday. He is great to work with but I do not envy him.

</comment><comment><USER75> "Talent hits a target no one else can hit; Genius hits a target no one else can see." \-- Arthur Schopenhauer

Enough said.

</comment><comment><USER76> Off topic, I think its nice to see a pretty girl in the industry. Just saying.

<comment><USER77> The writer's appearance has nothing to do with this conversation. Also, given the amount of writing this particular writer has done on the topic of sexism in the industry, I'm going to assume this is some straight up attempt at trolling/derailing. Next time you feel the urge to "just say" something like this, maybe don't bother.

</comment></comment><comment><USER78> Too many words. Very few points.

</comment><comment><USER79> Ah, but 0.1x engineers do exist.

</comment><comment><USER80> My biggest problem with 10x is that it commonly misunderstood. The mythical man month (MMM) book explained, an average developer is 3x the worst. the best is 3x an average. So the dynamic range is 9x, but it isn't a math so who cares. And if you are an normal developer with a friend who 3x faster, it is a career guy in a company you would not touch with a long stick, that makes you average and your friend 10xer. This misunderstanding makes people say 10xers are rare. They are not. People who are 10x better than you are rare.

I am not that person. I am an average guy. I meet devs 3x my inferior, and 3x my superior. So I do think 10x range that MMM talks about is possible.

My second problem with the article is unit of measurement question. It is very clear what it is. A time to completion of a well defined task by an individual developer, with predetermined level of quality of the result. The problem is in the measurement. To measure you have to waste resources giving same task to many. And quality measurements are imprecise. MMM book was all about the time to completion. Obviously nobody counts lines of code. Why even bringing it up?

While I think 9x range is possible, I have never seen it in real life medium size teams. (I am a short term projects freelancer, so I see two companies a year over last 18 years) The reason being, my theory goes, a contextual one. Start-ups ship buggy code fast. A fab automation company might test a released code for a year before shipping. I believe it isn't the issue of A players hiring A players and B players hiring C players. It's just the goals differ. I was faster than most at a certain client of mine, but my code was less reliable. That was fine for a specific task I was hired for, but not for most what they do.

My third problem is that the article tries to fight the notion of importance of hiring 10xers. In many cases individual performance meters less. Imperfectly studied as it might be, 10x performance measurability beats other metrics of what makes a good developer, and a good employee. How do you measure ability to communicate, motivational power, leadership, and plain good taste? So for established companies 10x hiring is not as critical. And yet, I can clearly see why start-ups are focused on 10xers (ninjas etc). In start-ups individual devs have more autonomy, by design. Winner-takes-most aspect requires short time to market. Delivery times matter much more then quality. That being the case, hiring an obnoxious jerk who codes like hell makes clear if perhaps a temporary benefit.

So if you agree that for a startup time to market is a key, and individual developer relative importance is high, a logical conclusion is makes sense to search for (and overpay) the best. Just like it makes sense to fire 10xers once startup gets traction and replace with normally paid, normally performing guys that function great as a team.

</comment><comment><USER59> What's the point of being a 10X engineer somewhere, if you don't own the IP? It sounds like a way to make someone else rich off your hard work.

<comment><USER81> Consultants often make more than IP owners. Owning the IP and leveraging it is only one viable business model.</comment></comment>


14 Year Old Call of Duty Hacker Hired by Microsoft - <AUTHOR> http://www.tekgoblin.com/2011/05/27/14-year-old-call-of-duty-hacker-hired-by-microsoft/

<comment><USER2> A friend of mine from high school bragged that he achieved some measure of infamy in middle school by hacking Diablo in such a manner that it was possible to duplicate items. He then claimed Blizzard offered him an internship -- again, in high school -- for showing them how he did it. I knew about the incident (oh, the wages of a misspent youth -- Diablo, not hacking), but always figured he was embellishing most of it.

Some years later, sure enough, guess who was in the Diablo II credits.

</comment><comment><USER3> Maybe it's a double bluff thing, like when Valve caught the Half Life leaker: [http://www.eurogamer.net/articles/2011-02-21-the-boy-who- sto...](http://www.eurogamer.net/articles/2011-02-21-the-boy-who-stole-half- life-2-article)

<comment><USER4> I actually thought this article was significantly better than the parent article, and is definitely worth a read.

</comment></comment><comment><USER5> I don't see anything in that statement equivalent to "hired". Is there another source that indicates this?

<comment><USER6> I agree, it sounds as though they are "reeducating" him into a white hat and not necessarily hiring him on as a employee. It would surprise me if they actually hired him right now because he had set up a phishing scam. It is good though that they are working with him vs throwing the book at him especially for one so young.

</comment></comment><comment><USER7> Hired a phisher? Thought they were hiring someone who was making wallhacks or aimbots or anything like that. That would've made much more sense. Put a guy like that into security!

</comment><comment><USER8> I'm not surprised this has happened but I wouldn't expect this from Microsoft nor with a person who has defrauded others after hacking a system.

</comment><comment><USER9> Huh, I should be happy for Microsoft hiring a practiced phisher. Sounds like a good advancement for them.</comment>


India set to debut GSLV Mk.III launch vehicle with prototype crew capsule - <AUTHOR> http://www.nasaspaceflight.com/2014/12/india-gslv-mk-iii-prototype-crew-capsule/

<comment><AUTHOR> LVM3 experimental mission was a success! The launch vehicle performed flawlessly, and the crew module payload re-entered atmosphere and splashed down in Indian ocean.

LVM3 (also called as GSLV Mk3) is the next-generation heavy lift launch vehicle developed by Indian space agency ISRO. It's a three stage vehicle - <USER2> solid boosters in first stage, dual-engine liquid motor in second stage and a cryogenic upper stage[1].

Today's flight was an experimental sub-orbital mission (LVM3-X) to quality its atmospheric flight regime. LVM3-X didn't had the upper cryogenic stage.

LVM3-X also carried a Crew Module[2] weighing 3.7 ton as its payload. ISRO tested crew module atmoshperic re-entry, guidance systems, parachutes and splashdown in this mission.

[1] [http://en.wikipedia.org/wiki/Geosynchronous_Satellite_Launch...](http://en.wikipedia.org/wiki/Geosynchronous_Satellite_Launch_Vehicle_Mk_III)

[2] [http://en.wikipedia.org/wiki/ISRO_Orbital_Vehicle](http://en.wikipedia.org/wiki/ISRO_Orbital_Vehicle)

LVM3-X info: [http://isro.org/gslv-mkiii-x/gslv-mk- iii-x.aspx](http://isro.org/gslv-mkiii-x/gslv-mk-iii-x.aspx)

Crew Module info: [http://isro.org/gslv- mkiii-x/care.aspx](http://isro.org/gslv-mkiii-x/care.aspx)

LVM3-X mission page: [http://isro.org/gslv- mkiii-x/mission.aspx](http://isro.org/gslv-mkiii-x/mission.aspx)

</comment><comment><AUTHOR> Brochure: [http://isro.org/gslv-mkiii-x/pdf/GSLV-MK-III-X- brochure.pdf](http://isro.org/gslv-mkiii-x/pdf/GSLV-MK-III-X-brochure.pdf)

Live telecast: [https://www.youtube.com/watch?v=rBIcP7V8MKo](https://www.youtube.com/watch?v=rBIcP7V8MKo) and [http://webcast.isro.gov.in/](http://webcast.isro.gov.in/)</comment>


The FuqIt Web Framework - <AUTHOR> https://github.com/zedshaw/fuqit <comment><USER2> Well must be a slow news day today so I'll say a few things about FuqIt for the high-minded HN crowd:

1\. Don't run this at all in anyway that someone can access it. It's ultra hackable. Extra points if people can point out why.

2\. I basically am just goofing off. The idea though is this thought: "What if PHP got it right?"

3\. There's some little tricks in there you may not have seen before. Take a look at the code if you're new to Python.

4\. If I get around to it I may write a web server for this using my various web-server-maker chops and put in some of the Lamson code and then make it talk to ZeroMQ off of a URL similar to how it's doing jinja and python so it can be a full service web+email+messaging system configured off just files in a directory and then probably I'll get bored and do something else.

Enjoy!

<comment><USER3> Hey Zed that's pretty cool.

I think this was submitted with a back-thought of possibly generating ridicule. It doesn't matter, anyone coding and playing with shit like this gets upvotes from me.

I also like web.py (the framework conceived and built by Aaron Swartz) for some of the same reasons -- simplicity and cleanliness. Start with something like "let's see how would a clean and simple web framework look like in Python." That's beautiful I think. Yeah I know it hasn't exactly taken off and flask and friends surpassed it but I still like it.

EDIT: corrected Aaraon Swartz's name (thanks bensw)

<comment><USER4> >That's beautiful I think. Yeah I know it hasn't exactly taken off and flask and friends surpassed it but I still like it.

That reason it still hasn't taken off is that Aaron is very like Zed; they are grasshoppers. They get bored easily from doing something.

<comment><USER5> :s/is/was/

:(

</comment></comment></comment></comment><comment><USER2> Thanks everybody, you made this joke possible:

[https://github.com/zedshaw/fuqit#investor- statement](https://github.com/zedshaw/fuqit#investor-statement)

</comment><comment><USER6> There's a niche for something that's as sloppy-easy-to-get-started as PHP, but with a more concise/consistent/powerful language. Perhaps, a "PYP" \- Python with PHP characteristics.

This is a little like that.

<comment><USER7> I feel like [http://aspen.io/](http://aspen.io/) sort of does something like this already. Written in Python and just uses the filesystem to generate content rather than a MVC.

<comment><USER8> Yes, I really feel like aspen is exactly this, and very well done too. Already has real-world things running on it, like [http://gittip.com](http://gittip.com) .

</comment></comment></comment><comment><USER5> Excuse my French, but... if this hadn't been written by an internet celeb, nobody would have given two shits about it.

<comment><USER2> Pretty much.

Oh, except, there's actually an interesting idea in there if you look really closely.

<comment><USER9> Isn't the interesting idea basically CGI?

<comment><USER2> If you can abstract everything to be anything then nothing has meaning.

<comment><USER10> Lovely bit o' philosophy there. _no sarcasm_

</comment></comment></comment></comment></comment><comment><USER11> Just wanted to say a special mention to the knife_or_banana method:

        def do_GET(self):
                try:
                    self.knife_or_banana(self.path)
              [...]

        def knife_or_banana(self, path):
                # THIS AIN'T THAT SECURE, BUT FUQIT
                 root, ext = os.path.splitext(path)

              [...]

</comment><comment><USER12> Out of my own boredom, fuqit in node.js:

[https://github.com/ricardobeat/fuqit](https://github.com/ricardobeat/fuqit)

<comment><USER2> Nice. Here's a present for you [https://github.com/ricardobeat/fuqit/issues/1](https://github.com/ricardobeat/fuqit/issues/1)

</comment></comment><comment><USER13> This has too much functionality. Sometimes I just want to statically serve all the files in a directory and its subdirectories.

        cd not_my_porn_folder
        python -m SimpleHTTPServer

</comment><comment><USER14> Brilliant. I am supercharging it with dilithium crystals and replacing all my production Django sites right this second.

<comment><USER2> Let me know where they are so I can steal your password files with my uber secure file resolution code.

<comment><USER14> They are actually inside the NSA ring 0, vacuum isolated, prisming zetabytes of privates emails and facebook lolkatz.

</comment></comment></comment><comment><USER15> > FuqIt is Copyright (C) Zed A. Shaw _All Rights Reserved_.

[emphasis mine]

That's an interesting approach. I take that Zed doesn't want this to be actually used anywhere?

<comment><USER16> Good catch. Without an explicit license grant forking the repo is technically copyright infringement.

<comment><USER17> And a violation of Github's ToS.

(Interesting reading: [http://cr.yp.to/softwarelaw.html](http://cr.yp.to/softwarelaw.html))

</comment></comment></comment><comment><USER18> [https://github.com/zedshaw/fuqit/blob/master/app/files/index...](https://github.com/zedshaw/fuqit/blob/master/app/files/index.py)

      return "I Am KING!"

[https://github.com/zedshaw/fuqit/blob/master/app/files/test....](https://github.com/zedshaw/fuqit/blob/master/app/files/test.html)

      I am a test Jinja!

So, which one is it?

<comment><USER2> Maybe I'm King of The Jinjas!

<comment> T-R King of the shrines?

<comment><USER19> Gotta start somewhere.

</comment></comment></comment></comment><comment><USER20> Why is this front page? Because he is a celebrity? If Python is the drug of choice, Flask. K? Thx, now get off my news feed.

</comment><comment><USER21> how the fuck is this the top link on HN right now?

<comment><USER2> It's almost like I'm famous and people are interested in what I do!

<comment><USER22> I've never heard of you, but I liked the idea behind a PHP replacement.

<comment><USER14> In my experience with a new PHP developers, the first hurdle is explaining that urls have nothing to do with the filesystem.

<comment><USER22> (I don't do PHP) I had the same issue starting with using web APIs in java.

It's understandable though as the early web was essentially serving a filesystem directly (almost ftp).

</comment></comment></comment></comment></comment><comment><USER23> This is one of those things that becomes immediately "obvious" the moment I see it... but I'd never have thought of.

If we could decrease the amount of understanding required (possibly a bad thing) to get python running on the server it would be great.

Why can't I just go "python app.py -port 80" and call it a day? What would we need to get to that point?

<comment><USER24> _What would we need to get to that point?_

To be using PHP.

(runs away)

</comment></comment><comment><USER25> Would fans of FuqIt be "Fuqers"?

<comment><USER26> Yes.

</comment></comment><comment><USER27> Good use of lens flare.

</comment><comment><USER28> I was intrigued by the reference to Meteor and after a bit of googling "oh yeah okay, those guys who did an unsecure NodeJS realtime framework (last time I used it, every client could call the mongodb database) just got 11M in funding".

When did our jobs become such a joke?

<comment><USER29> There's a package called 'insecure' that is included by default to get the app up and running as quickly as possible. To remove, just do $ meteor remove insecure

Hope this helps!

P.S. docs.meteor.com is very helpful -- I highly recommend reading it. Also, DiscoverMeteor.com is a great textbook that will cover this material.

</comment></comment><comment><USER30> The first version now is minimalistic. But to be a second Ruby on Rails framework, your system will get more complicated soon. Good luck.

<comment><USER2> You obviously know nothing of my work.

<comment><USER31> Didn't you know, any sufficiently complicated Python framework contains an ad hoc, informally-specified, bug-ridden, slow implementation of half of Ruby on Rails.

</comment></comment></comment><comment><USER32> Anything by Zed Shaw is interesting. One of the real software engineers. Or should I say "Programmers, Motherf..."

</comment><comment><USER33> Juvenile. If this had any other name or was written by anyone else, no one would give a fuq.

</comment><comment><USER34> That is a terrible name for a framework, you should have called it 'shdvg'.

</comment><comment><USER35> Oh Zed.

</comment><comment><USER36> That mascot is fucking awesome.

</comment><comment><USER37> Hi Zed,

you nailed the name just right, but a single look at the mascot made me blind for an hour.

And it's already ported to NodeJS, congrats!</comment>


Ask HN: Have you seen any cool / innovative uses of git and/or github? - <AUTHOR>

I'm doing a presentation on Monday about git and github. I wanted to finish with a roundup of interesting uses for both.
One example would be that I saw someone using Github as their blog.
Any others? <comment><USER3> <https://github.com/github/gollum> \- The git-backed wiki that powers GitHub Wikis.

<https://github.com/technoweenie/madrox> \- Distributed Twitter implementation in Git.

<https://github.com/schacon/ticgit> \- Git-based distributed ticketing system.

<https://github.com/progit/progit> \- Pro Git book using GitHub to facilitate translations into 25 languages.

<http://code.google.com/p/gource/> \- Visualize the activity on a git repo (OpenGL).

</comment><comment><USER4> git-annex

<http://kitenet.net/~joey/blog/entry/databranches/> "databranches: using git as a database"

<http://git-annex.branchable.com/> "git-annex is a git subcommand that allows tracking large files in git -- without the bother of feeding their contents into the git repository!"

<comment><USER5> Joey Hess keeps his home directory in git, if I recall correctly.

</comment></comment><comment><USER6> bup is a backup system by Avery Pennarun (apenwarr). It is "the awesome" - <USER2> is fast, de-duplicating, awesome, and yet a regular git repository.

sparkleshare is a dropbox-like system that uses git as a back end (Mac OSX and Linux only for now)

</comment><comment><USER7> <http://github-high-scores.heroku.com> \- a fun way to rank Github repository contributors in a 8-bit, arcadey, 80's-tastic viewing environment.

</comment><comment><USER8> flashbake is version control for writers based off git. It checks specified directories every 15 minutes for changes

</comment><comment><USER9> what you saw was probably github pages, it's not really innovative, it's actually built into the site</comment>


The Discipline of Chaos Engineering - <AUTHOR> https://blog.gremlininc.com/the-discipline-of-chaos-engineering-e39d2383c459 <comment><USER2> >Kolton is co-founder and CEO of Gremlin Inc. Previously he was a Chaos Engineer at Netflix improving streaming reliability and operating the Edge services.

Right - this makes sense. I thought this philosophy sounded Netflix-ish. Interesting to see it "spun out" into a product.

</comment><comment><USER3> Watching this kind of complex distributed system in the throws of random failure every day at work, I wish we actually did this instead of just reacting to one nightmare after another.

</comment><comment><USER4> >>> Chaos Engineering is the discipline of experimenting on a distributed system in order to build confidence in the system's capability to withstand turbulent conditions in production.

I don't like how they define "Chaos Engineering" as being strictly related to distributed systems.

<comment><USER5> Chaos Engineering seems most useful in the context of distributed systems though, and I'm not entirely certain how you would implement it outside of that context.

I would consider applying invalid inputs, etc. to non-distributed systems to be more along the lines of traditional testing. Perhaps you could implement chaos engineering principles in a non-distributed system by simulating the failure of a CPU core or a region of memory? It seems less useful though, as those things seem very difficult to effectively recover from.

How would you define "chaos engineering" to apply to non-distributed systems?

<comment><USER4> > Perhaps you could implement chaos engineering principles in a non- > distributed system by simulating the failure of a CPU core or a region of > memory?

Could be. In a general sense of chaos engineering.

For me, I think chaos engineering would be to keep generating "chaos" in a system or module or any unit. Chaos in this sense would be to break it, or any kind of maltreatment to it.

</comment></comment></comment><comment><USER6> I'm curious though. What does one do if the database goes away? Also, how does one achieve high availability without doubling costs? Is this covered anywhere as a topic area or book or dedicated blog? Quite curious how to get started with something like this.

<comment><USER7> you're increasing costs, but you're insuring against the lost profits from your site being down as well as reduced consumer trust. there are ways to keep the cost multiplier down (running many smaller instances vs a single large instance, using containers and running mulitenant machines), but when you start thinking about all layers you want to add redundancy (load balancing, application, database, storage, etc.) you're going to be spending quite a bit of additional money for that insurance. which is why there are good arguments that not every application needs to build in these kinds of redundancy.

For your specific question about databases, you generally have clustering to reduce the impact of any one database instance going down, caching of data to guard against temporary db outages/network issues, and sharding of data across multiple databases to reduce the blast radius of any one logical database going away entirely.

</comment></comment><comment><USER8> Isn't this basically what Google has been doing for years with their DiRT exercises?

<comment><USER7> 1\. Netflix has been doing "chaos engineering" for years (earliest public reference I can find is 2011), especially w.r.t. to public cloud.

2\. Netflix has done a great job at publicizing their efforts and open sourcing software that helps you do this kind of testing in a continuous, automated fashion.

So I think the "basically what google has been doing" comment is reductive.</comment></comment>


Show HN: Launch your own dollarshaveclub in 7 days - <AUTHOR> http://www.jointhebox.com <comment><USER2> I really wonder how many subscription box businesses really make any money.

While the model as a whole is valid, the way it has been glommed onto by the folks selling shovels to gold miners definitely makes it feel reminiscent of other big fads that have hit the "internet marketing/entrepreneur" circles which are filled with people looking for "get rich quick" schemes.

Not knocking a service business that is doing template design, but can't shake the feeling that the only ones making money are the ones selling the services to the box sellers.

<comment><AUTHOR> not true i know someone making 250 k a month with a subscription box service lootcrate is a perfect example by leveraging social media you can make tons of money

</comment></comment><comment><USER3> I love the idea.

Few feedback points.

1\. The examples are too small, I would expect to see a bigger image on click.

2\. It's really unclear what's the level of control I get for my website if I but it from you. Do you host it? Do I? Can I change the code?

3\. You go out of business tomorrow (god forbid), is my business dead because of that?

Some of these questions are critical for me as someone who's looking into doing something like that.

I would make the homepage answer some of these.

Good luck with your business, Kudos for jumping in!

<comment><AUTHOR> Hey thank you and your more than welcome to come to us when your ready ! No er don't host the site we simply create it with a backend that lets you customize it change text images ;)

<comment><USER3> Even from your response, this is still unclear.

You say you don't host it. This means I get the full source code open and ready for me to make changes? (not only image changes, I can change the code to do anything I want basically)

You don't talk about the credit card processing, about the client processing.

There are a lot of questions that are left open.

I am a potential customer, my wife and I have been planning something like this for a few months now, the price is right but there are a lot of questions your site just leaves open.

This is bad for you in terms of conversion from hit to client, I would suggest you fix those.</comment></comment></comment>


Why It's So Hard to Learn Another Language After Childhood - <AUTHOR> http://time.com/5261446/language-critical-period-age/ <comment><USER2> The whole article hinges on an empty premise: "Possible explanations could include changes in brain plasticity, lifestyle changes related to entering the workforce or college or an unwillingness to learn new things — potentially while looking foolish in the process — that mounts with age."

I would argue (as a European) having learned 7 languages over the years (only 2-3 to any practical level, but including Greek and Latin as a firm foundation) only time matters. Invest the time and you can go to a pretty decent level in any language. Some are harder than others, fluency takes periods of continuous exposure, but it's all a function of time spent. Kids not only have time and emerse themselves by nature in their first language, but are obliged via social structures to practice (schools even come with punishment you know). The rest might give you some hindrance at 20+ but nowhere near the effect of don't spending the hours reading and talking.

</comment><comment><USER3> To be honest I don't really think it is that hard.

For children it is a question about survival. They practice every time they open their mouth and try to communicate. 24 hours a day 7 days a week. If you did this for 6 months with lets say Chinese, I am sure you would pick it up very fast.

Adults have an advantage over children, I would even say. They already speak one language and have reference points already.

<comment><USER4> Agreed. It takes children about 7 years of intense exposure and practice to become fluent in their native language, and many more years to become really eloquent and quick-witted. Any adult who invests 7 years into intense exposure and practice can reach a pretty good level; there are aspects that are more difficult for them (accent!) but they also have the advantage of being able to read, take classes, ask specific questions about the language, etc.

</comment></comment><comment><USER5> When I was a kid I learned english by watching cartoons and movies with subtitles, in Portugal we have subtitles in pretty much everything except comercials.

As I grew up it was easy to learn a few words in other languages due to watching movies. This is extremely easy and I can see why other european cultures don't speak other languages more easily, all is translated to their native language so they don't have that correlation on what is being said with the meaning....

</comment><comment><USER6> A personal experience: when I have to remember or tell numbers in English, they always come into my mind first as Chinese, making it harder to use numbers in English.

When I just started living in England, every time I have to tell someone my phone number, it was either a translation from my mental number in Chinese into English, or, a deliberate suppression of my instinct to speak or use Chinese while saying it in English.

On the other hand, if it's something without any obvious Chinese equivalent, it comes very naturally in English. For example, Marmite.

<comment><USER7> It's still the same for me with numbers, any numbers always just come up in French even if I'm speaking another language.

The first time I had to give a Canadian phone number in English, I just tried to translate it and I had no idea how people could say numbers like "five hundred and fourteen, two hundred fifty-seven, two thousands four hundred and fifty-five". It flows quite well in French. Well, the guy at the other end stopped me and told me that in English they don't bother and just say the numbers one by one.

<comment><USER8> French numbers come naturally to me, up to 69, then my brain slows down. Like for any foreign speaker, I assume.

For those who don't know French, 70 is "sixty ten" all the way to "sixty nineteen" at 79, then from 80 to 99 "four twenties" to "four twenties nineteen".

Another effect is that my French phone number comes out naturally in French, same for all the phone numbers of all the countries I've had a phone in.

<comment><USER7> You could use the Belgian and Swiss way to say 70 and 90: _septante_ and _nonante_. They work just like the other _-ante_ numbers, 79 is just _septante-neuf_ , 99 _nonante-neuf_. It's a bit weird at first for French people, but easy to understand and much easier for you to use.

80 is _huitante_ in some places in Switzerland, it's much less common (and many people expect "octante" instead, which is even less common) but people would still understand.

<comment><USER9> Producing the numbers is the easier part. Not losing the thread of the conversation when someone else tells you something about sixty-thirteen is the hard part.

</comment></comment></comment></comment></comment><comment><USER10> I have a little experience in this area. I would sum up the reasons as:

1\. Children put in more time. An adult who puts in an hour a day of study is studying hardcore, but a child will play with people or watch cartoons in a new language for hours and hours. When it comes to your native language you basically don't have a choice to use it for 12+ hours a day.

2\. Most adults aren't used to learning new things. Children are learning new things all the time, it's their bread and butter. Adults often haven't learnt anything new since university age. Being a poor communicator in a new language is often very demotivating.

3\. Adults can't shut off their native language. They're so used to speaking and thinking using their native language everyday that when it comes to a second language they can't shut it off. I find people who are good at suppressing their native language attain a far better level in the long run. Their are certain signs that someone is good at doing this, usually you can tell after a few meetings with them.

</comment><comment><USER11> The article completely skips over the fact that adults just don't have enough time. Children don't have to raise children, go get their car fixed, mow the lawn. They are bombarded with native language at home, at school, while playing with friends. They could not not learn the language even if they wanted to. Whereas for adults, they are not bombarded with the language unless they move countries to be in an immersive environment. In a non-immersive environment you need to dedicate time to learn the language which is a fraction of the time children are exposed to while learning mother tongue.

</comment><comment><USER12> I learned 4 after childhood. It takes pure practice and humble(to make many mistakes) and open(to practice) personality.

But I have never ever managed to learn a programming language well. So instead I became an economist and social scientist.

<comment><USER13> I'll tell you a secret. You don't have to know any of them well. You just need to be able to do a days good work (or heck, a quarter of a day) and you'll be ahead of most of your competition. I am sure this goes for most white collar work.

</comment></comment><comment><USER14> Why does so many sites implement GDPR with opt-out of tracking when the law explicitly states it has to be opt-in?

</comment><comment><USER15> A lot of what we thought we knew about neuroplasticity and age has proven to be wrong. If it plays any factor at all, it appears to be secondary. This is good news for people of any age. Neuroplasticity decline cannot be controlled. Other factors can be.

</comment><comment><USER16> Coursera course "The Bilingual Brain"

[https://www.coursera.org/learn/bilingual](https://www.coursera.org/learn/bilingual)

> _This course explores the brain bases of bilingualism by discussing > literature relevant to differences in age of initial learning, proficiency, > and control in the nonverbal, single language and dual-language literature. > Participants will learn about the latest research related to how humans > learn one or two languages and other cognitive skills._

I took it and it is in line with my personal experience (German native, English and Russian second, a tiny - and by now mostly forgotten - bit of French, Arabic).

The TL;DR of the science according to that course: No it is not more difficult. The only thing that is different is the very basics of how you form and recognize sounds in their most basic form. You learn those in very early childhood. Late learners will use different areas of the brain, partially, but they won't be worse, except they'll have an accent especially if the sounds in the new language are very different from the ones you are used to.

How long does it take you to learn your native tongue? It's years for the basics, well over a decade to become proficient. What makes it seem like less of an effort may be that you don't have an choice when you are 3 years old about what else to do with your time. You MUST learn the language.

By now, English is just like my native language to me as far as listening is concerned. If I have to speak it gets a little bit more exhausting compared to my mother tongue if I have to do it for long stretches. I never, ever have to reach for the German word first, except when I really don't know the word in English: For example, there are sooo many special words about craftsmanship staff or machinery that I learned because I did a lot of that stuff as a child, but as an adult I only ever needed "daily life English" and "IT English", so overall I still know a lot more words in German simply because I never need(ed) them in my English-language life.

In Russian I feel completely at home and comfortably "understand" each and every word even when it's spoken very quickly - but I have no idea what they say. I understand the words on the "sounds" level, and I also have a feeling for the grammar, but since I rarely ever actually used the language my internal dictionary doesn't have nearly enough words for a useful conversation. However, I found/find it interesting, this dichotomy, that on the one hand I feel completely at home with that language on a very low level (sounds and grammar), and yet I cannot actually do anything with it because on a higher level the words and their meanings are missing.

I stopped being interested in learning more languages when I realized that I'm plenty busy just perfecting my knowledge of English, the one language I actually use. When I was proficient reading Stephen King novels and daily papers I picked up "The Lord of the Rings" and for the first 50 pages or so I had to consult a dictionary about ten times per page. Same when I read The Economist instead of daily newspapers, so many new words.

I found that I was no longer interested in small talk, something you can do after a relatively short time of learning a language, I was interested in deep(er) conversations, but learning enough of a language for that kind of conversation takes much longer. But how many deep conversations could you have in your native tongue at the age of ten? Okay, maturity also factors in, but overall I see no basis for a claim that learning languages becomes harder per se. As an aggregate effect, sure, I just pointed to a few reasons myself after all.</comment>