N

No Machete Juggling

nomachetejuggling.com · Personal blog · on HN since 2009

Software developer who writes on programming interviews, algorithms, git workflows, technical debt, and also the Star Wars 'Machete Order' viewing guide.

What HN saysHN commenters cite it for its technical interview process, the worst-interview-question and Traveling Salesman posts (one asks about NP-completeness), and the Machete Order for watching Star Wars.
35HN people shared it
13linked it in comments
26stories submitted
684story points
4 years agolast shared
2009people per year2026

Most-shared posts

  1. 1
    Traveling Salesman: the most misunderstood problem
    5 people · 115 points · first shared 2012 · 43 comments on HN
  2. 2
    The Star Wars Saga: Introducing Machete Order (2011)
    5 people · 24 points · first shared 2012 · discussion on HN
  3. 3
    Assholes: A Probing Examination
    4 people · 216 points · first shared 2019 · 191 comments on HN
  4. 4
    The Worst Programming Interview Question
    4 people · 113 points · first shared 2014 · 184 comments on HN
  5. 5
    A Different Successful Git Branching Model: Three-Flow
    3 people · 4 points · first shared 2017 · discussion on HN
  6. 6
    Career-Changing Programming Books
    2 people · 157 points · first shared 2015 · 48 comments on HN
  7. 7
    When to work on technical debt
    2 people · 4 points · first shared 2011 · discussion on HN
  8. 8
    A Different Kind of Technical Interview
    2 people · 2 points · first shared 2011 · discussion on HN
  9. 9
    I Love Pair-Programming
    1 people · 37 points · first shared 2009 · 36 comments on HN
  10. 10
    3 Pillars of Job Satisfaction
    1 people · 5 points · first shared 2009 · 1 comments on HN
  11. 11
    Mechanics of Good Pairing
    1 people · 2 points · first shared 2015 · discussion on HN
  12. 12
    I broke your code and its your fault
    1 people · 2 points · first shared 2012 · discussion on HN
  13. 13
    Strengths only: A peer review philosophy
    1 people · 1 points · first shared 2019 · discussion on HN
  14. 14
    Scala First Impressions
    1 people · 1 points · first shared 2012 · discussion on HN
  15. 15
    CenturyLink: Traps and Caps
    1 people · 1 points · first shared 2013 · discussion on HN

What HN people wrote when they linked it

