HNHacker News
TopNewBestAskShowJobs

tbarbugli

831 karma · joined June 19, 2012

Founder & CTO getstream.io
submissionscomments
tbarbugli··on Pgmigrate – Pgcopydb Rewritten in Go
After fighting crash after crash with pgcopydb v17 and v18 I decided to bite the bullet and write my own in Golang.

I picked Golang because most issues with pgcopydb were related to concurrency bugs and memory leaks. There is nothing in this tool that requires C, Golang is totally fine and comes with a good concurrency built-in and a garbage collector.

A few more notable improvements:

- I use binary format instead wal2json - Optional control plane with web interface - CDC replay runs concurrently (partition by fk)

tbarbugli··on Pricing Changes for GitHub Actions
At getstream.io we ended up running Github Actions on Hetzner. The end-result is 4x faster builds for 3x less $$$.

Running workers ourselves was the last resort, we tried everything else but it was impossible to get fast (and consistent) build times otherwise.

In a way we are now going to get charged for Github's poor execution on Actions.

tbarbugli··on An illustrated guide to OAuth
> anyone can see what URLs you are visiting

this is not correct with HTTPS (query params are not part of the plain text)

tbarbugli··on Cerebras Code
ofc it depends where you would hire, for me (NL) its above 100x more efficient
tbarbugli··on Manticore Search: Fast, efficient, drop-in replacement for Elasticsearch
I agree, only reason I read the project readme was to see the drop-in explainer.

Very misleading title

tbarbugli··on Show HN: Comparing product rankings by OpenAI, Anthropic, and Perplexity
searching for running shoes returns a mix of brands and shoe models
tbarbugli··on Doge Plans to Rebuild SSA Codebase in Months
Plenty of engineers on the market can work professionally in C. Only a small amount of people can write Cobol (or is willing to given that is almost useless). That alone is a good reason to consider Cobol a legacy language and throw away a codebase written in Cobol.
tbarbugli··on The hidden complexity of scaling WebSockets
> At Compose, every WebSocket message starts with a fixed 2-byte type prefix for categorizing messages.

some of the complexity is self-inflected by ignoring KISS principle

tbarbugli··on Understanding gRPC, OpenAPI and REST and when to use them in API design (2020)
In my experience, only Swift has a generator that produces good-quality code. Ironically, it’s developed by Apple.
tbarbugli··on Kvrocks: Redis-compatible distributed key value NoSQL database
The list of supported commands looks quite impressive https://kvrocks.apache.org/docs/supported-commands#script-co...
tbarbugli··on Distributed Transactions at Scale in Amazon DynamoDB (2023)
Using DynamoDB in 2025 is such a weird proposition. Horrible dev experience, no decent clients/libs, complex pricing, weird scaling in/out mechanism, slow, it only works well for well defined use-cases.
tbarbugli··on Gemini 2.0: our new AI model for the agentic era
Google is not winning on cloud, AWS is winning and MS gaining ground.
tbarbugli··on How to use Postgres for everything
> Use Postgres for Fulltext Search instead of Elastic

pg fulltext search is very limited and user unfriendly, not a great suggestion here

tbarbugli··on AWS announces Aurora DSQL, a new distributed SQL database
Ideally it does not run on the awful EBS storage (slow and expensive).
tbarbugli··on WebSockets cost us $1M on our AWS bill
Possibly because they capture the video from xvfb or similar (they run a headless browser to capture the video) so at that point the decoding already happened (webrtc?)
tbarbugli··on Bypassing airport security via SQL injection
Makes you wonder why there were no plane hijacks since 9/11. TSA does not seem a credible prevention mechanism given how easy it is to go around it.
tbarbugli··on Optimizing global message transit latency: a journey through TCP configuration
Nice article which matches my experience when it comes to optimizing for performance: Linux defaults are never good defaults and you don't need webscale or anything before you get bitten by them.

To make a few examples: on many distributions you get 1024 as the file limits, 4KB of shared memory (shmall) and Nagle's algorithm is enabled by default.

Another thing that we noticed at work (shameless plug to getstream.io) when it comes to tail latency for APIs / HTTP services:

- TLS over HTTP is annoyingly slow (too many roundtrips)

- Having edge nodes / POPs close to end-users greatly improves tail latency (and reduces latency related errors). This works incredibly well for simple relays (the "weak" link has lower latency)

- QUIC is awesome

tbarbugli··on CockroachDB license change
https://github.com/cockroachdb/cockroach/graphs/contributors
tbarbugli··on As an Employee, You Are Disposable (2023)
TL;DR it is a job
tbarbugli··on OpenAI and Microsoft Azure to deprecate GPT-4 32K
hosted on Vercel and Github...
tbarbugli··on 40 out of 60 German climate greening endavours fraudulent
isn't China producing more electricity with solar than all other countries combined (with solar)?
tbarbugli··on Heroku Postgres is now based on AWS Aurora
io2 is generally better than io1, one advantage is that you can scale storage size and IOPS independently. That being said, RDS with io2 is still worse than an ec2 instance with nvme (a lot worse)
tbarbugli··on Heroku Postgres is now based on AWS Aurora
RDS is such a depressing database option. It does not matter how much money you throw at it, its performance will always be limited by the awful disk IOPS. Luckily these days you can easily run PG on EC2 (or simply use CRDB).

Weird for Heroku to ignore this huge efficiency opportunity.

tbarbugli··on ElephantSQL Is Shutting Down
well, they shut this down probably because they cannot afford to keep a product that bring little revenue. I never heard of AWS retiring a product (I am excluding ancient stuff like VPC classic and SimpleDB, both had an upgrade path to something superior)
tbarbugli··on Skin in the Game
it increases the cost for the attacker, forging ID is expensive and against the law. It also leaves behind additional evidence that might be useful to investigators
tbarbugli··on Someone has been attempting to DDoS us for weeks and we do nothing
I think its around 1TB a day, but indeed still very small.
tbarbugli··on More powerful Go execution traces
we wrap all errors with a stack.Wrap function that adds stacktrace to the error. This allows us to add stacktraces to logs and err reporting tools like Sentry. Huge time saver
tbarbugli··on More powerful Go execution traces
you only do it when there is a not nil err + being able to have a stacktrace is worth more than whatever it costs is CPU
tbarbugli··on How Figma's databases team lived to tell the scale
Citus seems incredibly close to what they built, I wonder why they did not use it
tbarbugli··on Can flow batteries finally beat lithium?
I live in a mid-sized city in NL, lots of EVs here. 98% of these car are not charged at home.
Page 1 of 12Next →