Andrzej Karaś
Senior Software Engineer
SaaS products · Backend systems · Software architecture · Browser extensions · Testing & reliability
Notes and lessons from building, testing and running software in production.
Featured
Designing for Graceful Failure by Separating Failure Domains
How 150k emails a day exhausted a shared quota for all our apps, and why splitting quotas per service lets your system fail gradually.
Using the Blocking webRequest API with Manifest V3
Manifest V3 removed blocking webRequest, but enterprise and self-hosted extensions can still use it. Here's how, and the catches.
Debugging Manifest V3 Browser Extensions
A simple trick to catch what your Manifest V3 service worker does right after start: delay the code so you can open DevTools in time.
Latest articles
Default Settings Are Production: Lessons from a Relay Rollout
We tested a new WebSocket relay by changing the default settings, and customers behind strict firewalls lost live sessions. What I learned from it.
Read more ⟶
Telling someone don't do it - considered harmful
What I learned when a code-review comment of mine was taken as an order: explain the why, and treat review comments as discussion.
Read more ⟶
The Devil's Advocate Technique
Before presenting a design, list the questions your CTO, teammates and other teams will ask, and answer them first.
Read more ⟶
How Not to Get Stuck When Solving a Problem
Stuck on a bug or feature? Timebox it, take breaks, rubber-duck it or ask a teammate, instead of sitting at your desk until it's solved.
Read more ⟶
When Is a Feature Really Done?
Implemented, reviewed, tested, deployed: the levels of "done" I've seen, and why your team needs a shared definition of done.
Read more ⟶