<rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Hacker News: mmillin</title><link>https://news.ycombinator.com/user?id=mmillin</link><description>Hacker News RSS</description><docs>https://hnrss.org/</docs><generator>hnrss v2.1.1</generator><lastBuildDate>Wed, 10 Jun 2026 16:45:01 +0000</lastBuildDate><atom:link href="https://hnrss.org/user?id=mmillin" rel="self" type="application/rss+xml"></atom:link><item><title><![CDATA[New comment by mmillin in "First tunnel element of the Fehmarnbelt Tunnel immersed"]]></title><description><![CDATA[
<p>Do you have a source for how little maintenance this will need? I imagine there will be teams of people continually employed for regular maintenance and operations. Concrete does develop “bugs” in the form of cracks, chips, or other damage that needs to be repaired.<p>While software engineering certainly deals with different constraints, I don’t think this is a fair comparison. When stakes are low (as they are for most software engineering), different precautions are appropriate. The aerospace or financial software engineering worlds might be more comparable here, and the engineering for those systems looks quite different as a result.<p>See also: <a href="https://www.jerf.org/iri/post/2026/programming_is_engineering/" rel="nofollow">https://www.jerf.org/iri/post/2026/programming_is_engineerin...</a></p>
]]></description><pubDate>Mon, 11 May 2026 09:58:28 +0000</pubDate><link>https://news.ycombinator.com/item?id=48092993</link><dc:creator>mmillin</dc:creator><comments>https://news.ycombinator.com/item?id=48092993</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=48092993</guid></item><item><title><![CDATA[New comment by mmillin in "Idempotency is easy until the second request is different"]]></title><description><![CDATA[
<p>This is an excellent article, I’ve seen almost all of the issues it calls out in production for various APIs. I’ll be saving this to share with my team.<p>I’ve seen two separate engineers implement a “generic idempotent operation” library which used separate transactions to store the idempotency details without realizing the issues it had. That was in an organization of less than 100 engineers less than 5 years apart.<p>One other thing I would augment this with is Antithesis’ Definite vs Indefinite error definition (<a href="https://antithesis.com/docs/resources/reliability_glossary/#definite-error" rel="nofollow">https://antithesis.com/docs/resources/reliability_glossary/#...</a>). It helps to classify your failures in this way when considering replay behavior.</p>
]]></description><pubDate>Sun, 10 May 2026 10:10:09 +0000</pubDate><link>https://news.ycombinator.com/item?id=48082560</link><dc:creator>mmillin</dc:creator><comments>https://news.ycombinator.com/item?id=48082560</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=48082560</guid></item><item><title><![CDATA[New comment by mmillin in "Composition shouldn't be this hard"]]></title><description><![CDATA[
<p>This article reminded me a lot of a previous HN post[0] which hinted at choreographic programming[1]. While this post is light on details, I think this is an interesting space and deserves much more attention than it gets today. I'm excited to watch what comes from this space.<p>[0] Distributed Systems Programming Has Stalled: <a href="https://news.ycombinator.com/item?id=43195702">https://news.ycombinator.com/item?id=43195702</a><p>[1] Choreographic Programming: <a href="https://en.wikipedia.org/wiki/Choreographic_programming" rel="nofollow">https://en.wikipedia.org/wiki/Choreographic_programming</a></p>
]]></description><pubDate>Fri, 24 Apr 2026 12:24:58 +0000</pubDate><link>https://news.ycombinator.com/item?id=47889265</link><dc:creator>mmillin</dc:creator><comments>https://news.ycombinator.com/item?id=47889265</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=47889265</guid></item><item><title><![CDATA[New comment by mmillin in "Knit File Formats"]]></title><description><![CDATA[
<p>This is so cool, going to have to check out all of the posts in this series. I recently got a manual knitting machine (a basic round one, non programmable) and have really been enjoying the process.<p>Learning about the more advanced machines, even the manual ones, is fascinating. If computers weren’t around, I’m sure I’d be doing something with knitting professionally instead of programming.</p>
]]></description><pubDate>Fri, 10 Apr 2026 11:59:09 +0000</pubDate><link>https://news.ycombinator.com/item?id=47716763</link><dc:creator>mmillin</dc:creator><comments>https://news.ycombinator.com/item?id=47716763</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=47716763</guid></item><item><title><![CDATA[Why Testing is Hard and How to Fix it [audio]]]></title><description><![CDATA[
<p>Article URL: <a href="https://signalsandthreads.com/why-testing-is-hard-and-how-to-fix-it/">https://signalsandthreads.com/why-testing-is-hard-and-how-to-fix-it/</a></p>
<p>Comments URL: <a href="https://news.ycombinator.com/item?id=47430432">https://news.ycombinator.com/item?id=47430432</a></p>
<p>Points: 2</p>
<p># Comments: 0</p>
]]></description><pubDate>Wed, 18 Mar 2026 19:37:54 +0000</pubDate><link>https://signalsandthreads.com/why-testing-is-hard-and-how-to-fix-it/</link><dc:creator>mmillin</dc:creator><comments>https://news.ycombinator.com/item?id=47430432</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=47430432</guid></item><item><title><![CDATA[Let me slop that for you]]></title><description><![CDATA[
<p>Article URL: <a href="https://letmeslopthatforyou.com">https://letmeslopthatforyou.com</a></p>
<p>Comments URL: <a href="https://news.ycombinator.com/item?id=47401383">https://news.ycombinator.com/item?id=47401383</a></p>
<p>Points: 4</p>
<p># Comments: 0</p>
]]></description><pubDate>Mon, 16 Mar 2026 16:45:23 +0000</pubDate><link>https://letmeslopthatforyou.com</link><dc:creator>mmillin</dc:creator><comments>https://news.ycombinator.com/item?id=47401383</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=47401383</guid></item><item><title><![CDATA[New comment by mmillin in "RFC 454545 – Human Em Dash Standard"]]></title><description><![CDATA[
<p>This feels about as useful as the evil bit: <a href="https://www.rfc-editor.org/rfc/rfc3514" rel="nofollow">https://www.rfc-editor.org/rfc/rfc3514</a></p>
]]></description><pubDate>Tue, 10 Mar 2026 15:44:04 +0000</pubDate><link>https://news.ycombinator.com/item?id=47324821</link><dc:creator>mmillin</dc:creator><comments>https://news.ycombinator.com/item?id=47324821</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=47324821</guid></item><item><title><![CDATA[New comment by mmillin in "Maintenance: Of Everything, Part One"]]></title><description><![CDATA[
<p>This is a topic I’ve been wanting a book on for a long time. We’ve done so much work to eliminate the need for maintenance for the masses through things like planned obsolescence, renting instead of owning, and appeasing the hedonic treadmill. I can’t help but feel through this we’ve lost a lot of collective skills in patience and ownership as a result.<p>I’m looking forward to reading this.</p>
]]></description><pubDate>Tue, 20 Jan 2026 23:00:51 +0000</pubDate><link>https://news.ycombinator.com/item?id=46698834</link><dc:creator>mmillin</dc:creator><comments>https://news.ycombinator.com/item?id=46698834</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=46698834</guid></item><item><title><![CDATA[New comment by mmillin in "Nobody knows how large software products work"]]></title><description><![CDATA[
<p>>Worse, many behaviors of the system don’t necessarily have a lot of conscious intent behind them (or any)<p>This is one of the key reasons why I’ve ingrained the “You Ain’t Gonna Need It” principle into my development philosophy. Many times I see engineers build a system that can support a dozen different use cases, but only two are used in practice. A few years down the road when several other new features have been added and the codebase needs a refactor, the extra complexity of those ten unused features become hurdles. And anyone who knows better has moved on or been reorg’d away. I’ve lost too many hours bending over backwards to support a feature that I learn much later was never used.<p>Note that this applies to features that increase complexity. Sometimes you can support more with less complexity through a simpler abstraction, which I’m all in favor of.</p>
]]></description><pubDate>Wed, 24 Dec 2025 13:20:01 +0000</pubDate><link>https://news.ycombinator.com/item?id=46375327</link><dc:creator>mmillin</dc:creator><comments>https://news.ycombinator.com/item?id=46375327</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=46375327</guid></item><item><title><![CDATA[New comment by mmillin in "Altoids by the Fistful"]]></title><description><![CDATA[
<p>The biggest cause of these issues isn’t style-related or something that can be easily documented ahead of time.<p>A recent example: an engineer wrote a custom caching layer for a service call, then called the service wrapper every time the data was needed, relying on caching to avoid hitting our dependency too often. I suggested fetching the data once and passing it around, but the engineer pushed back, citing the feature’s launch deadline and the effort required to update multiple interfaces. Their solution ultimately has more failure modes and is harder to test (requiring mocking of the service wrapper in several places), but it isn’t terrible and we probably won’t encounter cache overflow issues.<p>Another persistent example is function parameter length. Inevitably, there’s always “just one more argument” needed until we hit our configured linter limit. About 70% of the time, engineers add a suppression and push the change through as-is. Refactoring to reduce parameters can require significant work (and simply stuffing them into a parameter object doesn’t solve the underlying problem).<p>I could respond to these patterns by expanding our coding standards guide. It could document that caching shouldn’t be relied upon within a single request’s scope, or reinforce that functions should have fewer than 7 parameters (already enforced by our linter). But in my experience, these guidelines are rarely consulted before contributing. As the parameter example shows, people often push for exceptions rather than follow standards rigidly.<p>I do think standards guides can work well for open source projects, where contributions should never block someone from delivering value. Contributors always have the option to fork and use their changes as-is, which undermines arguments for “just getting something in.” Internal service codebases don’t have that luxury. When you’re changing a service to launch your feature before a major sales event, delays have real costs, and there’s no “I’ll fork this and maintain it myself” alternative.</p>
]]></description><pubDate>Wed, 24 Sep 2025 11:14:01 +0000</pubDate><link>https://news.ycombinator.com/item?id=45358768</link><dc:creator>mmillin</dc:creator><comments>https://news.ycombinator.com/item?id=45358768</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=45358768</guid></item><item><title><![CDATA[New comment by mmillin in "Altoids by the Fistful"]]></title><description><![CDATA[
<p>It might take me an hour, but communicating the idea to the engineer, convincing them it’s better, guiding them to the solution, and then having them build it will take far longer wall clock time.</p>
]]></description><pubDate>Tue, 23 Sep 2025 19:45:30 +0000</pubDate><link>https://news.ycombinator.com/item?id=45351845</link><dc:creator>mmillin</dc:creator><comments>https://news.ycombinator.com/item?id=45351845</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=45351845</guid></item><item><title><![CDATA[New comment by mmillin in "Altoids by the Fistful"]]></title><description><![CDATA[
<p>>I briefly try to think of which chucklefuck I could blame this design on, but truth be told I rubber-stamped enough questionable pull requests in my time here that a fair amount of this situation is a mess of my own damn making.<p>This one really rings true. Every individual change you don’t push back on makes things slowly, incrementally worse until you end up with a pile of garbage. But do you really want to block someone’s change because they wrote some awkward, hacky code? After all, they’ve solved some problem for the business and it might only take an hour to clean up later.<p>Later never comes. Hacks get built on top of other hacks and that one hour improvement would now be a week long refactor. No one can justify that.<p>After few rounds of this you start to become the type of person who blocks changes for code clarity and things others view as nitpicks. Now you’re the asshole stopping people from getting work done. You ask yourself if it’s really so bad to let it slide this one time.<p>Repeat.</p>
]]></description><pubDate>Tue, 23 Sep 2025 11:36:02 +0000</pubDate><link>https://news.ycombinator.com/item?id=45345563</link><dc:creator>mmillin</dc:creator><comments>https://news.ycombinator.com/item?id=45345563</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=45345563</guid></item><item><title><![CDATA[New comment by mmillin in "Stop selling “unlimited”, when you mean “until we change our minds”"]]></title><description><![CDATA[
<p>Did Anthropic ever use the term unlimited? I understand the general frustration with the pattern, but it seems weird to put unlimited in quotes when it wasn’t the way Claude was sold.</p>
]]></description><pubDate>Tue, 29 Jul 2025 11:41:01 +0000</pubDate><link>https://news.ycombinator.com/item?id=44722040</link><dc:creator>mmillin</dc:creator><comments>https://news.ycombinator.com/item?id=44722040</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=44722040</guid></item><item><title><![CDATA[New comment by mmillin in "CEOs say AI is just a tool to help workers, but our jobs are already on the line"]]></title><description><![CDATA[
<p>>In 2024, 551 tech companies laid off nearly 152,922 employees, according to data from Layoff.fyi. The pace has accelerated dramatically this year. In just the first six months of 2025, 151 tech companies have already laid off over 63,823 people. On average a tech company cut 277 workers in 2024. If that rate is maintained for the rest of the year, the average number of layoffs per tech company in 2025 would soar to 851, roughly three times the 2024 average.<p>Am I missing something with this analysis? It seems like 2025 is on pace for fewer workers laid off, not more.</p>
]]></description><pubDate>Sun, 29 Jun 2025 19:32:54 +0000</pubDate><link>https://news.ycombinator.com/item?id=44415683</link><dc:creator>mmillin</dc:creator><comments>https://news.ycombinator.com/item?id=44415683</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=44415683</guid></item><item><title><![CDATA[New comment by mmillin in "Finding Shawn Mendes (2019)"]]></title><description><![CDATA[
<p>Reading this felt very similar to watching “Pitch Perfect 237” (Anna Kendrick 9/11 conspiracy) <a href="https://youtube.com/watch?v=MiC9X_MoE1M" rel="nofollow">https://youtube.com/watch?v=MiC9X_MoE1M</a></p>
]]></description><pubDate>Mon, 09 Jun 2025 13:34:15 +0000</pubDate><link>https://news.ycombinator.com/item?id=44224367</link><dc:creator>mmillin</dc:creator><comments>https://news.ycombinator.com/item?id=44224367</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=44224367</guid></item><item><title><![CDATA[New comment by mmillin in "Why does the U.S. always run a trade deficit?"]]></title><description><![CDATA[
<p>There are important reasons to have domestic manufacturing even if automated and not creating jobs.</p>
]]></description><pubDate>Wed, 21 May 2025 11:27:00 +0000</pubDate><link>https://news.ycombinator.com/item?id=44050294</link><dc:creator>mmillin</dc:creator><comments>https://news.ycombinator.com/item?id=44050294</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=44050294</guid></item><item><title><![CDATA[New comment by mmillin in "Burrito Now, Pay Later"]]></title><description><![CDATA[
<p>> incrementally builds my credit rating<p>Most BNPL plans are not reported to credit agencies and therefore don’t build credit. But “financing” by paying with a credit card and paying the balance in full would build your credit, still with no interest.</p>
]]></description><pubDate>Mon, 12 May 2025 08:14:03 +0000</pubDate><link>https://news.ycombinator.com/item?id=43960679</link><dc:creator>mmillin</dc:creator><comments>https://news.ycombinator.com/item?id=43960679</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=43960679</guid></item><item><title><![CDATA[New comment by mmillin in "The One-Person Framework in Practice"]]></title><description><![CDATA[
<p>I’m curious if .NET can compare here, though I have limited experience with rails or ASP.NET both seem to give you a lot to work with. Though the overlap of rails devs with .NET devs seems minimal.</p>
]]></description><pubDate>Tue, 29 Apr 2025 01:14:05 +0000</pubDate><link>https://news.ycombinator.com/item?id=43827816</link><dc:creator>mmillin</dc:creator><comments>https://news.ycombinator.com/item?id=43827816</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=43827816</guid></item><item><title><![CDATA[New comment by mmillin in "Lead is still bad for your brain"]]></title><description><![CDATA[
<p>A small amount of lead makes its way out of the chamber in the form of dust and fumes after shooting. It’s quite easy to breath this in or get it on your hands and accidentally ingest it. Not enough to matter for someone who occasionally goes to the range, but significant for those shooting nearly daily, especially if shooting indoors.</p>
]]></description><pubDate>Fri, 11 Apr 2025 10:48:15 +0000</pubDate><link>https://news.ycombinator.com/item?id=43652454</link><dc:creator>mmillin</dc:creator><comments>https://news.ycombinator.com/item?id=43652454</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=43652454</guid></item><item><title><![CDATA[New comment by mmillin in "Japan births fall to lowest in 125 years"]]></title><description><![CDATA[
<p>>Just look at the millionaire CEO of your own company. Do they have 6 kids? They probably don't even have 4 kids.<p>Couldn’t this also be evidence that money is the issue? i.e. you can’t get to that millionaire CEO spot if you have a lot of kids you need to pay for. Instead the successful are those having fewer kids.</p>
]]></description><pubDate>Thu, 27 Feb 2025 15:01:43 +0000</pubDate><link>https://news.ycombinator.com/item?id=43194959</link><dc:creator>mmillin</dc:creator><comments>https://news.ycombinator.com/item?id=43194959</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=43194959</guid></item></channel></rss>