HNHacker News
TopNewBestAskShowJobs

craigkerstiens

32,068 karma · joined September 20, 2008

I work at Snowflake building best in class Postgres via Crunchy Data, building Snowflake Postgres - a multi-cloud Postgres managed service. Previously I ran product at Azure Postgres, product at Citus data, and a number of product areas at Heroku.

You can find more thoughts from me: https://www.craigkerstiens.com

submissionscomments
craigkerstiens··on Launch HN: PeerDB (YC S23) – Fast, Native ETL/ELT for Postgres
Having dealt with ETL tooling that starts as "simple" and next thing you know is a few dedicated hires for what was supposed to be a simple pipeline, the phrase resonates a lot. If you've already built out a team to do this, tried multiple different tools, and then have something that just works I'd be all for it and it would have been just that to me frustrating to have gone down some other path first.

As a vision statement to me it resonates, now curious to give it a try and see if it fulfills on that vision.

craigkerstiens··on 17.1 Salesforce Towers worth of empty office space spread across SF
At the moment some of even the salesforce tower space is being sublet and used by weworks. At the moment it's really a great time to take advantage of some of the wework setups if you want to be in SF. The rates haven't changed much, yet the general space and quality of amenities to me seems not far off from some of the posh setups of Heroku or GitHub (maybe not quite that level but not far off).
craigkerstiens··on Ask HN: Could you share your personal blog here?
https://www.craigkerstiens.com/

Been up and down on cadence over the years, but a few posts that have shown up here.

- Give me back my monolith - https://www.craigkerstiens.com/2019/03/13/give-me-back-my-mo...

- Why Postgres - https://www.craigkerstiens.com/2012/04/30/why-postgres/

- Unfinished business with Postgres - https://www.craigkerstiens.com/2022/05/18/unfinished-busines...

- A guide to PR for startups - https://www.craigkerstiens.com/2015/07/21/a-guide-to-pr-for-...

craigkerstiens··on We raised a bunch of money
I'd dispute that MOST of the revenue is from Postgres, though it is likely a very large double digit percentage of revenue.

Their managed Postgres got an unfair advantage early on by being the default. With a new rails app you were just given a Heroku Postgres database. Heroku's Postgres offering was over 5 years ahead of RDS Postgres and a large part of the reason Amazon added support for Postgres for years they fought it, but eventually had to give into the constant customer request. Unfortunately that innovation of Postgres has stalled out a bit over time due to Salesforce starvation.

I do admit for what people think of as PaaS the Postgres revenue is significant, the part people would probably be surprised about is how much revenue the add-ons marketplace constitutes.

Interestingly New Relic got the same privileged experience in the early days and it resulted in the same type of revenue and mass adoption for New Relic.

craigkerstiens··on Guidance for Scaling: Reversible vs. irreversible decisions (2022)
Yep, still around, maybe should do a bit more personal blogging, but still here and not going anywhere any time soon :)
craigkerstiens··on PostgreSQL 16 Beta 1
For being "boring and stable" technology, Postgres 16 includes 200 features, which is on par with each of prior years releases. If you're looking for the full set of features it's available here - https://www.postgresql.org/docs/16/release-16.html.

Personal favorites on the list include:

- load_balance_hosts, which is an improvement to libpq so you can load balance across multiple Postgres instances.

- Logical replication on standbys

- pg_stat_io which is a new view that shows IO details.

craigkerstiens··on Ask HN: Best GitHub Repos
Personally love awesome Postgres - https://github.com/dhamaniasad/awesome-postgres
craigkerstiens··on Ask HN: It's 2023, how do you choose between MySQL and Postgres?
Having answered this a ton over the years, don't want to really take shots at MySQL. But Postgres stands in pretty unique ground.

1. It's solid as a really reach data platform (more than just a relational database). It's extension framework is quite unique compared to others. It's JSONB support was the first among other relational databases and is feature rich and performant. Multiple index types. Transactional DDL. The list goes on.

2. No central owner. A lot of open source is source code is open, but it's maintained by a central company.

