<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: mrkaye97</title><link>https://news.ycombinator.com/user?id=mrkaye97</link><description>Hacker News RSS</description><docs>https://hnrss.org/</docs><generator>hnrss v2.1.1</generator><lastBuildDate>Tue, 20 Oct 2026 00:16:11 +0000</lastBuildDate><atom:link href="https://hnrss.org/user?id=mrkaye97" rel="self" type="application/rss+xml"></atom:link><item><title><![CDATA[New comment by mrkaye97 in "What I self-host"]]></title><description><![CDATA[
<p>Out of curiosity, do you have any concerns about backups (especially for e.g. VaultWarden and Immich)? I've been pondering running them, but figure that I'd need to back up to The Cloud for me to feel less concerned about losing everything, at which point: what's the point? Curious what you're doing on that front!</p>
]]></description><pubDate>Thu, 15 Oct 2026 23:59:53 +0000</pubDate><link>https://news.ycombinator.com/item?id=50111992</link><dc:creator>mrkaye97</dc:creator><comments>https://news.ycombinator.com/item?id=50111992</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=50111992</guid></item><item><title><![CDATA[New comment by mrkaye97 in "Do dentists know what they're doing?"]]></title><description><![CDATA[
<p>This hit too close to home. After years of dentists (and orthopedic surgeons, and GI surgeons, and plumbers, and so on) selling me oodles of shit I don't need, I finally found one who strikes me as very honest. I had to stop going to her for one year when my insurance switched, and what do you know? The dentist I saw in the interim did a hard sell on Invisalign, which I happily turned down, and never went back.<p>I'm back at my One Trusted Dentist now, and the only way anyone's getting me out of that chair is in a body bag.</p>
]]></description><pubDate>Wed, 14 Oct 2026 23:54:47 +0000</pubDate><link>https://news.ycombinator.com/item?id=50097320</link><dc:creator>mrkaye97</dc:creator><comments>https://news.ycombinator.com/item?id=50097320</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=50097320</guid></item><item><title><![CDATA[New comment by mrkaye97 in "QGIS enacts moratorium on AI contributions"]]></title><description><![CDATA[
<p>This has basically been the story for us at Hatchet too, and it’s been similarly challenging. A lot of the OSS PR reviews I’ve done lately from non-core contributors are basically just me going back and forth with Claude via someone else, which is frustrating when I feel like I could 1) just not or 2) do the back and forth with Claude myself and cut out the middle man.<p>I have a sneaking suspicion that people are having some agent check out 500 repos and just prompting with “find a bug in this repo and fix it” and submitting the results blindly.<p>Edit: typos, on mobile</p>
]]></description><pubDate>Mon, 12 Oct 2026 15:44:59 +0000</pubDate><link>https://news.ycombinator.com/item?id=50058097</link><dc:creator>mrkaye97</dc:creator><comments>https://news.ycombinator.com/item?id=50058097</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=50058097</guid></item><item><title><![CDATA[New comment by mrkaye97 in "Show HN: Jev Plays Pokémon Red"]]></title><description><![CDATA[
<p>I think “significantly dumber” might include traditional RL, and thus no tokens at all</p>
]]></description><pubDate>Sat, 26 Sep 2026 08:00:49 +0000</pubDate><link>https://news.ycombinator.com/item?id=49854268</link><dc:creator>mrkaye97</dc:creator><comments>https://news.ycombinator.com/item?id=49854268</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=49854268</guid></item><item><title><![CDATA[Why Spotify Is Not Using Bayesian A/B Testing]]></title><description><![CDATA[
<p>Article URL: <a href="https://engineering.atspotify.com/2026/9/why-spotify-is-not-using-bayesian-a-b-testing">https://engineering.atspotify.com/2026/9/why-spotify-is-not-using-bayesian-a-b-testing</a></p>
<p>Comments URL: <a href="https://news.ycombinator.com/item?id=49615505">https://news.ycombinator.com/item?id=49615505</a></p>
<p>Points: 2</p>
<p># Comments: 0</p>
]]></description><pubDate>Tue, 08 Sep 2026 19:23:05 +0000</pubDate><link>https://engineering.atspotify.com/2026/9/why-spotify-is-not-using-bayesian-a-b-testing</link><dc:creator>mrkaye97</dc:creator><comments>https://news.ycombinator.com/item?id=49615505</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=49615505</guid></item><item><title><![CDATA[New comment by mrkaye97 in "Incident with Github.com"]]></title><description><![CDATA[
<p>Could be - I’d also argue the time cost to the engineers to switch is pretty significant too, regardless of the monetary cost</p>
]]></description><pubDate>Mon, 17 Aug 2026 14:08:20 +0000</pubDate><link>https://news.ycombinator.com/item?id=49331228</link><dc:creator>mrkaye97</dc:creator><comments>https://news.ycombinator.com/item?id=49331228</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=49331228</guid></item><item><title><![CDATA[New comment by mrkaye97 in "Incident with Github.com"]]></title><description><![CDATA[
<p>I think the clear reason is even with their unreliability, the cost of migrating off of GitHub for _most_ places is not worth it, and so companies don't / won't (yet)</p>
]]></description><pubDate>Mon, 17 Aug 2026 13:52:44 +0000</pubDate><link>https://news.ycombinator.com/item?id=49330894</link><dc:creator>mrkaye97</dc:creator><comments>https://news.ycombinator.com/item?id=49330894</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=49330894</guid></item><item><title><![CDATA[New comment by mrkaye97 in "Go 1.27 Interactive Tour"]]></title><description><![CDATA[
<p>Ah yep! I should’ve given a Go example. In Python we use decorators because it’s what’s in fashion, but in Go and TypeScript you just create a `NewTask()` e.g. where you pass a function (as well as other args), and it returns something with e.g. a `Result` method. And that result method, which is generic, is the thing that’s really nice to have typed.<p>Agreed codegen works fine here too by the way, but it feels kind of clunky to me (it’s something I don’t love about Go, although I know it’s also an important part of the ecosystem and is popular).</p>
]]></description><pubDate>Mon, 03 Aug 2026 02:55:51 +0000</pubDate><link>https://news.ycombinator.com/item?id=49150708</link><dc:creator>mrkaye97</dc:creator><comments>https://news.ycombinator.com/item?id=49150708</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=49150708</guid></item><item><title><![CDATA[New comment by mrkaye97 in "Go 1.27 Interactive Tour"]]></title><description><![CDATA[
<p>As a bit of a counterpoint, I help maintain SDKs for Hatchet in multiple languages (largely Python and TS, but also contribute to Go a bit too) that benefit heavily from generics. It's especially useful for things where users of the SDK provide e.g. return types from functions they register, and we want those to be strongly-typed elsewhere in the codebase. A simple Python example is:<p><pre><code>  @hatchet.task()
  async def my_task(...) -> SomeOutputType:
    return SomeOutputType(...)

  ## imagine this is an API handler:
  @api_handler("/some/path")
  async def handle() -> ...:
    result = await my_task.run(...)

    # we now know `result` is of type `SomeOutputType` without any sort of type assertion, etc.
