Making small, weird software and hardware since the BBS days

Rio de Janeiro, Brazil
Joined October 2006
Before you build your next app, ask whether a vibecoded clone could get the same result. If it could, someone will ship a cheaper clone. Then a cheaper one. Then an open-source copy. If it couldn't, good: you've found what to build.
69
The most useful thing an AI does for me: kill my ideas. @boardy_ai has been refining my products, shutting down my bad ideas. Right now he's helping me shape something new. I call him my boxy overlord.
1
80
Building small tools for myself changed how I judge software. The big apps on my phone have endless feature lists. I never open them. My home-cooked ones are tiny, and I use them every day. An app you never open has zero features.
131
Built a haunted keychain: an ESP32, a tiny screen, and a GIF gallery for it to cycle through. Lain is there, of course. The catch: when it's off, it's a broken TV hanging from your keys. Oh well.
2
1
9
497
Ev Williams hired me to help fix Twitter in the early days, back when the Fail Whale was showing up all the time. On Rails. That was buried somewhere in my LinkedIn. So was being a Tech Lead at LivingSocial lol. Yesterday @boardyai helped me rewrite the whole profile, and I had to get precise about my own history. Building software since 1998. Engineer, then lead engineer on Chargify. Early Twitter at Obvious Corp. LivingSocial. Flexcode since 2016. It's live this morning.
2
2
197
I built a ESP32 tiny goth fidget toy. Called it GRAVECHAIN.
1
14
7,442
More weird little things I make: instagram.com/caffo.hex/
1
1
120
changed my username to make things more simple: instagram.com/caffo.dev
22
Stop waiting to finish your side projects before you show it. My Game Boy game about Murakami's "The Wind-Up Bird Chronicle" never got finished. It's online anyway: drafts.caffo.dev/windup/ Nobody sees the version on your laptop.
1
90
My Claude Code subagents now know when my M2 has had enough. If Claude decides a job is too heavy (a Rust test run, a long thread), the subagent runs on my beefy Linux machine instead. The laptop keeps the light stuff and finally stops gasping. So good.
1
1
165
A senior engineer through Flexcode costs around $100K a year. That's on purpose. I've run Flexcode since 2016. We embed senior engineers from Brazil and Latin America directly into existing product teams for mobile and web work. They're not a separate outsourced team, and they don't need hand-holding. We've worked with Twitter, Lufthansa, FOX Networks and Groupon. Placement takes about two weeks. We don't compete with the cheap shops. It's a narrow niche: funded companies that want people who know what they're doing and do it well, at a price that's fair but not bargain-bin. Almost all of our work has come through referrals. I do one call to explain how we work, and after that the developers' work speaks for itself. If that sounds like your team, my DMs are open.
1
137
Rodrigo Franco (Caffo) retweeted
Hot take: the best UI library in 2026 is the one your AI agent can actually read uiarc.dev
6
3
163
23,791
Rodrigo Franco (Caffo) retweeted
The world craves amber.
6
149
23
1,428
225,246
MIASMA is the best Omarchy theme.
2
143
Rodrigo Franco (Caffo) retweeted
Claude Ultracode is super intelligence.
277
408
154
5,214
717,481
If you’ve been using Hermes for a while, these animated dots and balls don’t make any difference. Your agents know what to do.
1
2
240
Rodrigo Franco (Caffo) retweeted
some free 4k textures i made
25
1,207
24
16,462
346,375
A 2011 ThinkPad has no business being my favorite computer. It is anyway. The one thing it couldn't do was show me my own notes. They live in Drafts, and Drafts doesn't do Linux. Drafts --> getdrafts.com/ So I fixed that. 187 lines of Python, 40 lines of shell, one Quickshell plugin for #Omarchy. The video shows how the pieces talk. Repo soon.
4
1
4
507
Just to be clear: The ThinkPad starts the pull, so the Mac never needs to know where it is. And the annoying part: over ssh, macOS can't show a permission prompt. sshd needs Full Disk Access, granted once. Small thing I like: a note that starts with a pasted API key gets named by its ID, so the key never ends up in a filename.
63