3. I mentioned extensions, but really that is understated. It can do really advanced geospatial, full text search, time series, the list goes on.

Having explained this a ton of times first 10 years ago - https://www.craigkerstiens.com/2012/04/30/why-postgres/ and then again 5 years later with and updated version, most recently tried to capture more of this in an updated form on the Crunchy Data blog - https://www.crunchydata.com/why-postgres

craigkerstiens··on Heroku is down and they didn't know it for 90 minutes
Status issue now live for it - https://status.heroku.com/incidents/2539
craigkerstiens··on MySQL for Developers
The Art of PostgreSQL is great and super thorough. Knowing the author I can't fault him on price for the effort he put into it.

But also your point of students and developers in low income countries completely understand that side. It's a shameless plug but we built our Postgres playground with tutorials on a number of topics which are completely free aiming to help target some of that audience - https://www.crunchydata.com/developers/tutorials

craigkerstiens··on Reliability: It’s not great
Craig here from Crunchy Data. Not sure if you mean Crunchy Data is like RDS or isn't, in some cases we're very similar as a managed service provider. But are focused on a better developer experience and quality support.

We've had a number of customers that use us for the database and fly for the app. We had a user benchmark a number of heroku alternatives with various database providers and we were actually better response time than the unmanaged instances on fly themselves in addition to all other providers they tested - https://webstack.dancroak.com/

I won't speak for Fly, but we're big fans of them and think we pair quite well together.

craigkerstiens··on Tips for a healthier Postgres database (2021)
We're used to seeing performance gains, but also wow. This is great to hear, so thanks for sharing.

Dataclips equivalent is coming, we're hoping to release sometime in March.

craigkerstiens··on Tips for a healthier Postgres database (2021)
We don't do this so much a la carte for non customers, but definitely have it available for any of our existing customers. It's a common request, and we in general just stay very busy with it already. For customers I often tell them start with a support request to start... often in 15-30 minutes we can help give some insights that are helpful without having to go for a bucket of consulting hours, it just depends what and how much folks need.
craigkerstiens··on Tips for a healthier Postgres database (2021)
Product manager here from Crunchy, we aim to be quite in line with any of the major cloud providers. A number of customers have moved over from each of the major cloud providers to see better price to performance and quality of support.
craigkerstiens··on Tell HN: Heroku deleted my database with no warning
Think we (Crunchy Data) has been mentioned a few times below and have near feature parity with Heroku Postgres (only thing missing is dataclips coming this quarter). We've got folks that migrate the DB to us then use a whole host of other options including Fly, Railway, Render, etc.
craigkerstiens··on Tell HN: Heroku deleted my database with no warning
Having worked at Heroku and had a large part in building Heroku Postgres I do not recall this explicit policy, and it seems very squirrelly to me. Maybe this came in as a policy in recent years and it is the case, but still seems like hiding behind a policy as opposed to doing right by customers.

You could easily block all incoming connections to the database. For a free database of 10k rows there were no SLAs, and you would still technically be hosting the database.

Even taking a dump and emailing it to me feels like a safer option here.

There were better answers here for sure. If the honest answer is we just didn't feel the effort was worth it for this class of users at least own that.

