Bertoldo Klinger retweeted
🚨🚨🚨 ATENÇÃO 🚨🚨🚨
HOJE É DOMINGO DIA DE FICAR TRISTE MAS VOCÊ NÃO PRECISA FICAR TRISTE PORQUE A RINHA DE BACKEND 2026 ESTÁ LANÇAAAAAADA PARA VOCÊ NÃO FICAR TRISTE!
Detalhes abaixo 👇
RT do amor, por favor.
Bertoldo Klinger retweeted
Ao meu ver algumas coisas ainda importam muito em código:
- pontos de observabilidade
- tratamento de erro
- programação assincrona
- programação concorrente
- programação paralela
- Arquitetura de código orientada à AI
O resto é o de menos (paradigma, minuncias, clean code, clean arc, qlqr coisa de SOLID que nao seja o S, etc)
ver alguns amigos formando na faculdade da um FOMO horrivel, mas escolhas são escolhas, escolhi postergar e to pagando agora
Bertoldo Klinger retweeted
Bun is joining Anthropic!
bun.com/blog/bun-joins-anthr…
Bertoldo Klinger retweeted
Lista de assuntos de SQL q poderiam ter material/debates etc:
- Indexação (B-tree, hash, full-text, Spatial, clustered, skip scan, invisible index etc)
- Locks (row level, mvcc, for update, for share, advisory locks)
- Scaling via Threads(mysql) x scaling via processos(PG)
- Particionamento(range, list hash etc)
- Base quente x Base fria
- Otimização de Query(explain, analyze, buffers, verbose)
- Procedures, Triggers, praticas mais antigas de desnevolvimento
- Concorrência, operações bloqueantes etc
- AWS RDS x AWS Aurora
- Sharding
- Global Tables
- Segurança e SQL
- ORMs, QueryBuilders
- Migrations e boas práticas
- Normalização e Denormalização (com exemplos de N1, N2, N3)
- Multi-Tenancy
- Ledger
- Event Source
- Parallel Query
- Vacuum
Sei lá kkkkkkk.
Muitos desses assuntos eu sei só da existência ou conceito básico.
Alguns claro, principalmente mais alto nível eu sei mais.
Bertoldo Klinger retweeted
Replying to @BenjDicken
Truth. Be the schema owner and query coach, not the human index. Teach EXPLAIN, add query SLOs, kill ORM footguns, automate backups and cost alarms. The one who controls migrations quietly controls product scope.
é foda, quando o prazo é fixo, ou corta escopo ou mata qualidade(debito técnico gigante), e eu n quero matar qualidade...
ai vira uma queda de braço interminavel com o po negociando feature/escopo
Bertoldo Klinger retweeted
New post 🎉
Going back to my roots on writing about the inner workings of things, a breakdown of key-value databases and how you might make one from scratch:
nan.fyi/database
Bertoldo Klinger retweeted
Any component can fail at any time in distributed systems.
How do you communicate in the face of unreliability? It's not easy!
This is classically known as the "two generals problem" and is a great way to think about communicating over unreliable channels.
General A and general B are in separate camps with their armies, and need to coordinate a time of attack via only on-foot messengers. If A sends the message "attack at dawn!" to B and never gets a reply, A doesn't know what happened! The messenger may have never made it to B, or B received the message and the messenger was captured on the return journey.
The two generals problem is actually proven to be UNSOLVABLE. Silly as it may seem, the challenge is similar for servers coordinating over TCP in a data center.
Even between just two nodes, if one node doesn't receive a reply to its message, there are many reasons it could have happened.
This is one of the main jobs of a distributed systems engineer: designing reliable systems in the face of unreliability.
Bertoldo Klinger retweeted
LeetCode, but for Linux, Docker, and Kubernetes? 🧐
Check out my collection of carefully crafted practical problems - with automated checks, helpful hints, and step-by-step solutions: labs.iximiuz.com/challenges
A hands-on challenge a day keeps skill rot away.
Bertoldo Klinger retweeted
API concepts that are discussed in interviews , don't skip these if you are a backend dev :
1. Idempotency: Know why PUT/DELETE are idempotent but POST isn’t. Helps avoid accidental double writes.
2. Pagination: Offset works until scale hits. Cursor/keyset is what you need for big data sets.
3. Versioning: URI vs Header vs Query param. There’s no one right way, just tradeoffs.
4. Rate limiting: Token bucket > naive fixed window if you care about fairness.
5. Error contracts: 400 (bad request) ≠ 422 (validation issue) ≠ 409 (conflict). Don’t just throw 500 everywhere.
6. Caching: ETag + Cache-Control save you from unnecessary DB load.
7. Security: JWTs expire for a reason. Don’t stuff user PII inside them.
8. N+1 Queries: Kill them early. Use batching or joins when returning nested resources.
9. Docs: OpenAPI/Swagger is not optional.
10. Consistency: Sometimes cached data is good enough.
Bertoldo Klinger retweeted
My Coding Guidelines:
TypeScript/JavaScript:
- Never use any; Almost never use "as".
- Aim for e2e type-safety; The sooner you have it, the better your life will be.
- Let the compiler infer response types whenever possible.
- Always use named exports; Don't use default exports unless you have to.
- Avoid barrel exports unless you're writing a lib;
- Prefer await/async over Promise().then()
- Unused vars should start with _ (or never exist at all);
- Prefer string literals over string concatenation.
- Don't abbreviate; use descriptive names.
- Always use early return over if-else.
- Prefer hash-lists over switch-case.
- Follow the programming language naming conventions (SNAKE_CAPS for constants, functions as camelCase, file names as kebab-case)
React:
- Don't declare constants or functions inside components; keep them pure.
- Don't fetch data in useEffect, use React Query.
- Don't use magic strings for cache tags; use an enum/factory.
- Don't use magic numbers/strings at all;
- Learn how to use the React DevTools.
Software Programming;
- Never pre-optimize without a reason.
- Initial tasks of a project should be:
- e2e type-safety
- observability
- ci/cd pipelines
- Comments are unnecessary 98% of the time, convert them to be a function/variable instead.
- Don't write pure SQL strings, query-builders help with type-safety and SQL-injection protection.
- Learn how to use HighOrderFunctions for monitoring/error handling/profiling
- Get it working 1st -> Write tests to ensure it's working -> Refactor/cleanup/import code -> Re-run the tests.
- Always refactor before pushing
- Open PR's as draft
- Always review before changing them to ready
Testing:
- Always test behavior, never test implementation
- Don't use should, use 3rd person verbs
- Write a test for each bug you fix, you'll never have to fix it again.
- Abuse the describe clauses
Writing:
- Cut the bullshit, be concise, don't waste readers time
- Prefer active voice: "We fixed the bug" is better than "The bug was fixed by us"
- Prefer short sentences; 1 idea = 1 sentence.
- Be human, you're a person writing to another person.
Have fun

























