Felipe O. Carvalho's Avatar

Felipe O. Carvalho

@felipe.rs

SWE @ dbt Labs. Past: SDF, VoDa, Spotify. ApacheΒ Arrow/Databases/Compilers/DistSys. Rust/C++/OCaml/TLA+. πŸ‡§πŸ‡·Β β†’Β πŸ‡ΈπŸ‡ͺΒ β†’Β πŸŒŽ http://bento.me/felipe / https://felipe.rs

1,423
Followers
482
Following
1,022
Posts
26.03.2023
Joined
Posts Following

Latest posts by Felipe O. Carvalho @felipe.rs

Alright. Americans and their confusing colloquial use of the term β€œliberal”.

11.03.2026 00:43 πŸ‘ 0 πŸ” 0 πŸ’¬ 0 πŸ“Œ 0

Liberalism is too broad of a term. Hard for me to not connect the neoliberal ideas of Tatcher and Reagan to the conditions that helped fascism rise again.

08.03.2026 13:41 πŸ‘ 1 πŸ” 0 πŸ’¬ 1 πŸ“Œ 0

80-character line limit so you can review Claude Code output on your VT100 terminal and your phone.

27.02.2026 02:50 πŸ‘ 0 πŸ” 0 πŸ’¬ 0 πŸ“Œ 0

I opened YouTube this week and it recommended the web scale MongoDB video. Metadata says β€œ15 years ago” and that made me feel very old.

26.02.2026 04:19 πŸ‘ 2 πŸ” 0 πŸ’¬ 0 πŸ“Œ 0

AtΓ© eu que me interesso por finanΓ§as e investimentos acho insuportΓ‘vel.

18.02.2026 23:54 πŸ‘ 0 πŸ” 0 πŸ’¬ 0 πŸ“Œ 0
Post image

In Arrow C++, we have β€œlength” of arrays for the β€œcount” and buffers have β€œsize” in bytes. But things get confusing when STL code is mixed because vector::size() is the length/count and not the β€œsize” in bytes.

t.co/ZGkA8xvy8R

18.02.2026 19:48 πŸ‘ 1 πŸ” 0 πŸ’¬ 0 πŸ“Œ 0

Using Cap’n Proto in Rust to get zero-copy deserialization, but Codex insists on writing de/serialization functions that build a struct full of heap-allocated strings. Because that’s what dominates the training set of model and programmers everywhere.

18.02.2026 19:47 πŸ‘ 2 πŸ” 0 πŸ’¬ 0 πŸ“Œ 0

You might not like it, but I treat the computers I have at home as pets, not cattle.

16.02.2026 10:55 πŸ‘ 2 πŸ” 1 πŸ’¬ 0 πŸ“Œ 0

The year of Linux on the desktop because Windows and macOS window managers are terrible if you're supposed to loop through all the AI agents you're managing at work.

16.02.2026 00:53 πŸ‘ 3 πŸ” 0 πŸ’¬ 1 πŸ“Œ 0

Google Meet: "no one is here" before you join the meeting but only because it hasn't really loaded the response that lists who is in the meeting.

13.02.2026 20:18 πŸ‘ 1 πŸ” 0 πŸ’¬ 0 πŸ“Œ 0

This database solution looks very dystopian

13.02.2026 17:48 πŸ‘ 2 πŸ” 0 πŸ’¬ 0 πŸ“Œ 0

Don't put the burden on yourself to fix other people's code. Use the AI tools to write exactly the code you want, but more efficiently.

13.02.2026 13:32 πŸ‘ 0 πŸ” 0 πŸ’¬ 0 πŸ“Œ 0

bsky.app/profile/feli...

13.02.2026 13:29 πŸ‘ 0 πŸ” 0 πŸ’¬ 0 πŸ“Œ 0
Post image

Good time to be CLI maxxing:
- @neovim.io
- tmux
- smug (to start tmux sessions from YAML files)
- git worktrees (multiple repo checkouts for parallel agents)
- dotfiles in a git repo synced across macOS and Linux machines

13.02.2026 13:26 πŸ‘ 4 πŸ” 0 πŸ’¬ 0 πŸ“Œ 0

