<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: britch</title><link>https://news.ycombinator.com/user?id=britch</link><description>Hacker News RSS</description><docs>https://hnrss.org/</docs><generator>hnrss v2.1.1</generator><lastBuildDate>Wed, 08 Apr 2026 20:17:17 +0000</lastBuildDate><atom:link href="https://hnrss.org/user?id=britch" rel="self" type="application/rss+xml"></atom:link><item><title><![CDATA[New comment by britch in "How good engineers write bad code at big companies"]]></title><description><![CDATA[
<p>That's fair I appreciate you taking the time to respond, that's a helpful example</p>
]]></description><pubDate>Thu, 04 Dec 2025 05:03:28 +0000</pubDate><link>https://news.ycombinator.com/item?id=46143979</link><dc:creator>britch</dc:creator><comments>https://news.ycombinator.com/item?id=46143979</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=46143979</guid></item><item><title><![CDATA[New comment by britch in "How good engineers write bad code at big companies"]]></title><description><![CDATA[
<p>What do you mean by basic level of quality?<p>What are you being pressured to do to meet a deadline that's on the level of building collapse?<p>"skimp on the tests" or "do this hard to maintain fix as the solution" is maybe the hardest I've gotten pushed. Are people telling you to skip auth to hit a deadline?</p>
]]></description><pubDate>Sun, 30 Nov 2025 19:42:38 +0000</pubDate><link>https://news.ycombinator.com/item?id=46099712</link><dc:creator>britch</dc:creator><comments>https://news.ycombinator.com/item?id=46099712</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=46099712</guid></item><item><title><![CDATA[New comment by britch in "How good engineers write bad code at big companies"]]></title><description><![CDATA[
<p>I think we're both arguing for balance here<p>When I started programming I wanted everything I wrote to be museum-ready. I was slow as shit and waaay too precious about code. As I've matured I realize that's not a good way to work.<p>I think my lowest acceptable quality bar is still pretty high (and I'm fortunate to work somewhere that is valued). But as time has gone on I've tried to emphasize speed and knowing when something is "good enough"<p>I feel that it's an important skillset for the profession, but often craft-oriented engineers dismiss it at "business people not understanding"<p>As always this depends a bit on where you work and your projects</p>
]]></description><pubDate>Sat, 29 Nov 2025 00:25:35 +0000</pubDate><link>https://news.ycombinator.com/item?id=46084111</link><dc:creator>britch</dc:creator><comments>https://news.ycombinator.com/item?id=46084111</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=46084111</guid></item><item><title><![CDATA[New comment by britch in "Abuse of the nullish coalescing operator in JS/TS"]]></title><description><![CDATA[
<p>I'm not sure I follow the point you're making<p>My example is we want to skip the div if empty or undefined. We can't throw on assignment so we leave it as as string|undefined.<p>When we go to display, we have to check if the string is empty anyway, right? What if it's empty in the DB or API response?<p>No matter what the display-component is doing something to prevent showing the empty string.<p>`
if(fooBarDisplayName.length) { show div }
`<p>or<p>`
if(fooBarDisplayName?.length) { show div }
`<p>I'm not sure what we gain by leaving it as `string|undefined`<p>---<p>If there was a "NonEmptyString" type maybe I could see where you're coming from.<p>I guess you could argue treating `string` like a `NonEmptyString` type seems error prone. The compiler can't verify you've done the check. At some point someone will set a string when it's empty or not do the necessary check.<p>You'd want a separate non-string type to make sure it's actually been parsed</p>
]]></description><pubDate>Sat, 29 Nov 2025 00:15:16 +0000</pubDate><link>https://news.ycombinator.com/item?id=46084050</link><dc:creator>britch</dc:creator><comments>https://news.ycombinator.com/item?id=46084050</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=46084050</guid></item><item><title><![CDATA[New comment by britch in "How good engineers write bad code at big companies"]]></title><description><![CDATA[
<p>I think about this a lot. My belief is professional programmers should not be artists.<p>I think about other professions. A cook cannot spend time making every dish perfect. A bricklayer isn't perfectly aligning every brick. 
Even in movie-making there's a shooting schedule. Things go wrong and the best filmmakers know how to keep the production moving.<p>I love the craft of programming, but I see a lot other craft-oriented programmers who want every line to be beautiful.
If you want to write code poetry in your off-time, that's your business. But that's not the job.<p>At work we are bricklayers and cooks. We practice a craft, but also have time constraints.
I try to do my best work while working at pace. Sometimes my code could be better, but it's not worth the time to fix. Ultimately the thing we make is the running software, not what's under the hood. The business people are sometimes right</p>
]]></description><pubDate>Fri, 28 Nov 2025 23:37:25 +0000</pubDate><link>https://news.ycombinator.com/item?id=46083819</link><dc:creator>britch</dc:creator><comments>https://news.ycombinator.com/item?id=46083819</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=46083819</guid></item><item><title><![CDATA[New comment by britch in "Abuse of the nullish coalescing operator in JS/TS"]]></title><description><![CDATA[
<p>Early errors are good, but I think the author overstates the importance of filtering out empty strings<p>---<p>I disagree that erroring out when the app doesn't have ALL the data is the best course of action. I imagine it depends a bit on the domain, but for most apps I've worked on it's better to show someone partial or empty data than an error.<p>Often the decision of what to do when the data is missing is best left up the the display component. "Don't show this div if string is empty", or show placeholder value.<p>---<p>Flip side, when writing an under the hood function, it often doesn't matter if the data is empty or not.<p>If I'm aggregating a list of fooBars, do I care if fooBarDisplayName is empty or not? When I'm writing tests and building test-data, needing to add a value for each string field is cumbersome.<p>Sometimes a field really really matters and should throw (an empty string ID is bad), but those are the exception and not the rule.</p>
]]></description><pubDate>Thu, 27 Nov 2025 19:05:17 +0000</pubDate><link>https://news.ycombinator.com/item?id=46072284</link><dc:creator>britch</dc:creator><comments>https://news.ycombinator.com/item?id=46072284</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=46072284</guid></item><item><title><![CDATA[New comment by britch in "There is a huge pool of exceptional junior engineers"]]></title><description><![CDATA[
<p>I was confused by why "use of AI" was a top-level requirement of this, but I see now that weave is AI-driven "engineering output measurement" company, down to the individual contributor level.<p>I can understand why you would have better luck hiring eager new-grads than seasoned engineers. I'm sure some IC find the weave stats useful, but it also sounds like a toxic manager's dream. I can understand why more senior engineers would steer clear.</p>
]]></description><pubDate>Tue, 30 Sep 2025 03:59:10 +0000</pubDate><link>https://news.ycombinator.com/item?id=45421759</link><dc:creator>britch</dc:creator><comments>https://news.ycombinator.com/item?id=45421759</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=45421759</guid></item><item><title><![CDATA[New comment by britch in "A computer upgrade shut down BART"]]></title><description><![CDATA[
<p>I mean the answer is in the question--why are the self-driving cars (largely funded by billion-dollar private companies and VC) available in the same city as this anarchic public transit system (funded by largely by regional taxes and ridership fees)</p>
]]></description><pubDate>Fri, 05 Sep 2025 20:42:48 +0000</pubDate><link>https://news.ycombinator.com/item?id=45143355</link><dc:creator>britch</dc:creator><comments>https://news.ycombinator.com/item?id=45143355</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=45143355</guid></item><item><title><![CDATA[New comment by britch in "AI therapy bots fuel delusions and give dangerous advice, Stanford study finds"]]></title><description><![CDATA[
<p>Someone raises safety concerns about LLM's interactions with people with delusions and your takeaway is maybe the field of therapy is actually net harmful?</p>
]]></description><pubDate>Thu, 17 Jul 2025 05:23:16 +0000</pubDate><link>https://news.ycombinator.com/item?id=44589947</link><dc:creator>britch</dc:creator><comments>https://news.ycombinator.com/item?id=44589947</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=44589947</guid></item><item><title><![CDATA[New comment by britch in "The Chan-Zuckerbergs stopped funding social causes"]]></title><description><![CDATA[
<p>Is it clear the charity approach is more efficient? My sense is many non-profits prioritize fundraising and have the bloat of executives who's main function is to schmooze donors.<p>I'm sure there are good nonprofits/charities. And there's definitely inefficient public offices that are mainly interested in politics.<p>My point is "seems less efficient" is kind of weak ground to be asking others for evidence</p>
]]></description><pubDate>Mon, 30 Jun 2025 02:57:22 +0000</pubDate><link>https://news.ycombinator.com/item?id=44418821</link><dc:creator>britch</dc:creator><comments>https://news.ycombinator.com/item?id=44418821</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=44418821</guid></item><item><title><![CDATA[New comment by britch in "I failed a take-home assignment from Kagi Search"]]></title><description><![CDATA[
<p>Yeah the company has to give a timebox. It's true that candidates could abuse that, but open ended "impress us" is asking for trouble for both parties. And honestly you should be able to tell of someone spends 20h or something you said to take 4h on.<p>My take on the proposal: the hiring contact is not the person who wrote or will review the prompt. The candidate sent this long message and I doubt the hirer even read it. That's some nativety on the candidate's part, but the company absolutely should indicate "you're overthinking this"</p>
]]></description><pubDate>Wed, 14 May 2025 04:27:32 +0000</pubDate><link>https://news.ycombinator.com/item?id=43980807</link><dc:creator>britch</dc:creator><comments>https://news.ycombinator.com/item?id=43980807</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=43980807</guid></item><item><title><![CDATA[New comment by britch in "If you believe in "Artificial Intelligence", take five minutes to ask it"]]></title><description><![CDATA[
<p>I am not surprised by the result of this article, but LLMs are marketed to be used to get factual information on non-verifiable domains.<p>Ads shows kids asking for answers to homework on things like "when did xyz battle take place"<p>Your frustration with people talking about it might be better directed at the people marketing it</p>
]]></description><pubDate>Sat, 15 Feb 2025 09:55:54 +0000</pubDate><link>https://news.ycombinator.com/item?id=43057326</link><dc:creator>britch</dc:creator><comments>https://news.ycombinator.com/item?id=43057326</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=43057326</guid></item><item><title><![CDATA[New comment by britch in "Windows 11 turns the tide against Windows 10"]]></title><description><![CDATA[
<p>I mean, they are ending support for windows 10 in a few months. Win 10 is pushing users to upgrade pretty hard. It's not surprising to me more people are on it now than before<p>People who are jumping ship won't show in the numbers until Windows 10 is at end-of-life.<p>We would need to compare percentage of Windows 10 user in 2020 to Windows 11 users in ~2026 to get a sense of the impact</p>
]]></description><pubDate>Sat, 01 Feb 2025 18:28:31 +0000</pubDate><link>https://news.ycombinator.com/item?id=42900742</link><dc:creator>britch</dc:creator><comments>https://news.ycombinator.com/item?id=42900742</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=42900742</guid></item><item><title><![CDATA[New comment by britch in "The Strike Is Coming"]]></title><description><![CDATA[
<p>This is some nonsense.<p>I think this funimendimentally misunderstands what a strike is and how it works. When collective bargaining works, it's because you can force a negotiation with an owner or boss. A group can prevent the business from making money until the owners come to the table.<p>Having a bunch of people walk off the job for a day might make some kind of statement, calling it a general strike is a bit embarrassing from my perspective. This is a protest of a sort, but with no clear message or goal</p>
]]></description><pubDate>Sat, 01 Feb 2025 18:12:33 +0000</pubDate><link>https://news.ycombinator.com/item?id=42900580</link><dc:creator>britch</dc:creator><comments>https://news.ycombinator.com/item?id=42900580</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=42900580</guid></item><item><title><![CDATA[New comment by britch in "Using generative AI as part of historical research: three case studies"]]></title><description><![CDATA[
<p>Interesting perspective. I appreciate that it tests the models at different "layers" of understanding.<p>I have always felt that LLMs would fall apart beyond the summarization. Maybe they would be able to regurgitate someone else's analysis. The author seems to think there's some level of intelligent creativity at play<p>I'm hopeful that the author is right. That truly creative thinking may be beyond the abilities of LLMs and be decades away.<p>I think the author doesn't consider the implications of broad use of LLM societally. Will people be willing to fund human historian grad students when they can get a LLM for a fraction of the price? Will prospective historians have gained the training necessary if they've used an LLM through all of school?<p>I believe the education system could figure it out over time.
I'm more worried that LLMs like this will be used as further justification to defund or halt humanities research. Who needs a history department when I can get 80% for the cost of a few chatGPT queries?</p>
]]></description><pubDate>Sun, 26 Jan 2025 22:11:40 +0000</pubDate><link>https://news.ycombinator.com/item?id=42834730</link><dc:creator>britch</dc:creator><comments>https://news.ycombinator.com/item?id=42834730</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=42834730</guid></item><item><title><![CDATA[New comment by britch in "Facebook is removing stories about pornographic ads"]]></title><description><![CDATA[
<p>It's not a paywall, just a sign-in wall.<p>They were having trouble with getting scraped. The email sign-in is enough of a barrier to stop most scrapers.
<a href="https://www.404media.co/why-404-media-needs-your-email-address/" rel="nofollow">https://www.404media.co/why-404-media-needs-your-email-addre...</a></p>
]]></description><pubDate>Thu, 09 Jan 2025 05:00:23 +0000</pubDate><link>https://news.ycombinator.com/item?id=42641770</link><dc:creator>britch</dc:creator><comments>https://news.ycombinator.com/item?id=42641770</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=42641770</guid></item><item><title><![CDATA[New comment by britch in "Google I/O: Big changes coming for SEOs with ubiquitous AI"]]></title><description><![CDATA[
<p>an ai book is surely more work than an ai blog</p>
]]></description><pubDate>Thu, 11 May 2023 01:31:56 +0000</pubDate><link>https://news.ycombinator.com/item?id=35896133</link><dc:creator>britch</dc:creator><comments>https://news.ycombinator.com/item?id=35896133</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=35896133</guid></item><item><title><![CDATA[New comment by britch in "The JavaScript era happened because we were fed a line"]]></title><description><![CDATA[
<p>I find it funny that article argues SPA frameworks were pushed with cargo-cultism without evidence, while making proclamations of doom and being fairly light on substance.<p>I think the author has some valid points. I agree vanilla JS and SSR is a better fit for a lot of situations.<p>(I will admit some bias as someone who's mainly worked in Angular-Typescript)<p>AngularJs started gaining traction around the rise of "apps" and the iPhone.<p>SPA was a way to have an "app" in the browser with all the complexity that went with it. It also was a way to share an aritecture with mobile apps -- the browser is a client which calls the same public API as mobile devices.<p>Obviously you can call the same public API with SSR, (though it might have been more tricky before the rise of microservices), and not all webpages need to be "apps", but I think this was the argument at the time.<p>I think a lot has changed in 10+ years and those architectural decisions make less sense.<p>With static data and a form or two, SSR and vanilla JS is perfect. Resume-padding engineers might try to make it more complicated than it needs to be, but they're wrong.<p>I would not like to work on a complex web app with 10 other engineers that does not have some kind of component architecture.</p>
]]></description><pubDate>Thu, 02 Mar 2023 14:48:22 +0000</pubDate><link>https://news.ycombinator.com/item?id=34996293</link><dc:creator>britch</dc:creator><comments>https://news.ycombinator.com/item?id=34996293</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=34996293</guid></item><item><title><![CDATA[New comment by britch in "Excess weight, obesity more deadly than previously believed"]]></title><description><![CDATA[
<p>This is a joke, right?<p>Indulging in a Superbowl party or birthday dinner will not make you obese.<p>Overeating or eating poorly over a long period of time will.<p>Cooking can be a great way to have healthy tasty food affordably</p>
]]></description><pubDate>Fri, 24 Feb 2023 23:26:33 +0000</pubDate><link>https://news.ycombinator.com/item?id=34931689</link><dc:creator>britch</dc:creator><comments>https://news.ycombinator.com/item?id=34931689</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=34931689</guid></item><item><title><![CDATA[New comment by britch in "Testing Without Mocks"]]></title><description><![CDATA[
<p>A "fake" (as opposed to a mock) is a pretty well understood concept.<p>Is there a difference between a fake and a "nullable"? As far as I can tell this is a pattern for merging your fakes and reals which seems cumbersome and error prone</p>
]]></description><pubDate>Tue, 21 Feb 2023 16:39:50 +0000</pubDate><link>https://news.ycombinator.com/item?id=34883195</link><dc:creator>britch</dc:creator><comments>https://news.ycombinator.com/item?id=34883195</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=34883195</guid></item></channel></rss>