<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: patrickkidger</title><link>https://news.ycombinator.com/user?id=patrickkidger</link><description>Hacker News RSS</description><docs>https://hnrss.org/</docs><generator>hnrss v2.1.1</generator><lastBuildDate>Thu, 02 Jul 2026 17:02:44 +0000</lastBuildDate><atom:link href="https://hnrss.org/user?id=patrickkidger" rel="self" type="application/rss+xml"></atom:link><item><title><![CDATA[New comment by patrickkidger in "Ask HN: Who is hiring? (July 2026)"]]></title><description><![CDATA[
<p>The Tiny Pharma Company | Founding Scientist | London/Zurich<p><a href="https://tinypharma.bio/jobs/" rel="nofollow">https://tinypharma.bio/jobs/</a><p>AI+pharma startup, and each person owns a program, from concept to clinic. (Further details omitted, still in stealth.) We hire anyone exceptional in AIxBio, we don't look to fill defined roles.<p>Founding team (including me! <a href="https://kidger.site" rel="nofollow">https://kidger.site</a>) are ex-{Cradle, Google, Oxford, ETH}, backgrounds in protein language models, antibody design, JAX scientific ecosystem, neural differential equations.<p>"RenTech of pharma"!<p>:)</p>
]]></description><pubDate>Wed, 01 Jul 2026 19:18:17 +0000</pubDate><link>https://news.ycombinator.com/item?id=48751825</link><dc:creator>patrickkidger</dc:creator><comments>https://news.ycombinator.com/item?id=48751825</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=48751825</guid></item><item><title><![CDATA[New comment by patrickkidger in "An idiot’s guide to lead optimisation for proteins"]]></title><description><![CDATA[
<p>I'll offer a +1 to the sibling comment here.<p>Yeah it's totally true you can't build a one-size-fits-all foundation model, the data just isn't there. But also... no-one needs that. It's totally fine to tweak a foundation model for any individual problem, and <i>that's</i> the bulk of what is being described in the linked blog post / in the underlying paper.<p>FWIW whilst at Cradle we had a lot of doubts going into this. Like, thermostability is clearly evolutionarily correlated so it was always pretty likely that by hook or by crook the models could do that correctly. But, binding? Aggregation? Not at all clear that the same principles should hold. And the exciting finding was that yes, yes they do.</p>
]]></description><pubDate>Wed, 13 May 2026 16:29:29 +0000</pubDate><link>https://news.ycombinator.com/item?id=48124096</link><dc:creator>patrickkidger</dc:creator><comments>https://news.ycombinator.com/item?id=48124096</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=48124096</guid></item><item><title><![CDATA[New comment by patrickkidger in "An idiot's guide to lead optimisation for proteins"]]></title><description><![CDATA[
<p>Oh hello Thomas, fancy seeing you here :D ex-Cradlers unite!</p>
]]></description><pubDate>Wed, 13 May 2026 16:25:22 +0000</pubDate><link>https://news.ycombinator.com/item?id=48124054</link><dc:creator>patrickkidger</dc:creator><comments>https://news.ycombinator.com/item?id=48124054</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=48124054</guid></item><item><title><![CDATA[New comment by patrickkidger in "An idiot’s guide to lead optimisation for proteins"]]></title><description><![CDATA[
<p>Oh heck, this is awesome to see on the front page! I wrote the underlying Cradle-1 paper that is being discussed!<p>I used to work for Cradle and writing this paper was the last thing I did before leaving – on good terms – to found my own startup. :D And we'll 100% be using Cradle for our lead optimization.<p>(On the off-chance: I'm at PEGS Boston this week chatting all things AI+antibodies, in particular for rare diseases. If this topic is of interest to any other protein+tech geeks here then send me an email, let's grab coffee.)</p>
]]></description><pubDate>Wed, 13 May 2026 16:24:15 +0000</pubDate><link>https://news.ycombinator.com/item?id=48124034</link><dc:creator>patrickkidger</dc:creator><comments>https://news.ycombinator.com/item?id=48124034</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=48124034</guid></item><item><title><![CDATA[New comment by patrickkidger in "Claude Managed Agents"]]></title><description><![CDATA[
<p>I'm not sure if I'm about to be the old man yelling at clouds, but Anthropic seem to be 'AWS-ifying'. An increasing suite of products which (at least to me) seem to undifferentiated amongst themselves, and all drawn from the same roulette wheel of words.<p>We've got Claude Managed Agents, Claude Agent SDK, Claude API, Claude Code, Claude Platform, Claude Cowork, Claude Enterprise, and plain old 'Claude'. And honourable mention to Claude Haiku/Sonnet/Opus 4.{whatever} as yet another thing with the same prefix. I feel like it's about once a week I see a new announcement here on HN about some new agentic Claude whatever-it-is.<p>I have pretty much retreated in the face of this to 'just the API + `pi` + Claude Opus 4.{most recent minor release}', as a surface area I can understand.</p>
]]></description><pubDate>Wed, 08 Apr 2026 19:11:32 +0000</pubDate><link>https://news.ycombinator.com/item?id=47694848</link><dc:creator>patrickkidger</dc:creator><comments>https://news.ycombinator.com/item?id=47694848</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=47694848</guid></item><item><title><![CDATA[New comment by patrickkidger in "Why don't you use dependent types?"]]></title><description><![CDATA[
<p>Quick heads-up that these days I recommend <a href="https://github.com/patrick-kidger/jaxtyping" rel="nofollow">https://github.com/patrick-kidger/jaxtyping</a> over the older repository you've linked there.<p>I learnt a lot the first time around, so the newer one is much better :)</p>
]]></description><pubDate>Sun, 02 Nov 2025 22:09:26 +0000</pubDate><link>https://news.ycombinator.com/item?id=45793860</link><dc:creator>patrickkidger</dc:creator><comments>https://news.ycombinator.com/item?id=45793860</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=45793860</guid></item><item><title><![CDATA[New comment by patrickkidger in "Typst: A Possible LaTeX Replacement"]]></title><description><![CDATA[
<p>I think so!<p>I've not tried a couple of things you mention (e.g. background images) but e.g. for dynamic placing there are libraries like <a href="https://typst.app/universe/package/meander" rel="nofollow">https://typst.app/universe/package/meander</a><p>The core of Typst is a pretty featureful well-thought-out FP language. This makes expressing libraries for any piece of functionality very pleasant.</p>
]]></description><pubDate>Sun, 28 Sep 2025 11:13:33 +0000</pubDate><link>https://news.ycombinator.com/item?id=45403480</link><dc:creator>patrickkidger</dc:creator><comments>https://news.ycombinator.com/item?id=45403480</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=45403480</guid></item><item><title><![CDATA[New comment by patrickkidger in "Tinyio: A tiny (~200 line) event loop for Python"]]></title><description><![CDATA[
<p>It also applies to any .py file. (At least in practice with e.g. pyright)<p>That said, the documentation on this matter is close to nonexistent.</p>
]]></description><pubDate>Sun, 27 Jul 2025 07:03:57 +0000</pubDate><link>https://news.ycombinator.com/item?id=44699405</link><dc:creator>patrickkidger</dc:creator><comments>https://news.ycombinator.com/item?id=44699405</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=44699405</guid></item><item><title><![CDATA[New comment by patrickkidger in "Tinyio: A tiny (~200 line) event loop for Python"]]></title><description><![CDATA[
<p>Yup, you(/sibling comments) have it correct, it's to mark it as private.<p>Not sure where I got it from, it just seems clean. I don't think I see this super frequently in the ecosystem at large, although anything I've had a hand in will tend to use this style!</p>
]]></description><pubDate>Sun, 27 Jul 2025 07:02:07 +0000</pubDate><link>https://news.ycombinator.com/item?id=44699396</link><dc:creator>patrickkidger</dc:creator><comments>https://news.ycombinator.com/item?id=44699396</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=44699396</guid></item><item><title><![CDATA[New comment by patrickkidger in "Tinyio: A tiny (~200 line) event loop for Python"]]></title><description><![CDATA[
<p>This is how static type checkers are told that an imported object is part of the public API for that file. (In addition to anything else present in that file.)<p>C.f. "the intention here is that only names imported using the form X as X will be exported" from PEP484. [1]<p>I'm generally a fan of the style of putting all the implementation in private modules (whose names start with an underscore) and then using __init__.py files solely to declare the public API.<p>[1] <a href="https://peps.python.org/pep-0484/" rel="nofollow">https://peps.python.org/pep-0484/</a></p>
]]></description><pubDate>Sat, 26 Jul 2025 23:40:19 +0000</pubDate><link>https://news.ycombinator.com/item?id=44697785</link><dc:creator>patrickkidger</dc:creator><comments>https://news.ycombinator.com/item?id=44697785</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=44697785</guid></item><item><title><![CDATA[New comment by patrickkidger in "Tinyio: A tiny (~200 line) event loop for Python"]]></title><description><![CDATA[
<p>Oh neat! This is my library. Happy to answer any questions.<p>(Though it's really a pretty tiny library that just does what it says on the tin, not sure how many questions there can be. :D )</p>
]]></description><pubDate>Sat, 26 Jul 2025 23:07:50 +0000</pubDate><link>https://news.ycombinator.com/item?id=44697612</link><dc:creator>patrickkidger</dc:creator><comments>https://news.ycombinator.com/item?id=44697612</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=44697612</guid></item><item><title><![CDATA[Show HN: patdb: a snappy + easy + pretty TUI debugger for Python]]></title><description><![CDATA[
<p>Article URL: <a href="https://github.com/patrick-kidger/patdb">https://github.com/patrick-kidger/patdb</a></p>
<p>Comments URL: <a href="https://news.ycombinator.com/item?id=44193887">https://news.ycombinator.com/item?id=44193887</a></p>
<p>Points: 3</p>
<p># Comments: 0</p>
]]></description><pubDate>Thu, 05 Jun 2025 17:40:03 +0000</pubDate><link>https://github.com/patrick-kidger/patdb</link><dc:creator>patrickkidger</dc:creator><comments>https://news.ycombinator.com/item?id=44193887</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=44193887</guid></item><item><title><![CDATA[New comment by patrickkidger in "I don't like NumPy"]]></title><description><![CDATA[
<p>Went scrolling looking for this! Most of the article is about problems solved in JAX.<p>Also worth noting the Array API standard exists now. This is generally also trying to straighten out the sharp edges.</p>
]]></description><pubDate>Thu, 15 May 2025 19:10:38 +0000</pubDate><link>https://news.ycombinator.com/item?id=43998280</link><dc:creator>patrickkidger</dc:creator><comments>https://news.ycombinator.com/item?id=43998280</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=43998280</guid></item><item><title><![CDATA[New comment by patrickkidger in "VSCode's SSH agent is bananas"]]></title><description><![CDATA[
<p>> What open source alternatives?<p>Helix:<p><a href="https://github.com/helix-editor/helix/">https://github.com/helix-editor/helix/</a><p>Like vim, but already has an LSP etc out of the box. Things are already there so the config files are minimal.</p>
]]></description><pubDate>Sat, 08 Feb 2025 08:05:14 +0000</pubDate><link>https://news.ycombinator.com/item?id=42981324</link><dc:creator>patrickkidger</dc:creator><comments>https://news.ycombinator.com/item?id=42981324</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=42981324</guid></item><item><title><![CDATA[New comment by patrickkidger in "Apple Invites"]]></title><description><![CDATA[
<p>I have a US number and live in Switzerland. At least for me, I only receive SMS messages whenever I visit the US -- the rest of the time they're just dropped and I'll never see them.<p>(Doesn't really bother me, my friends and I all use WhatsApp/etc. anyway.)<p>n=1 though, maybe this is some quirk of my phone provider.</p>
]]></description><pubDate>Tue, 04 Feb 2025 21:46:04 +0000</pubDate><link>https://news.ycombinator.com/item?id=42939297</link><dc:creator>patrickkidger</dc:creator><comments>https://news.ycombinator.com/item?id=42939297</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=42939297</guid></item><item><title><![CDATA[New comment by patrickkidger in "How to solve computational science problems with AI: PINNs"]]></title><description><![CDATA[
<p>FWIW - I used to do research in this area - PINNs are a terribly overhyped idea.<p>See for example <a href="https://www.nature.com/articles/s42256-024-00897-5" rel="nofollow">https://www.nature.com/articles/s42256-024-00897-5</a><p>Classical solvers are very very good at solving PDEs. In contrast PINNs solve PDEs by... training a neural network. Not once, that can be used again later. But every single time you solve a new PDE!<p>You can vary this idea to try to fix it, but it's still really hard to make it better than any classical method.<p>As such the main use cases for PINNs -- they do have them! -- is to solve awkward stuff like high-dimensional PDEs or nonlocal operators or something. Here it's not that the PINNs got any better, it's just that all the classical solvers fall off a cliff.<p>---<p>Importantly -- none of the above applies to stuff like neural differential equations or neural closure models. These are genuinely really cool and have wide-ranging applications.! The difference is that PINNs are <i>numerical solvers</i>, whilst NDEs/NCMs are <i>techniques for modelling data</i>.<p>/rant ;)</p>
]]></description><pubDate>Wed, 22 Jan 2025 19:24:34 +0000</pubDate><link>https://news.ycombinator.com/item?id=42796502</link><dc:creator>patrickkidger</dc:creator><comments>https://news.ycombinator.com/item?id=42796502</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=42796502</guid></item><item><title><![CDATA['Real' Semantic Versioning]]></title><description><![CDATA[
<p>Article URL: <a href="https://kidger.site/thoughts/real-sem-ver/">https://kidger.site/thoughts/real-sem-ver/</a></p>
<p>Comments URL: <a href="https://news.ycombinator.com/item?id=42710816">https://news.ycombinator.com/item?id=42710816</a></p>
<p>Points: 2</p>
<p># Comments: 0</p>
]]></description><pubDate>Wed, 15 Jan 2025 13:59:22 +0000</pubDate><link>https://kidger.site/thoughts/real-sem-ver/</link><dc:creator>patrickkidger</dc:creator><comments>https://news.ycombinator.com/item?id=42710816</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=42710816</guid></item><item><title><![CDATA[New comment by patrickkidger in "Guide to mechanical keyboards"]]></title><description><![CDATA[
<p>Likewise, spending another comment just to agree. Both on the low profile and the low travel distance.<p>I've tried low-profile chocs and they still have too much travel! But I'm stuck with them as split keyboards are important for me just for the usual collection of wrist health reasons.<p>So I'm just waiting for Apple to make a split keyboard I guess :)</p>
]]></description><pubDate>Sun, 29 Dec 2024 15:49:24 +0000</pubDate><link>https://news.ycombinator.com/item?id=42540612</link><dc:creator>patrickkidger</dc:creator><comments>https://news.ycombinator.com/item?id=42540612</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=42540612</guid></item><item><title><![CDATA[New comment by patrickkidger in "Nyxt: The Hacker's Browser"]]></title><description><![CDATA[
<p>So why this over qutebrowser [1] ? (Which has been my go-to keyboard-first browser for a long time.) This isn't mentioned in the FAQ despite I think being the natural comparison.<p>[1] <a href="https://github.com/qutebrowser/qutebrowser">https://github.com/qutebrowser/qutebrowser</a></p>
]]></description><pubDate>Sun, 08 Dec 2024 06:48:24 +0000</pubDate><link>https://news.ycombinator.com/item?id=42355439</link><dc:creator>patrickkidger</dc:creator><comments>https://news.ycombinator.com/item?id=42355439</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=42355439</guid></item><item><title><![CDATA[New comment by patrickkidger in "Python type hints may not be not for me in practice"]]></title><description><![CDATA[
<p>You want runtime typechecking.<p>See either beartype [1] or typeguard [2]. And if you're doing any kind of array-based programming (JAX or not), then jaxtyping [3].<p>[1] <a href="https://github.com/beartype/beartype/">https://github.com/beartype/beartype/</a><p>[2] <a href="https://github.com/agronholm/typeguard">https://github.com/agronholm/typeguard</a><p>[3] <a href="https://github.com/patrick-kidger/jaxtyping">https://github.com/patrick-kidger/jaxtyping</a></p>
]]></description><pubDate>Wed, 27 Nov 2024 22:08:24 +0000</pubDate><link>https://news.ycombinator.com/item?id=42260293</link><dc:creator>patrickkidger</dc:creator><comments>https://news.ycombinator.com/item?id=42260293</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=42260293</guid></item></channel></rss>