</code></pre>
Admittedly, I'm not a Go expert, nor am I a programming languages expert. But I do feel that this type of behavior is really only possible (with nice ergonomics) with generics, and it's always been upsetting to me that somehow Python's type system feels more complete than Go's in this arena, or at least it has until more recently.<p>Maybe this falls into the 1% of cases, but I'd suspect this sort of thing is more common than that.<p>Edit: I should have mentioned - in the Python example above, `@hatchet.task` is generic with the output type of the task it wraps.</p>
]]></description><pubDate>Sun, 02 Aug 2026 21:22:22 +0000</pubDate><link>https://news.ycombinator.com/item?id=49148477</link><dc:creator>mrkaye97</dc:creator><comments>https://news.ycombinator.com/item?id=49148477</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=49148477</guid></item><item><title><![CDATA[All Soda Yearns to Be Red]]></title><description><![CDATA[
<p>Article URL: <a href="https://haterade.substack.com/p/all-soda-yearns-to-be-red">https://haterade.substack.com/p/all-soda-yearns-to-be-red</a></p>
<p>Comments URL: <a href="https://news.ycombinator.com/item?id=49104774">https://news.ycombinator.com/item?id=49104774</a></p>
<p>Points: 6</p>
<p># Comments: 1</p>
]]></description><pubDate>Thu, 30 Jul 2026 00:24:49 +0000</pubDate><link>https://haterade.substack.com/p/all-soda-yearns-to-be-red</link><dc:creator>mrkaye97</dc:creator><comments>https://news.ycombinator.com/item?id=49104774</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=49104774</guid></item><item><title><![CDATA[New comment by mrkaye97 in "I'm sorry I didn't respond to your job application"]]></title><description><![CDATA[
<p>For what it's worth, Work at a Startup ostensibly does give you something like this on the hiring side, although it's been far from perfect in my experience. I suspect other "platforms" for job searching might have similar, but it'd be tougher in a dedicated ATS like Greenhouse or Lever or some such, since I imagine there are data privacy laws that limit their ability to "enrich" candidate data across companies, which LinkedIn, WaaS, etc. can bypass by having you make a profile</p>
]]></description><pubDate>Wed, 29 Jul 2026 03:27:10 +0000</pubDate><link>https://news.ycombinator.com/item?id=49093082</link><dc:creator>mrkaye97</dc:creator><comments>https://news.ycombinator.com/item?id=49093082</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=49093082</guid></item><item><title><![CDATA[I'm sorry I didn't respond to your job application]]></title><description><![CDATA[
<p>Article URL: <a href="https://xcancel.com/i/article/2082172350037209264">https://xcancel.com/i/article/2082172350037209264</a></p>
<p>Comments URL: <a href="https://news.ycombinator.com/item?id=49088207">https://news.ycombinator.com/item?id=49088207</a></p>
<p>Points: 8</p>
<p># Comments: 2</p>
]]></description><pubDate>Tue, 28 Jul 2026 18:46:47 +0000</pubDate><link>https://xcancel.com/i/article/2082172350037209264</link><dc:creator>mrkaye97</dc:creator><comments>https://news.ycombinator.com/item?id=49088207</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=49088207</guid></item><item><title><![CDATA[New comment by mrkaye97 in "The startup's Postgres survival guide"]]></title><description><![CDATA[
<p>Indeed! Materialized views won't work here as PG doesn't support "always updated" / "auto-refreshing" materialized views natively (although you can get something similar with extensions like TimescaleDB). Left joins are the thing we're often trying to avoid though, especially when the join conditions are involved, as we've seen the planner just make poor decisions in the past at unpredictable times. That's exactly the sort of situation where you might reach for this sort of trick</p>
]]></description><pubDate>Thu, 23 Jul 2026 21:15:08 +0000</pubDate><link>https://news.ycombinator.com/item?id=49028145</link><dc:creator>mrkaye97</dc:creator><comments>https://news.ycombinator.com/item?id=49028145</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=49028145</guid></item><item><title><![CDATA[New comment by mrkaye97 in "The startup's Postgres survival guide"]]></title><description><![CDATA[
<p>+1 to this - I've griped pretty often that FastAPI's documentation implicitly recommends this (<a href="https://fastapi.tiangolo.com/tutorial/sql-databases/#create-a-hero" rel="nofollow">https://fastapi.tiangolo.com/tutorial/sql-databases/#create-...</a>) by suggesting using dependency injection to manage database connections, only to start seeing connection pool exhausted errors as soon as the number of concurrent requests exceeds the number of allowed connections.</p>
]]></description><pubDate>Wed, 22 Jul 2026 18:32:52 +0000</pubDate><link>https://news.ycombinator.com/item?id=49011319</link><dc:creator>mrkaye97</dc:creator><comments>https://news.ycombinator.com/item?id=49011319</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=49011319</guid></item><item><title><![CDATA[New comment by mrkaye97 in "The startup's Postgres survival guide"]]></title><description><![CDATA[
<p>Thanks! I should have clarified - we haven't been using this pattern for selective joins. Strongly agreed that pulling down extra data into memory and then doing the filtering doesn't make much sense. We've found it useful in the case where it's hard to write a query where the planner _does_ make good decisions because of the complexity of the join conditions (e.g. joins using cases, a boolean "or", or something similar).<p>Also, to re-emphasize: we do this rarely, but it's been helpful the times we've done it</p>
]]></description><pubDate>Wed, 22 Jul 2026 17:19:35 +0000</pubDate><link>https://news.ycombinator.com/item?id=49010148</link><dc:creator>mrkaye97</dc:creator><comments>https://news.ycombinator.com/item?id=49010148</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=49010148</guid></item><item><title><![CDATA[New comment by mrkaye97 in "The startup's Postgres survival guide"]]></title><description><![CDATA[
<p>(Matt from Hatchet - Hi Ulysse :wave:)<p>I, at least, don't know of a perfect fix here. Re: the original comment - Postgres will also error on deadlocks after it detects them without setting your isolation level to Serializable, but I agree with you that often retrying doesn't help, and could even cause cascading / snowballing failures if you have a backlog of retries piling up because of deadlocks.<p>I don't know if there's a good solution, really. We've fixed deadlocks incrementally over time as we've found them, which has worked pretty well, but of course that means also needing to deal with the "finding" part, which has generally come in the form of lots of `deadlock detected` log lines and errors (and retries accompanying those).<p>One thing that might be worth auditing is why there are two different bits of application code that are updating the same rows in two different tables in different orders. I know it's a contrived example, but it seems like it could be a code smell to me. Maybe this is the kind of thing that arises when two different subteams are working on the same database and are largely siloed.<p>Alexander will likely have more thoughts here as well, just my two cents!</p>
]]></description><pubDate>Wed, 22 Jul 2026 17:15:39 +0000</pubDate><link>https://news.ycombinator.com/item?id=49010091</link><dc:creator>mrkaye97</dc:creator><comments>https://news.ycombinator.com/item?id=49010091</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=49010091</guid></item><item><title><![CDATA[New comment by mrkaye97 in "A Second-Grade Teacher Revived a Beloved Video Game"]]></title><description><![CDATA[
<p>agreed :)</p>
]]></description><pubDate>Wed, 22 Jul 2026 15:46:13 +0000</pubDate><link>https://news.ycombinator.com/item?id=49008657</link><dc:creator>mrkaye97</dc:creator><comments>https://news.ycombinator.com/item?id=49008657</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=49008657</guid></item><item><title><![CDATA[New comment by mrkaye97 in "The startup's Postgres survival guide"]]></title><description><![CDATA[
<p>(Matt from Hatchet)<p>One small addendum here is we've had a lot of success performing joins in memory in a few very specific situations where the alternative is a single, often overcomplicated query. I've heard / seen advice many times in the past about performing fewer round trips to the database being something to optimize for (often good advice!). Sometimes this is taken too far, resulting in overly-complex queries requiring complicated JOIN or UNION logic, CASE logic, and so on.<p>We have a couple of places in our codebase where we perform two or more simpler queries independently instead, and then loop through their results and use maps to match the relevant rows. Conventional wisdom often suggests this path will hurt performance because of the extra database round trip in addition to the loops needed to perform the join, but it is actually beneficial in these cases because of more predictable query planning behavior. We use this trick sparingly, but it can be helpful in a pinch.<p>Note that some ORMs will also do this for you in the background, which we don't necessarily endorse, and we try to use this sparingly when writing a single query on its own is not realistic.</p>
]]></description><pubDate>Wed, 22 Jul 2026 15:36:15 +0000</pubDate><link>https://news.ycombinator.com/item?id=49008486</link><dc:creator>mrkaye97</dc:creator><comments>https://news.ycombinator.com/item?id=49008486</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=49008486</guid></item><item><title><![CDATA[New comment by mrkaye97 in "A Second-Grade Teacher Revived a Beloved Video Game"]]></title><description><![CDATA[
<p>Gift link, if you'd like to use it: <a href="https://www.nytimes.com/2026/07/13/style/backyard-baseball-video-game-teacher.html?unlocked_article_code=1.xVA.5ge2.Ov2oVQH__OG5&smid=url-share" rel="nofollow">https://www.nytimes.com/2026/07/13/style/backyard-baseball-v...</a></p>
]]></description><pubDate>Mon, 13 Jul 2026 23:26:08 +0000</pubDate><link>https://news.ycombinator.com/item?id=48900315</link><dc:creator>mrkaye97</dc:creator><comments>https://news.ycombinator.com/item?id=48900315</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=48900315</guid></item><item><title><![CDATA[New comment by mrkaye97 in "A Second-Grade Teacher Revived a Beloved Video Game"]]></title><description><![CDATA[
<p>I was just going to post this, and searched first and landed here. Not much to say beyond that reading this piece made me so happy, and brought back tons of nostalgia for days I'd long forgotten.</p>
]]></description><pubDate>Mon, 13 Jul 2026 23:25:38 +0000</pubDate><link>https://news.ycombinator.com/item?id=48900312</link><dc:creator>mrkaye97</dc:creator><comments>https://news.ycombinator.com/item?id=48900312</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=48900312</guid></item></channel></rss>