Open-source can't dispense with code review, but I predict some companies will stop code review altogether and more aggressively cut people who submit slop to production.

13.02.2026 13:25 πŸ‘ 0 πŸ” 0 πŸ’¬ 0 πŸ“Œ 0

In open-source, the idea that you're judged by your code is also not going to scale. Some kind of reputation system will be necessary for contributors to earn the right of having their code reviewed.

13.02.2026 13:25 πŸ‘ 0 πŸ” 0 πŸ’¬ 2 πŸ“Œ 1

In this new world, by the time a PR is opened, the author should have already reviewed the coding agent’s work.

Code review, as we know it, is not going to scale. You can’t get paid to ask an agent for code, open a PR and let the review and refinements be someone’s problem.

13.02.2026 13:25 πŸ‘ 1 πŸ” 1 πŸ’¬ 2 πŸ“Œ 0

that's why "most AI projects are failing" is not indicative of lack of potential

13.02.2026 13:22 πŸ‘ 1 πŸ” 0 πŸ’¬ 0 πŸ“Œ 0

The hidden emotional labour of not judging PR authors' competence because of the LLM-generated slop being submitted for review.

08.02.2026 20:31 πŸ‘ 4 πŸ” 0 πŸ’¬ 2 πŸ“Œ 0

Yes. If you're single-threaded you *CAN* mutate through an &.

05.02.2026 21:10 πŸ‘ 1 πŸ” 0 πŸ’¬ 0 πŸ“Œ 0

A method that takes a lock and performs some mutation would be non-const in C++. But if you were to declare it as `&mut self` in Rust, you would not be able to have concurrent callers. The whole point of having a Mutex in the first place!

05.02.2026 21:07 πŸ‘ 2 πŸ” 0 πŸ’¬ 0 πŸ“Œ 0

&mut T means "you cannot have other aliases".

This contrasts with C++ const where aliases are all over the place and const only exists to help you be suspicious about side-effects.

05.02.2026 21:07 πŸ‘ 2 πŸ” 0 πŸ’¬ 1 πŸ“Œ 0

In Rust, a &T is not an immutable reference in the common Functional Programming sense. func(&self) is free to mutate atomics or values wrapped in Mutex through self because any other call through an alias to self is going to synchronize the mutations. &T means "you can have other aliases".

05.02.2026 21:07 πŸ‘ 3 πŸ” 0 πŸ’¬ 3 πŸ“Œ 0

I have multiple of these

05.02.2026 21:04 πŸ‘ 2 πŸ” 0 πŸ’¬ 0 πŸ“Œ 0

O "bom gosto" Γ©, no final das contas, definido como aquilo que o pobre ainda nΓ£o tem acesso. A partir do memento que o pobre tem acesso, para de ser bom gosto.

05.02.2026 01:26 πŸ‘ 0 πŸ” 0 πŸ’¬ 0 πŸ“Œ 0

I had a professor in CS school that told us "if you worry about hackers, you won't get anything done" when the subject of SQL injection came up.

The 2026 version of that is: if you don't give your 1Password to Claude you won't get anything done.

03.02.2026 23:27 πŸ‘ 5 πŸ” 1 πŸ’¬ 0 πŸ“Œ 0

β€œtΓ©cnico” Γ© eufemismo pra β€œescroto”

03.02.2026 17:13 πŸ‘ 2 πŸ” 0 πŸ’¬ 0 πŸ“Œ 0

Contrary to popular belief, it's hard to write fast software in Rust.

01.02.2026 22:51 πŸ‘ 1 πŸ” 0 πŸ’¬ 0 πŸ“Œ 0

Twitter servers are borked and profile pages say "user x hasn't posted yet" instead of an error message. This is a common pattern everywhere. "You have no flights" before your flight loads in the airline app is very stressful.

01.02.2026 16:32 πŸ‘ 8 πŸ” 0 πŸ’¬ 1 πŸ“Œ 1

Most non-C++ integrations of the RocksDB API rely on the C bindings which will populate a fresh std::string, malloc() and memcpy() on every Get(). You either write custom bindings, or use C++ to get the good perf that RocksDB can give.

31.01.2026 23:12 πŸ‘ 2 πŸ” 0 πŸ’¬ 0 πŸ“Œ 0