craigkerstiens··on Choosing a Postgres primary key
While not a perfect solution to it, we use UUIDs throughout our application as IDs. But when we expose them in URLs or other places provide them as an encoded id (https://docs.crunchybridge.com/api-concepts/eid/). It at least makes them a little more compact, easier to copy/paste than UUIDs, and generally a cleaner look.
craigkerstiens··on Salesforce will lay off 10% of staff as part of restructuring
Layoffs suck no matter what. But from what I'm hearing they're giving some pretty good severance across the board and added time for tenure as well.

That said there are some bumpy things about how Salesforce seems to have handled this. In several cases managers and skip levels got no advance notice and were left scrambling in slack to see which team members no longer had active accounts. At the mass of a level it can be hard to be coordinated, but still a few hrs after there is a lot of unclarity internally to teams and what that means.

Within Heroku there are folks currently on call for production systems that were impacted. I feel for those impacted as well as those still there scrambling to ensure things continue to operate for customers. Seems that within the broader Salesforce org some pieces of it were done in a better fashion than some others we've recently seen, but also some pretty missteps still.

craigkerstiens··on How We Built Fly Postgres
Thanks for the feedback, we can do better. Will see if we can get fixed this week.
craigkerstiens··on How We Built Fly Postgres
Pricing is available at https://www.crunchydata.com/pricing/calculator. To add-on to that, we really liked the Fly pricing model where if you consumed less than X we wouldn't charge you. Recently we introduced a $10 a month plan and if you suspend the database while developing and your bill is under $5 you won't get charged.
craigkerstiens··on How We Built Fly Postgres
FWIW, managed providers can fully plug into fly just fine. Here's actually a profile of performance times [1] of Fly with various providers and configurations, along with a repo [2] to reproduce/create the same setup yourself.

1. https://webstack.dancroak.com/

2. https://github.com/croaky/webstack

*Disclaimer I work at one of those fully managed database providers.

craigkerstiens··on Ask HN: Azure has run out of compute – anyone else affected?
This is nothing new, Azure has been having capacity problem for over a year now[1]. Germany is not the only region affected at all, it's the case for a number of instance types in some of their larger US regions as well. In the meantime you can still commit to reserved instances, there is just not a guarantee of getting those instances when you need them.

The biggest advice I can give is 1. keep trying and grabbing capacity continuously, then run with more than what you need. 2. Explore migrating to another Azure region that runs less constrained. You mention a new region would be complicated, but it is likely much easier than another cloud.

1. https://www.zdnet.com/article/azures-capacity-limitations-ar...

craigkerstiens··on Pgproxy - Don’t make databases available on the public internet
Yeah, I beat the blog post out when I saw the repo go live. This is probably the better post, though wasn't sure if either would take.
craigkerstiens··on Pg_squeeze: An extension to fix table bloat
We looked at adding support for this on Crunchy Bridge, and at the time opt'ed for pg_repack as it seemed bit like too much complexity and magic going on with automatically running and the background worker. The promise of automatically and proactively managing bloat is definitely an exciting one so optimistic to see it continue to improve and evolve. We'll personally probably take a fresh look next year, but for now pg_repack has definitely been a big win for users.
craigkerstiens··on Learn Postgres at the Playground – Postgres compiled to WASM running in browser
The communication in and out is a bit of extra work at the moment. We've got some thoughts on improving this in the future, but it's a bit unclear on timeline and roadmap. We're excited to hear what people want from it and how they use it and that'll inform a lot of how we move forward.
craigkerstiens··on Learn Postgres at the Playground – Postgres compiled to WASM running in browser
Late to this, hadn't noticed until now. We have the license included and linked from from inside the VM as it starts up.
craigkerstiens··on Removal of Heroku free product plans
Give us a look at Crunchy Data, suspect we'll check most of the boxes on the Postgres side.
craigkerstiens··on Removal of Heroku free product plans
You were an amazing user, customer, and still to this day friend. It still blew my mind when you first shared you were writing a book on Heroku.
craigkerstiens··on Removal of Heroku free product plans
We're definitely thinking about a deeper integration here. As it stands you can absolutely connect a Crunchy Bridge instance to fly and we have folks that do just that, and it works for them.
craigkerstiens··on Removal of Heroku free product plans
There are some that have emulated it, but the team that was there and created Heroku cared deeply about developer experience. When you just "clone" that you miss pieces, one PM friend that I worked with at Heroku called them papercuts. We would obsess over such things and the quality of something being shipped.

Even now if you emulate that it's one thing, but Heroku has been frozen in time for at least the last 5 years, maybe closer to 7-8 years. There was more to do and more to improve and advance, and it stalled out for reasons. Now just being a clone wouldn't be enough you need to continue advancing the experience.

← PreviousPage 2 of 17Next →