<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: levkk</title><link>https://news.ycombinator.com/user?id=levkk</link><description>Hacker News RSS</description><docs>https://hnrss.org/</docs><generator>hnrss v2.1.1</generator><lastBuildDate>Thu, 23 Apr 2026 13:42:32 +0000</lastBuildDate><atom:link href="https://hnrss.org/user?id=levkk" rel="self" type="application/rss+xml"></atom:link><item><title><![CDATA[New comment by levkk in "Framework Laptop 13 Pro"]]></title><description><![CDATA[
<p>On top of it, intel chips are not competitive with apple silicon. Why buy a laptop that's 30% slower and uses more energy for the same price?</p>
]]></description><pubDate>Tue, 21 Apr 2026 19:13:28 +0000</pubDate><link>https://news.ycombinator.com/item?id=47853165</link><dc:creator>levkk</dc:creator><comments>https://news.ycombinator.com/item?id=47853165</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=47853165</guid></item><item><title><![CDATA[Shard Postgres with One Command]]></title><description><![CDATA[
<p>Article URL: <a href="https://pgdog.dev/blog/shard-postgres-with-one-command">https://pgdog.dev/blog/shard-postgres-with-one-command</a></p>
<p>Comments URL: <a href="https://news.ycombinator.com/item?id=47779689">https://news.ycombinator.com/item?id=47779689</a></p>
<p>Points: 1</p>
<p># Comments: 0</p>
]]></description><pubDate>Wed, 15 Apr 2026 14:41:05 +0000</pubDate><link>https://pgdog.dev/blog/shard-postgres-with-one-command</link><dc:creator>levkk</dc:creator><comments>https://news.ycombinator.com/item?id=47779689</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=47779689</guid></item><item><title><![CDATA[Reshard Button]]></title><description><![CDATA[
<p>Article URL: <a href="https://pgdog.dev/blog/reshard-button">https://pgdog.dev/blog/reshard-button</a></p>
<p>Comments URL: <a href="https://news.ycombinator.com/item?id=47765244">https://news.ycombinator.com/item?id=47765244</a></p>
<p>Points: 2</p>
<p># Comments: 0</p>
]]></description><pubDate>Tue, 14 Apr 2026 13:14:50 +0000</pubDate><link>https://pgdog.dev/blog/reshard-button</link><dc:creator>levkk</dc:creator><comments>https://news.ycombinator.com/item?id=47765244</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=47765244</guid></item><item><title><![CDATA[New comment by levkk in "Meta and TikTok let harmful content rise to drove engagement, say whistleblowers"]]></title><description><![CDATA[
<p>I'm paying for Netflix to do that as a feature. Instagram uses that to drive engagement to sell ads. Disabling personalized content on Netflix is a revenue-neutral choice. On Instagram, that would mean their ad revenue takes a huge dive. Apples aren't oranges.</p>
]]></description><pubDate>Tue, 17 Mar 2026 23:39:59 +0000</pubDate><link>https://news.ycombinator.com/item?id=47419849</link><dc:creator>levkk</dc:creator><comments>https://news.ycombinator.com/item?id=47419849</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=47419849</guid></item><item><title><![CDATA[New comment by levkk in "The dead Internet is not a theory anymore"]]></title><description><![CDATA[
<p>Lobsters is like that, basically a ghost town compared to Reddit. If you block engagement, you will succeed.</p>
]]></description><pubDate>Wed, 11 Mar 2026 20:57:02 +0000</pubDate><link>https://news.ycombinator.com/item?id=47341649</link><dc:creator>levkk</dc:creator><comments>https://news.ycombinator.com/item?id=47341649</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=47341649</guid></item><item><title><![CDATA[New comment by levkk in "Don't post generated/AI-edited comments. HN is for conversation between humans."]]></title><description><![CDATA[
<p>It's not clear to me how this is verifiable without constant hardware supervision. Even that'll get cracked, just like DVD encryption back in the day.<p>You almost need dedicated hardware that can't run any other software except a mechanical keyboard and make it communicate over an analog medium - something terribly expensive and inconvenient for AI farms to duplicate.</p>
]]></description><pubDate>Wed, 11 Mar 2026 20:00:29 +0000</pubDate><link>https://news.ycombinator.com/item?id=47340530</link><dc:creator>levkk</dc:creator><comments>https://news.ycombinator.com/item?id=47340530</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=47340530</guid></item><item><title><![CDATA[We fixed Postgres connection pooling on serverless with PgDog]]></title><description><![CDATA[
<p>Article URL: <a href="https://circleback.ai/blog/how-we-fixed-postgres-connection-pooling-on-serverless-with-pgdog">https://circleback.ai/blog/how-we-fixed-postgres-connection-pooling-on-serverless-with-pgdog</a></p>
<p>Comments URL: <a href="https://news.ycombinator.com/item?id=47279521">https://news.ycombinator.com/item?id=47279521</a></p>
<p>Points: 3</p>
<p># Comments: 0</p>
]]></description><pubDate>Fri, 06 Mar 2026 19:02:19 +0000</pubDate><link>https://circleback.ai/blog/how-we-fixed-postgres-connection-pooling-on-serverless-with-pgdog</link><dc:creator>levkk</dc:creator><comments>https://news.ycombinator.com/item?id=47279521</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=47279521</guid></item><item><title><![CDATA[New comment by levkk in "Claude Code wiped our production database with a Terraform command"]]></title><description><![CDATA[
<p>As the tool gets better, people trust it more. It's like Tesla's self-driving: "almost" works, and that's good enough for people to take their hands off the wheel, for better or for worse.<p>The "almost" part of automation is the issue + the marketing attached to it of course, to make it a product people want to buy. This is the expected outcome and is already priced in.</p>
]]></description><pubDate>Fri, 06 Mar 2026 18:43:56 +0000</pubDate><link>https://news.ycombinator.com/item?id=47279231</link><dc:creator>levkk</dc:creator><comments>https://news.ycombinator.com/item?id=47279231</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=47279231</guid></item><item><title><![CDATA[New comment by levkk in "Supertoast tables"]]></title><description><![CDATA[
<p>All queries run inside transactions, and a slow lane like S3 will cause delays, which will in turn block vacuum and cause more problems than it will solve. Most deployments of Postgres (e.g., RDS) won't let you install custom extensions either, although they do have their own S3 extension (which I wouldn't recommend you use).<p>The right place to manage this is either in the app or in a proxy, before the data touches Postgres.</p>
]]></description><pubDate>Fri, 06 Mar 2026 18:35:56 +0000</pubDate><link>https://news.ycombinator.com/item?id=47279115</link><dc:creator>levkk</dc:creator><comments>https://news.ycombinator.com/item?id=47279115</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=47279115</guid></item><item><title><![CDATA[New comment by levkk in "Better JIT for Postgres"]]></title><description><![CDATA[
<p>See prepared statements.</p>
]]></description><pubDate>Wed, 04 Mar 2026 13:23:47 +0000</pubDate><link>https://news.ycombinator.com/item?id=47247065</link><dc:creator>levkk</dc:creator><comments>https://news.ycombinator.com/item?id=47247065</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=47247065</guid></item><item><title><![CDATA[New comment by levkk in "What AI coding costs you"]]></title><description><![CDATA[
<p>Models don't learn. They retrain them periodically, but junior engineers learn much faster and constantly improve. If you stop learning, you will only be as good as the model.<p>I've been coding (software engineering, I guess) for close to 15 years. The models skill set is a comfortable L1 (intern), pushing L2 (junior). They are getting better, but at a snail pace compared to a human learning the same thing.</p>
]]></description><pubDate>Sat, 28 Feb 2026 15:27:21 +0000</pubDate><link>https://news.ycombinator.com/item?id=47196419</link><dc:creator>levkk</dc:creator><comments>https://news.ycombinator.com/item?id=47196419</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=47196419</guid></item><item><title><![CDATA[New comment by levkk in "Show HN: PgDog – Scale Postgres without changing the app"]]></title><description><![CDATA[
<p>Yeah! Take a look at our Docker demo in GitHub: <a href="https://github.com/pgdogdev/pgdog" rel="nofollow">https://github.com/pgdogdev/pgdog</a></p>
]]></description><pubDate>Fri, 27 Feb 2026 15:47:14 +0000</pubDate><link>https://news.ycombinator.com/item?id=47181871</link><dc:creator>levkk</dc:creator><comments>https://news.ycombinator.com/item?id=47181871</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=47181871</guid></item><item><title><![CDATA[New comment by levkk in "Show HN: PgDog – Scale Postgres without changing the app"]]></title><description><![CDATA[
<p>You can I believe. We only support BIGINT, VARCHAR and UUID for sharding, but all other data types are completely fine for passthrough, i.e. to be included and used in your queries.</p>
]]></description><pubDate>Wed, 25 Feb 2026 19:01:39 +0000</pubDate><link>https://news.ycombinator.com/item?id=47156147</link><dc:creator>levkk</dc:creator><comments>https://news.ycombinator.com/item?id=47156147</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=47156147</guid></item><item><title><![CDATA[New comment by levkk in "Show HN: PgDog – Scale Postgres without changing the app"]]></title><description><![CDATA[
<p>General statement about adoption. Last time we made a Show HN (9 months ago), it was a POC, running on my local. Now we're used in production by some pretty big companies, which is exciting!</p>
]]></description><pubDate>Wed, 25 Feb 2026 19:00:32 +0000</pubDate><link>https://news.ycombinator.com/item?id=47156132</link><dc:creator>levkk</dc:creator><comments>https://news.ycombinator.com/item?id=47156132</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=47156132</guid></item><item><title><![CDATA[New comment by levkk in "Show HN: PgDog – Scale Postgres without changing the app"]]></title><description><![CDATA[
<p>> Are there some specific standard Postgres test suites you run PgDog through to ensure it's compliant with Postgres standards?<p>That's right. We have many levels of testing: unit, integration, and acceptance, where we run the same query against an unsharded Postgres database and PgDog, and compare the result.<p>> what sort of techniques do shard-able NoSQL database employ which makes sharding inherently easier?<p>They remove features. For example, most of them don't support joins, so each table can be stored anywhere in the cluster with no data locality restrictions. There are no foreign key constraints either, or even transaction support. The list goes on. Ultimately, NoSQL databases are just K/V stores, with a fancy API. Scaling K/V is a solved problem.<p>> one table in shard 1 has a foreign key to a record in shard 2 how do you prevent Postgres from rejecting that<p>We don't, at least not yet. We can and will build a more sophisticated query engine that will validate constraints, but it may not always be completely atomic or performant. Cross-shard queries are expensive, because of the laws of physics. For example, if a query is executed outside of a transaction, validating the constraint could introduce a race condition, while in non-sharded Postgres, all queries run inside implicit transactions.</p>
]]></description><pubDate>Tue, 24 Feb 2026 17:39:22 +0000</pubDate><link>https://news.ycombinator.com/item?id=47140018</link><dc:creator>levkk</dc:creator><comments>https://news.ycombinator.com/item?id=47140018</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=47140018</guid></item><item><title><![CDATA[New comment by levkk in "Show HN: PgDog – Scale Postgres without changing the app"]]></title><description><![CDATA[
<p>That's exactly right, it's both of those. More containers / services means more connections to the DB, which themselves need to be pooled. More requests to the app require more connections as well.</p>
]]></description><pubDate>Tue, 24 Feb 2026 16:25:50 +0000</pubDate><link>https://news.ycombinator.com/item?id=47139037</link><dc:creator>levkk</dc:creator><comments>https://news.ycombinator.com/item?id=47139037</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=47139037</guid></item><item><title><![CDATA[New comment by levkk in "Show HN: PgDog – Scale Postgres without changing the app"]]></title><description><![CDATA[
<p>Technically yes. We only support BIGINT (and all other integers), VARCHAR and UUID for sharding keys, but we'll happily pass through any other data. If we need to process it, we'll need to parse it. To be clear: you can include PostGIS data in all queries, as long as we don't need it for sharding.<p>It's not too difficult to  add sharding on it if we wanted to. For example, we added support for pgvector a while back (L2/IVFlat-based sharding), so we can add any other data type, e.g., POLYGON for sharding on ST_Intersects, or for aggregates.</p>
]]></description><pubDate>Tue, 24 Feb 2026 04:54:36 +0000</pubDate><link>https://news.ycombinator.com/item?id=47133010</link><dc:creator>levkk</dc:creator><comments>https://news.ycombinator.com/item?id=47133010</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=47133010</guid></item><item><title><![CDATA[New comment by levkk in "Show HN: PgDog – Scale Postgres without changing the app"]]></title><description><![CDATA[
<p>A couple options come to mind:<p>1. Replicate shards into one beefy database and use that. Replication is cheaper than individual statements, so this can work for a while. The sink can be Postgres or another database like Clickhouse. At Instacart, we used Snowflake, with an in-house CDC pipeline. It worked well, but Snowflake was only usable for offline analytics, like BI / batch ML, and quite expensive. We'll add support for this eventually; we're getting pretty good at managing logical replication, including DDL changes.<p>2. Use the shards themselves and build a decent query engine on top. This is the Citus way and we know it's possible. Some queries could be expensive, but that's expected and can be solved with more compute.<p>In our architecture, shards going down for maintenance is an incident-level event, so we expect those to be up at all times, and failover to a standby if there is an issue. These days, most maintenance tasks can be done online in-place, or with blue/green, which we'll support as well. Zero downtime is the name of the game.</p>
]]></description><pubDate>Tue, 24 Feb 2026 03:36:03 +0000</pubDate><link>https://news.ycombinator.com/item?id=47132551</link><dc:creator>levkk</dc:creator><comments>https://news.ycombinator.com/item?id=47132551</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=47132551</guid></item><item><title><![CDATA[New comment by levkk in "Show HN: PgDog – Scale Postgres without changing the app"]]></title><description><![CDATA[
<p>I would say, over 100 Postgres connections, consider getting a connection pooler. Requests per second is highly variable. Postgres can serve a lot of them, as long as you keep the number of server connections low - that's what the pooler is for.<p>You can use pgbench to benchmark this on local pretty easily. The TPS curve will be interesting. At first, the connection pooler will cause a decrease and as you add more and more clients (-c parameter), you should see increasing benefits.<p>Ultimately, you add connection poolers when you don't have any other option: you have hundreds of app containers with dozens of connections each and Postgres can't handle it anymore, so it's a necessity really.<p>Load balancing becomes useful when you start adding read replicas. Sharding is necessary when you're approaching the vertical limit of your cloud provider (on the biggest instance or close).</p>
]]></description><pubDate>Tue, 24 Feb 2026 01:20:15 +0000</pubDate><link>https://news.ycombinator.com/item?id=47131616</link><dc:creator>levkk</dc:creator><comments>https://news.ycombinator.com/item?id=47131616</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=47131616</guid></item><item><title><![CDATA[New comment by levkk in "Show HN: PgDog – Scale Postgres without changing the app"]]></title><description><![CDATA[
<p>The current behavior unfortunately is to just let it through and return an incorrect result. We are adding more checks here and rely heavily on early adopters to have a decent test suite before launching their apps to prod.<p>That being said, we do have this [1]:<p><pre><code>    [general]
    expanded_explain = true

</code></pre>
This will modify the output of EXPLAIN queries to return routing decisions made by PgDog. If you see that your query is "direct-to-shard", i.e. goes to only one shard, you can be certain that it'll work as expected. These queries will talk to only one database and don't require us to manipulate the result or assemble results from multiple shards.<p>For cross-shard queries, you'll need your own integration tests, for now. We'll add checks here shortly. We have a decent CI suite as well, but it doesn't cover everything. Every time we look at that part of the code, we just end up adding more features, like the recent support for LIMIT x OFFSET y (PgDog rewrites it to LIMIT x + y and applies the offset calculation in memory).<p>We'll get there.<p>[1]: <a href="https://docs.pgdog.dev/features/sharding/explain/">https://docs.pgdog.dev/features/sharding/explain/</a></p>
]]></description><pubDate>Tue, 24 Feb 2026 01:13:49 +0000</pubDate><link>https://news.ycombinator.com/item?id=47131554</link><dc:creator>levkk</dc:creator><comments>https://news.ycombinator.com/item?id=47131554</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=47131554</guid></item></channel></rss>