HNHacker News
TopNewBestAskShowJobs

nsfyn55

62 karma · joined July 6, 2012

submissionscomments
nsfyn55··on Protected branches and required status checks
same deal. If your history can't be reasonably stacked on what exists it'll stop you and give you a warning. Only by `git push -f ` can you force it to happen. With that said I work with a lot of folks that only have a passing understanding of git internals. With that in mind I'm I'll sleep better at night knowing that my precious master branch won't be subject to any late night Stack Overflow spelunking disasters.
nsfyn55··on What I learned from losing my Facebook internship
What was predictable about it? The author didn't do anything illegal or unethical. So he violated the ToS. I violate ToS's probably daily and I think most people would agree they have become a cultural joke.

If anything I'd think the appropriate response would be sitting him down and saying "look we appreciate you are an enterprising risk-taker but we have certain expectations here at mega-corp" Once he was a sufficiently brow-beaten corporate drone then they could have pile monotonous work in him/her ad infinitum. Win Win in my mind.

nsfyn55··on My Amazon Burnout Experience
How exactly have I treated this as a binary answer?

>Why are you ignoring everything else that has come up about amazon's culture?

I've read the articles, but its important to remember that if you've had a bad experience you are 10 times more likely to be vocal about it(that shit is some straight science - http://www.nytimes.com/2012/03/24/your-money/why-people-reme...).

> guess his job description should have been: "do what your manager says" ?

I'm not a scientist but I am pretty sure that is the definition of a job.

Having been both an engineer and a manager and an engineer again I can honestly say my smoothest projects were composed of folks that were great followers. They understood when they needed to take initiative and when they needed to follow instructions to the letter. When intentionally adding a leak to the abstraction was necessary to get something out the door and when their code needed to be bullet proof.

Alpha programmers are different animals. If they are truly an Alpha programmer then I use them like a flamethrower loosely directing them at tough, solo/small team problems. But I've encountered my share of C/D players that labored under the delusion they were an Alpha programmer. These folks lashed out, constantly questioned my judgement, and eroded the team's cohesion. Somehow they managed to do this while also not being capable or qualified to tackle my big picture problems. I afforded them every opportunity to be successful, but in several cases they were just too smart for me I guess so I had to set them free. This article sounds like a my many meetings with the latter.

As for advocating being a sheep. Some things are bigger than one person. Is the defensive end on a football team a sheep for following the play the QB/Offensive coordinator has chosen? He may not be put in the best place to make a tackle or a sack(very prestigious stats) because his role might be more subtle than that (containing the quarterback). This is what you do when you are part of a team. Why are you advocating going rogue?

nsfyn55··on My Amazon Burnout Experience
Don't bother. At first you look at your inbox and think "Amazon? me really?" I responded only to find out this was a mass spam campaign. They found me via LinkedIn, said "Our senior management as indicated your experience is exactly what we are looking to hire", then proceeded to ask me what my experience was. Hashtag this company has become a joke.
nsfyn55··on My Amazon Burnout Experience
What if merit isn't defined by "technical competence" but the "ability to deliver results in a defined context" and by "results" we are talking about "what the company(e.g. managers) defines as results".

So often engineers and quants take it on themselves to define "results" but is that fair? As an engineer these are lessons hard won over my career. I am a component in larger system. What if the alternator in my car took it on itself to improve engine efficiency, fuel economy, or safety at the expense of the job I expect it to do?

One of the most important things an engineer can learn on the job is humility. Understanding that the don't have all the information and accepting the tasks they are given. The author admits this is not what they did and they deserve poor marks as a result. No promotion? ... color me surprised.

nsfyn55··on My Amazon Burnout Experience
Polymath? Pshhhaw. And I thought referring to oneself as a "genius" was the pinnacle of self-aggrandizement. Sorry friend you are not a genius, you are not a polymath, and given amazon's volume a 6 or 7 figure savings is likely indistinguishable from a rounding error. And while we're on the subject. Why doesn't he share the nature of his advanced degree in a quantitative discipline that puts him on equal footing with the world's leading econometricians rather than pulling the old neo bullet dodge?
nsfyn55··on HitchBOT destroyed in Philadelphia, ending U.S. tour
Ummmm from Philly friends... I'm sorry we let this happen :(
nsfyn55··on Take-home interviews
I think you are missing the point. If you are ok with a "Cheated" response then you are really hiring a candidate based on their network of experts. An equally or more qualified candidate could submit a less stellar answer only because their dad isn't an emeritus chair at a University.
nsfyn55··on Take-home interviews
zing! you got me. I only skimmed the first paragraph. Nah sounds cool. I wish you the best of luck. Let us know if it works.
nsfyn55··on Take-home interviews
Oh as a number of people have indicated

its bad for the company because the candidate can work with someone else and produce a glowing submission. I have helped a number of people do these some that have gotten the job.

its bad for the interviewee. They may spend 10-15 hours on this and get rejected for no reason at all. Do you think the person reviewing the submission is putting multiple hours into it. Doubtful.

If the intent is truly(and I mean truly) help individuals that struggle with traditional interviewing techniques then kudos. Demonstrate this by allowing candidates to interview in a way that is comfortable for them(including not taking your take home test) If its the company saying "my time is more valuable than yours. Do this assignment then we'll talk" then no thanks.

nsfyn55··on Take-home interviews
yuck! why did you have 66 commits?
nsfyn55··on Take-home interviews
If its an option and they don't exhibit any bias towards candidates that prefer a traditional interview then thats fine, but they should make it clear in the article.
nsfyn55··on Take-home interviews
Also its more than a little disingenuous on the part of the company. It communicates "my time is more valuable than yours . Go do this thing async so if you don't work out I don't have to waste resources on you." It also drives a perverse incentive on the part of the interviewing organization. The only resources you've spent is the time to send them the test if you are unmotivated or are having second thoughts you don't even have to look at the candidates work. But the candidate might spend hours on this thing.

I prefer an interview system where the company and the candidate both care. Commitment is a requirement for everyone.

nsfyn55··on Take-home interviews
Take home interviews are a great indicator of a company's hubris. "Its so awesome to work here people are going to jump at the chance to do my 3 hour homework assignment".

The problem with them is fundamental: "You will only get someone desperate enough to take your exam."

If the person is qualified they will be swimming in opportunities and will likely throw your exam directly in the trash heap. If they aren't you probably don't want them working for you. I suppose these might work if the entire industry colluded on it but then ... prisoner's dilemma.

Maybe a more useful indicator is weeding out the candidates that didn't say "no thanks." Cause really why are they so desperate for a job and why do they have all this free time? but then ... ethics.

nsfyn55··on 2015 State of Devops Report [pdf]
Read down. They cite several studies. To be honest, I was little weirded out by the implication that diversity and equitable gender distribution are synonymous. In fact there is only one-half sentence mentioning non-gender diversity - "and improve diversity in other areas, too."
nsfyn55··on 2015 State of Devops Report [pdf]
Meh reads more like marketing fluff than anything. Its just an incoherent mess of academic articles and industry white papers(some more than a year old) and a sprinkle of survey monkey. TL;DR Devops! yeah make tommorow's profits more Devopsy today with puppet. Continuous Diversity, lead time synergies, and SUCH!
nsfyn55··on What happens when you talk about salaries at Google
Sorry friend this is nonsense. One of the key pieces of negotiation is access to information. Organizations and managers respond well to rational appeals like "so and so has the same experience and does the same job but earns 10% more" or "I have an outstanding offer for X I am currently at (X-$10000), I know your position(BATNA) to imply a cost of (X-$1000) I think its reasonable to settle here for (X-$5000)"

The key is having information specifically to formulate your company's BATNA. The notion that salary sharing is bad for the employee is hogwash from unfair labor practices developed over decades.

Would you buy a car from a dealership if the dealer told you "you shouldn't comparison shop it will only make you resentful"? Yet we are willing to accept that claptrap from a company. Not in this lifetime.

nsfyn55··on What happens when you talk about salaries at Google
I am largely in agreement with you, but I can't help but feel Erica Joy is skirting some gray areas here.

In one breath she states its "illegal to retaliate for sharing salary information" yet a spreadsheet she implies clearly evidences discrimination hasn't found itself in the hands of a qualified attorney. If the former is true barring legalities I may not be familiar(disclaimer not an attorney) the participants would seem to be protected.

In addition she strongly implies damning evidence can be demonstrated with some "spreadsheet magic" but is very careful not to use specific language. This could be construed as someone avoiding accusations of libel.

I'm interested though if this spreadsheet has the level of adoption she claims(thought I don't quite understand the bit about 5% of former co. if she means google that'd be 2,500 people) It will certainly leak then we can run the pivots ourselves.

nsfyn55··on GitFlow considered harmful
Its not exactly aesthetic. Little diffs and big diffs are not isomorphic. They could conflict with eachother. The only true diff is either diffing a squashed commit or diffing over the whole range. And if you are diffing over a range all the time you might as well be squashing and rebasing so you get the benefits of linear history.

This is my primary complaint regarding rebasing and no-ff. It leaves all these useless and confusing commits around. A lot of times the content of the commit was undone by a commit in the family. Its usually not useful to anyone and can only be reasoned about by the original author. When you merge all that crap lands in `master`

Interestingly I think I am actually learning something during this thread. The hardcore `no-ff` actually misunderstands rebase. They find the billion crap commits to be disruptive as well and want the merge commit so they can get rid of that mess. But I just say the mess is unnecessary. Just squash and you get the best of all worlds. You'll never miss those 12 commits

nsfyn55··on GitFlow considered harmful
Yeah that's why you squash your 12 commits into a single commit that represents the deliverable.

This is my point I find the 12 commits to be unnecessary. I've never been burned by squashing. The only arguments I've heard against it are ideological(you're destroying history, etc.)

nsfyn55··on GitFlow considered harmful
+1
nsfyn55··on GitFlow considered harmful
I never said it was bullshit. I'm just looking for your "falsfiability" criteria. My point is "no-ff" is cluttery and no one can tell me in "objective terms"(e.g. newtons, projects/year) backed by clear evidence that there is any benefit. All I see is downside. Your points are pretty shakey lets break them down shall we?

> Your last paragraph is a nice example of psychological projection. If you weren't so narrow minded you could have used your energy to learn something.

well thats clearly ad hominem nonsense. So nothing to see there.

>Myself I use --no-ff because it fits the kind of work I do very well. I haven't lost a minute of sleep or time over its deficiencies. And I am pretty certain that I spend a whole lot less time fiddling with git than people who advocate "agressive rebasing".

No point to any of that either.

>Also merging two branches that tend to touch upon same modules but are not kept in sync all the time (due to whatever reasons) is a lot simpler when you use --no-ff.

This might have some merit. But I don't really understand what you mean.

>You say that these properties are bullshit, but I found them invaluable when fixing bugs and architectural defects and where it was important to find out when and how the bug or a behaviour occurred. And funny that you mention accountants and auditors. Because being able to do forensics more easily on the codebases that I worked on has saved me and my clients many hours and gray hair. And I have found myself in situations where

Here you actually makes some points but they are all anecdotal. How many hours has it saved you? How could you even know this unless you split time into two parallel experiments and measured them independently? Its not that there is anything wrong with relaying an anecdote. But when you introduce this handwaving nonsense as justification for something as though it has the same strength as an objective measurement that I call bullshit.

>I do admit you have some merit in pointing out how bad a git history looks when littered with merge commits for single commit branches. But then, this is pretty easy to fix. Just use a fucking vanilla merge, or indeed a rebase when it fits the problem. Another way to work around the bad aspects of --no-ff approach is by using a better git history explorer.

After all those words here you start to make some sense. Of course I would use `no-ff` if I saw some value in a "merge commit" which is the mirror to your point. But my point is just that ... I've never encountered that case or had it concisely explained to me

nsfyn55··on GitFlow considered harmful
well can you provide the killer use case that none of us can live without?

I mean its certainly possible that in some tiny fraction of cases I might say "man I could fix this a lot easier if I had the merge commit" its just in the 10,000's of examples that form my experience I haven't stepped on that particularly landmine yet.

Even with that said, my development philosophy compels me to choose "Simplicity over Completeness" and is utilitarian to the core. I will chose whatever is most effective in the vast majority of cases.

Some folks look at "Source Control History" as some pristine, historical record of how things went down. Since I am not an accountant or auditor this has little value to me. It encumbers the day to day to optimize for a case that is almost certain to never happen. A first-order approximation of the history that optimizes for the day-to-day needs of an organization is far more suitable in almost every case.

I use the term "local team pedant" its not a bad thing. Some folks just have a need for things to be "complete" and feel compelled to do so for irrational(usually expensive) reasons. In my own experience the person that is the "no rebase/ never fast forward" cheerleader can never give a solid objective answer as to what the benefit is. Its usually always something like what this no-ff-er suggests(http://walkingthestack.blogspot.com/2012/05/why-you-should-u...) . Things like "I can see whats on a branch, etc." That in itself is not a justification. Its just words. If you could someone how demonstrate how this reduces development costs or offers a better way to organize work and is simultaneously better than the more idiomatic alternatives then I'm all for it.

nsfyn55··on GitFlow considered harmful
I have had this ideological debate about "fast forwarding" more times that I can count. I agree with the author "no-ff" is silly. I've been working on professional software teams for over a decade. When I encountered fast forwarding/rebasing it was absolutely a breath of fresh air. I've been using git now for 5 years and I have not encountered a single instance where using either of these tools has presented any sort of problem. I can't remember a week where having a concise, readable history hasn't proven its value. I also can't remember a single time I've said "Man I'm glad I had all these merge commits around they really saved my proverbial bacon"

From what I can tell no-ff exists to satisfy the aesthetic preference of your local team pedant. It gives them something to do between harping on whether your behavior is in the correct "domain", deciding if a list comprehensions are truly "pythonic", and spending that extra month perfecting the event sourcing engine to revolutionize the "contact us" section of your site.

nsfyn55··on Bad Microsoft
I think it is you that has missed the point. Its not about who gets the money, but whether the initiative would have survived at all in a corporate environment.

Sometimes the only way to jump over the heads of the paymasters is to do something for free.

nsfyn55··on Bad Microsoft
> The amount of money we collectively leave on the table is staggering.

Right if your goal is to make truckloads of money sure. Not all software professionals ascribe a great deal of value to this end. Many major advances in bringing high-end operating and distributed systems to the masses have come from "Open Source" movements. Is is that hard to imagine a more protectionist, profit-driven software industry where these technologies are shelved in favor of propping up current money makers? In effect denying cheap, high quality solutions to a generation of innovators and start up companies?

As a side note I found your call for unionization to be a flawed comparison. The organizations you've alluded to (AMA and ABA) deal in inelastic goods that enjoy popular legal protections. This is for good reason, no one wants brain surgery from an amateur, but I might give one a shot at standing up my wordpress site.

nsfyn55··on Why I vertically align my code
Firstly, this doesn't solve any problems. It actually adds another a fragmented history.

Secondly, this is not a limitation of source control tools its a limitation of formal logic.

Vertical alignment's benefits are absolutely minimal. What is the ROI? How many bugs can be traced to "Lack of vertical alignment"? How many programmers have uttered the phrase "That vertical alignment really saved my bacon on that one"? Answer NONE! Its entirely aesthetic. I agree it looks nicer, but a Geo Metro modded to look like a Ferrari isn't any faster because it "looks faster"

nsfyn55··on Why I vertically align my code
I don't believe this will save you from the merge conflicts.
nsfyn55··on Why I vertically align my code
>Readability is a very worthy objective.

Agreed, but its not the only objective. There is a balance to be struck. Speaking from the perspective of an individual that delivers software as part of a team:

producing readable/understandable code == GOOD

letting your aesthetic preference be disruptive == BAD

As an anecdote I have worked on teams where a certain individual's need for symmetry in the code base has significantly reduced the efficacy of source control and caused issues particularly with automated build/deployment.

When I criticize "readability" its not because I don't believe its important, but rather because its too often used to justify one individual's preference without regard to objective counter criteria and too often embodies "The perfect being the enemy of the good"

nsfyn55··on Why I vertically align my code
> Spreadsheets also do things like right-alignment or decimal alignment and mono-spaced integers, not because it adds any meaning beyond the grid, but because if something is off by a few orders of magnitude from the others, it will stand out.

This may be a problem, but if I am working with values like this I am typically using a spreadsheet. I imagine this is more of an issue in simulations and/or scientific applications.

For general use code, epecially code being worked on by multiple people this a bear(specifically because of merge conflicts). I typically find the advocate to be the person that has the least team experience.

← PreviousPage 3 of 4Next →