How developer offers are built
An offer is a bundle, not a number
Rafael is a junior Rails developer in Recife. One Tuesday morning he opened his inbox to two offers that had landed four hours apart. The first came from a Brazilian fintech. It was a CLT contract with a monthly salary in reais, a plano de saúde, vale-refeição, and a start date three weeks out. The second came from a US-based remote startup. It offered a monthly rate in dollars, paid to him as a contractor through his own CNPJ. No benefits were listed, and they wanted him to start the following Monday. His first instinct was to line up the two numbers and pick the bigger one. This course exists to slow that instinct down. An offer is a bundle of decisions about money, risk, and how you'll work. Rafael's two offers differ on almost every axis, except that both companies want him.
What sits inside an offer
Strip away the letterhead, and every offer, Brazilian or foreign, is built from the same few pieces. There's a base amount and how often it's paid. There's a contract type, which decides what happens if the relationship ends badly. There's a set of benefits, coming either from the law or from company policy. There's an equipment arrangement and a start date. Last, and easy to miss, there may be a written date when the base gets revisited. Two offers with the same headline number can differ enormously once you line up every piece, beyond the first.
Offer A (Brazilian fintech) Offer B (US remote startup)
Contract: CLT Contract: PJ / international contractor
Base: R$ X thousand/month Base: USD X thousand/month
Benefits: plano de saúde, Benefits: not listed in the offer
vale-refeição
Start: in 3 weeks Start: next Monday
Why "how much" is the wrong first question
Asking "which offer pays more?" before naming the contract type is like asking which of two vehicles is faster before checking whether one is a bicycle. A CLT salary of R$5,000 a month and a PJ rate of R$5,000 a month are different offers. CLT carries 13º salário, paid férias, FGTS, and a safety net that PJ lacks. A USD contractor rate also converts through an exchange rate that moves every month. A better first question is "what kind of arrangement is this, and what does the number mean inside it?" Lesson 3 builds the arithmetic for that comparison.
The two universes an offer can come from
Offers come from two universes: a Brazilian company or a foreign one. Within them, almost every offer a junior developer receives in Brazil takes one of four shapes. The first is a CLT contract with a Brazilian company. The second is a PJ contract, where you invoice through your own CNPJ. The third is a foreign contractor arrangement paid in USD. The fourth, less common at junior level, is a foreign company hiring you as CLT through an Employer of Record (EOR), which acts as your legal employer on its behalf. The intern-level course "Landing the internship: applications to offer" already covered the CLT versus PJ basics. It also made the case that CLT is generally the simpler first choice. This course assumes you remember that. It goes further into the arithmetic, the EOR option, and what changes when the hiring company sits outside Brazil.
Global remote didn't remove the Brazilian questions, it added new ones
A remote offer from a company outside Brazil doesn't erase CLT, FGTS, or nota fiscal from the conversation. It adds a second layer on top. Rafael's US offer still requires him to figure out how to receive USD, convert it, and declare it to the Receita Federal. It also leaves open whether the company might later offer an EOR arrangement instead of a straight contractor relationship. A remote offer changes who pays and in what currency. Rafael still lives, pays taxes, and will eventually need healthcare in Brazil.
What a junior should and shouldn't expect in an offer
Equity is rare at junior level outside a handful of startups. Its absence from an offer is normal and no red flag. Don't spend negotiation energy on it in your first role. Do expect a clear statement of the contract type. Expect a benefits list instead of a vague "competitive benefits" line. Ideally, expect a written date, often 90 days or six months out, when your base gets revisited. That review date matters more in a first offer than people expect. A junior's fastest raises usually come from that first review, more than from the negotiation before signing.
A quick self-check
Before lesson 2, take any offer you've received or expect soon. List every piece from the second section above: base, contract type, benefits, equipment, start date, and review date. Some may say "not specified" for now. An offer missing half of those isn't necessarily bad. It's incomplete. The next few lessons teach how to ask for the missing pieces without sounding like you're negotiating before you've agreed to talk. Also ask yourself which shape each offer takes: CLT, PJ, foreign contractor, or EOR. The rest of this course assumes you can name that correctly before you do anything with the number attached.
Where this course goes
Lesson 2 covers researching salaries in USD and BRL. No single correct number exists, so the lesson teaches you to read conflicting sources and triangulate a realistic range. Lesson 3 goes deep into CLT versus PJ. It shows the arithmetic behind why a PJ rate must sit well above a CLT salary to come out roughly equal. It also covers what an Employer of Record changes for a foreign offer. Lesson 4 covers benefits, equipment, and remote terms, from vale-refeição to home-office stipends to probation periods. Lesson 5 turns to asking for more without losing the offer. Lesson 6 covers saying no and saying yes well. Lesson 7 puts it all together into one offer conversation, from open to close.
Rafael's two offers stay in view through all seven lessons. Working through a real comparison, piece by piece, teaches the method faster than any rule on its own. By the end, you'll have a checklist you can run against any offer that lands in your own inbox.
Keep going with lesson 2
Researching salaries in USD and BRL
Shows why salary sources disagree and how to triangulate a realistic USD and BRL range from three types.
A free account also gives you the quizzes, your progress and notes, and the discussion.