luord · 2018-12-03
The best interview process I've read about is the one detailed here: http://www.nomachetejuggling.com/2011/05/27/a-different-kind-of-techni… And sadly I haven't once seen it in action. I really wish I could go through such process, or implementing it in whatever company I work at (or create).
aaronbrethorst · 2015-12-20
I watched the films in Machete Order[1] with my girlfriend in advance of the premiere of The Force Awakens last week. She hadn't seen any Star Wars movie in 15 years, and the Machete Order worked out quite well. I'd considered watching one of the two hour long "Phantom Edits," but it seemed too difficult to find one of good quality. Do you have a recommendation on a specific edit? [1] http://www.nomachetejuggling.com/2011/11/11/the-star-wars-saga-suggest…
slacka · 2013-12-30
I'm a little confused by this issue. According to Proof Wiki: "Because the Traveling Salesman problem is both NP and NP-hard the Traveling Salesman Problem is NP-complete." http://www.proofwiki.org/wiki/Traveling_Salesman_Problem_is_NP-complet… Here's another site claiming it's not even in NP: http://www.nomachetejuggling.com/2012/09/14/traveling-salesman-the-mos… I'd love a clear explanation.
Zee2 · 2022-06-18
Isn't the traveling salesman optimization problem non-polynomially-verifiable? https://www.nomachetejuggling.com/2012/09/14/traveling-salesman-the-mo…
brockrockman · 2014-07-18
a good reminder that the TSP optimization problem is only NP-hard, not NP-complete -- http://www.nomachetejuggling.com/2012/09/14/traveling-salesman-the-mos…
crdrost · 2022-07-10
I like this, but it violates one of my norms, haha. Stories can last for a while, but long-lived feature branches have to be kept in sync with the main branch, otherwise they develop nasty merge conflicts and you are not deploying continuously. I think the better solution is for your versioning and your issue tracker to be integrated: we still expect every developer to merge to mainline one or twice a day[1], keeping merge conflicts shallow... But they should mention what issue they are working on in the commit, and the integration dumps that information into the tracker automatically. [1] This is not hard to make safe, though it makes a lot of devs skittish at first. See Three-Flow for a non-CD version, https://www.nomachetejuggling.com/2017/04/09/a-different-branching-str… as a stepping stone. One key thing is that code review needs to become much lighter than it is at many organizations, “I don't care how you did it as long as it can be turned off with a feature toggle and does not break prod or introduce security vulnerabilities when I merge it: those key things are what I am looking for.”
throwaway2037 · 2022-01-27
You wrote: <<many of the algorithms used to solve problems took years to develop>> I completely agree. Many years ago, I was challenged during a telephone interview to determine if a linked list contained a cycle. At the time, I did not know about Floyd's cycle-finding algorithm. Of course, I failed the interview miserably, but the experience stayed with me for many years. In 2014, there was a blog post about this exact algorithm and interview question: https://www.nomachetejuggling.com/2014/06/24/the-worst-programming-int… I pounded the desk when I read it! It was even discussed on HackerNews(!): https://news.ycombinator.com/item?id=7953725 One way to think about LeetCode is that it helps to expose you to 100+ obscure algorithms that might come up in an "elite-level" interview. Knowing them off the top of your head will either make your look like a robot / genius / both(!). Also, for interviews that require keyboard or whiteboard programming, "kata"[1] is undeniably good for your performance. Like anything, the more you practice, the better your performance will become. Currently, we are interviewing at my office for software engineers. I always interview as a pair with the same person. We have slowly evolved our interviewed in an attempt to find a "local maxima" during a one hour time slot. No, we don't do whiteboard programming -- everything is f'in Zoom/WebEx these days! I struggle with this: With the advent of Java and C#, a lot of average…
bryik · 2022-01-05
Exactly. I think it is reasonable to ask candidates to demonstrate basic programming competency, but "gotcha" questions are terrible. Consider the interview question: "Write a function that can detect a cycle in a linked list." > Between 1955 and 1967, the problem of “how do we determine if there is a cycle in a linked list without modifying the list or using an extra memory” was a essentially an open problem. Meaning, any number of PhD candidates in Mathematics or Computer Science could have written about it as part of their dissertation. With all of those hundreds and hundreds of minds, this problem remained open for 12 years. > Do you honestly think you could, in a twenty minute interview, from scratch, come up with the solution to a problem that remained open in the field for 12 years, all under a pressure far more intense than any academic? Seems pretty damn unlikely, the only reason you think you could do so is that you’ve heard the answer before, and it seems obvious and simple in retrospect. In other words, “a-ha!” https://www.nomachetejuggling.com/2014/06/24/the-worst-programming-int…
pmarreck · 2016-04-27
Here is the infamous Nagappan TDD paper from Microsoft Research http://research.microsoft.com/en-us/groups/ese/nagappan_tdd.pdf Also discussed in this infoq article http://www.infoq.com/news/2009/03/TDD-Improves-Quality Here's someone's thesis paper on it, with data: http://www.nomachetejuggling.com/files/tdd_thesis.pdf There's also interesting discussions like this http://programmers.stackexchange.com/questions/206355/the-relative-cos… "it is my experience that the value proposition for TDD grows exponentially as the time and resources involved in a project grows linearly." This has also been my own experience. This person's comment also is interesting and has data http://programmers.stackexchange.com/a/210756 Some of the above is empirical (read: scientific, no-bullshit) data. My opinion on it has grown to the point that I think TDD should literally be inseparable from programming, and the two together should simply be called, "programming." Lacking any unit tests whatsoever (TDD or otherwise) should be called, "taking stupid, extremely hazardous risks to save a little time, like reading your phone while driving" I've not found a programming task in at least 5 years that wasn't waaaay better-written when done via TDD. Some things, like IO, can be a challenge to unit-test, but that's why we have great ideas to solve that like Gary Bernhardt's awesome "Boundaries" talk https://www.youtube.com/watch?v=yTkzNHF6rMs
xigency · 2015-12-12
For the problem to be NP-Complete, it would have to be both in NP (the one thing that can be agreed on) and NP-hard. For it to be NP-hard, every problem in NP would have to be reducible to it. If we already know that the Hamiltonian circuit verification problem is NP-complete, and that the Secret Santa problem is NP, we de-facto know that S.S. is reducible to the Hamiltonian circuit. So the 'Aha' moment in the third to last paragraph is not new information. It's true that if every NP problem were reducible to S.S., then it would be NP-hard, and as it can be verified in P time with the S.S. list and the list of people plus relations, and is thus in NP, it would also be NP-complete. It would also suffice to reduce an NP-complete problem to the S.S. problem as pictured here to prove NP-completeness. But this article doesn't give proof of either and generally points in a different direction, like you said, so the title is really misleading and it would have been better to open the article with a question or discussion. To summarize, this post by Rod Hilton is pretty useful in understanding the relation between P, NP, NP-hard, and NP-complete: http://www.nomachetejuggling.com/2012/09/14/traveling-salesman-the-mos…

Keyboard shortcuts

/Search
j kNext / previous blog
EnterOpen selected blog
vVisit the blog site
fFollow / unfollow
lSwitch grid / list view
dSwitch dark mode
g hHome
g pTop posts
g tTopics
g fFollowing
g lLiked
g yHistory
g qFAQ
EscBack / close