
Technical Debt Broker. Vim, Ruby, PLT. CTO at @dextofficial
Sofia, Bulgaria
Joined July 2007
- Tweets6.9K
- Following114
- Followers2.1K
- Likes56
Stefan Kanev retweeted
there used to be a natural limit to how much you could huff your own farts, but now you can build factories to fart for you and huff until your mind can fold space
Stefan Kanev retweeted
I don't know whether AI will replace human programmers. But I know that when you die, you will meet Dijkstra, and He will not smile upon the ungrammatical prompt that you wrote to vibe an incorrect sort function with 300 unit tests locking in the logical errors for all eternity.
Stefan Kanev retweeted
wise words from the best systems engineer I've worked with:
"two things that make code actually maintainable:
1. reduce the layers a reader has to trace
2. reduce the state a reader has to hold in their head"
applies to every codebase. always.
Stefan Kanev retweeted
We had a discussion to replace Postgres with Cassandra because “we needed to scale”.
1. Ran a quick workload check
+ Peak traffic: ~250 reads/sec, ~40 writes/sec
+ Data size: 60-80 GB
+ Biggest pain: p95 latency spikes during a couple heavy queries
2. Did a simple cost + complexity comparison
+ Postgres (RDS) upgrade + read replica: cheaper and boring
+ Cassandra: more nodes, more ops, more tuning, more weird failure modes
+ Also you lose strong constraints and ad-hoc querying becomes pain
3. Measured the real bottleneck
+ Missing index on a high-cardinality filter
+ One endpoint doing N+1 queries
+ No connection pooling, app opened too many connections under load
+ Long transactions causing lock waits
4. Fixed the basics
+ Added the right composite index
+ Rewrote the N+1 into one query
+ Added PgBouncer and sane pool limits
+ Reduced transaction scope, moved slow work out of the request path
5. Result
+ p95 dropped from ~800ms to ~120ms
+ CPU stayed flat, no more connection storms
+ Zero new infra, zero new operational burden
Sometimes the boring solution is the right solution.
Most scaling “needs” are just missing indexes, bad query shapes, and no guardrails.
Client wanted to replace SQS with Kafka for better throughput.
Ran a cost comparison:
- SQS at their volume: $45/month
- MSK minimum cluster: $180/month
- Plus EBS storage for brokers
- Plus time managing Kafka operations
Their throughput needs: 100 messages/second.
Kept SQS. Added a dead letter queue they'd been missing.
Sometimes the boring solution is the right solution.
Stefan Kanev retweeted
I tried to explain why I don't believe the recent accusations toward my former teammates, as well as how the Ruby and Rails Infra team at Shopify operates and why it can be trusted.
byroot.github.io/opensource/…
Stefan Kanev retweeted
Rails is like you are given a race car. You just fly.
Nothing more consistent than a picture of @dhh himself to illustrate that for my next talk/keynote on Rails and productivity.
(Speaking at Mobile World Congress next week.)
Stefan Kanev retweeted
Something I like (among many other things) in @palkan_tula's book is its rationale about errors for some situations.
For example, validation of an internal model attribute should be strict: true (raises), because its violation means there is a bug in your code you want in your face to jump on it like a lion (my dramatism). There's no point in having a soft error message in `errors` as if the attribute came from a form, there is no end user to present that message to.
Or, authorization violations should raise. Yes. Because regular users shouldn't even be able to reach that spot. The view is responsible for hiding links, buttons, menu items, etc. well-intentioned users cannot access. Besides, people hacking your system do not need a fancy reponse, they only need go fuck themselves (my dramatism, again).
Stefan Kanev retweeted
"What one programmer can do in one month, two programmers can do in two months." - Fred Brooks
Stefan Kanev retweeted
Today I ran Turbo C++ 3.0 from 1992 in a DOSBox. It runs instantly, compiles instantly, steps instantly, syntax highlights instantly - even though DOSBox is emulating actual 386 speed.
It's crazy how much modern software underdelivers :(
Stefan Kanev retweeted
$433M money raised, and a $5.6bn valuation happened. Postman needs to do a lot more than request inspection to justify this. For these numbers to make any sense, they would need to do $1bn+ in ARR for a freaking API client utility...
Looking around, there are so many companies that are in deep trouble. They have raised a ton of money on crazy valuations they'll never grow into.
Stefan Kanev retweeted
Complaining that testing (in general) slows down software delivery is like complaining that brakes slow down a race car.
Stefan Kanev retweeted
3000 BCE: Imagine a hot shower...
1000: Wouldn't a hot shower be nice
1200: Wouldn't a hot shower be nice
1400: Wouldn't a hot shower be nice
1600: Wouldn't a hot shower be nice
1800: Wouldn't a hot shower be nice
2000: Ah, nice hot showers for all 🚿
2020: How about a cold shower?!





























