Caio Pizzol
@caiopizzol
Followers
27
Following
87
Media
4
Statuses
45
Head of DX @ SuperDoc
Curitiba, Brazil
Joined October 2015
Yes, GET requests that modify state. Yes, plain text responses. Yes, query parameters for everything. Sometimes the "wrong" technical decision is the right human decision. The insight: Most API friction isn't about security. It's about ceremony.
0
0
0
Why open source this? Because every Brazilian developer loses weeks to the same encoding hell. Because $500/month APIs gatekeeping public data is theft. Because bad infrastructure is censorship with extra steps. Join the fight. Discord:
discord.com
Discord is great for playing games and chilling with friends, or even building a worldwide community. Customize your own space to talk, play, and hang out.
0
0
1
The pipeline adapts to your hardware: if memory < 8GB: chunk_it() else: unleash_hell() COPY beats INSERT by 10,000x. Staging tables handle conflicts. One command loads everything while you sleep. No rate limits. Just data.
0
0
1
Brazil publishes 50M company records. "Free" data. Reality: 85GB of Latin-1 CSVs. Companies founded in 2027. Text that's UTF-8 wrapped in Latin-1 because someone converted encoding twice. I spent months fighting this chaos so you don't have to. https://t.co/FiPn1zYFvU
github.com
Dados de CNPJ da base da receita direto para seu banco - caiopizzol/cnpj-data-pipeline
2
0
1
"But the cloud is more reliable" they said. "You don't need to manage your own infrastructure" they said. Meanwhile, Bob's Raspberry Pi is still serving requests.
0
0
3
The number of developers who've typed 'OpenAPI' while looking for @OpenAI's API is probably higher than GPT-4's parameter count
0
0
0
API DX idea: Let developers choose their preferred case format with a simple parameter. Python devs want snake_case, JS devs need camelCase. Why force conversion? GET /api/users?case=snake → {"user_id": 1} GET /api/users?case=camel → {"userId": 1} Small change, happy devs
0
0
0
Any SDK generator out there that can actually do a good job?
3
0
1
The paradox: APIs without rate limiting feel "faster" until they crash under load. Smart limits give developers the one thing they value most: reliability.
0
0
0
Good rate limiting: - X-RateLimit headers in EVERY response - Gradual warnings before hitting limits - Clear reset timestamps - Tiered limits that scale with usage Developer reaction: Predictable, plannable integration
0
0
0
Bad rate limiting: - Sudden 429s with no warning - "You've exceeded limits" (what limits?) - No reset time in response - Arbitrary thresholds (why 100/hour?) Developer reaction: Frustration, abandonment, workarounds
0
0
0
Rate limiting ruins developer experience" is the biggest API myth. Bad rate limiting ruins DX. Good rate limiting improves it. Smart limits 👇
3
0
1
6/6 Results: • No size limits • Better reliability • Reduced server load • Simpler code Sometimes the most elegant solution is to not handle the problem at all.
0
0
0
4/6 Here's a better way: 1. Client requests signed URL 2. Server returns GCS URL 3. Client uploads directly to storage 4. Server processes stored file
1
0
0
3/6 "Just use multipart streaming!" Sure, if you want to build: • Custom chunking • Connection management • Retry logic • Timeout handling And deal with zero built-in HTTP/1.1 support
1
0
0
2/6 • 32MB request limit on Cloud Run/App Engine • Base64 adds 33% overhead • You're limited to ~24MB files • Memory issues • Timeouts on large files
1
0
0
SaaS companies like Linear invest heavily in their JavaScript SDK, but their users often need support for other languages. This creates a gap where developers end up building and maintaining their own client libraries. Not anymore (You're welcome, @linear ). polvo not only
0
0
0