Sometimes, but rarely by default. An unpaid internship is worth it only if it is short, you get real work on a real product, someone reviews your code, and you can afford it. If you would mostly be doing free production work for a business, a paid role, open source or your own project is usually the better use of the months.
What people tell me
I have been applying for internships for a while and the only offer I have is unpaid. The company says it is a great learning opportunity and that I might be hired after three months. I need experience on my CV and I am worried that if I turn it down I will have nothing. But I also do not know whether I would really learn anything or just do work for free, and travelling there every day costs me money.
A composite of the messages behind this question, with personal details left out.
Key takeaways
- Judge an unpaid offer on mentorship, real work and length, not on the promise of a future job.
- Ask who will review your code and what you will ship before you accept.
- Keep it short and time-boxed; set an end date in writing.
- Rules on unpaid work differ by country; check what applies where you live.
- If the offer fails the checks, a serious open source contribution or your own project can give you more.
The short version
An unpaid internship is not automatically bad and not automatically good. What matters is what you get in return for your time. Experience only counts on your CV if you can describe real work you did and what you learned from it. If the internship gives you that, plus someone who teaches you, it can be worth a few months. If it does not, it costs you money and time you could spend building proof in other ways.
A note on rules: whether unpaid internships are allowed, and on what terms, depends on the country, the type of employer and whether it is part of your degree. I am not giving legal advice here. If you are unsure, check your country's labour rules or ask your university's placement office.
Five questions to ask before you say yes
| Question | Good sign | Warning sign |
|---|---|---|
| What will I work on? | A named feature or project with a clear goal | "Whatever comes up", or only data entry and testing by hand |
| Who reviews my work? | A named engineer who reviews pull requests | Nobody, or "the team" in general |
| How long is it? | A fixed period, such as 6 to 12 weeks | Open-ended, or "until we decide to hire you" |
| Is there a path to a paid role? | Clear criteria and a date for the decision | A vague promise with nothing written down |
| What does it cost me? | Remote, or travel costs covered | Daily travel you cannot afford |
If most of your answers land in the warning column, the internship is probably a way to get free work, not a way to train you.
When unpaid can make sense
- It is part of your degree. Some programmes require a placement, and a structured one with a supervisor can be useful.
- It is short and heavily mentored. Six weeks with a senior engineer reviewing your code can teach you more than months of tutorials.
- The organisation is a genuine non-profit or research group, and the work is something you would struggle to find elsewhere.
- You can afford it without borrowing or dropping your studies.
When it usually does not
- The company sells a product or client services, and you would be doing the same work as a paid junior.
- You are told to build something that will go straight to a client, with no review.
- There is no end date, or the "paid role after three months" promise keeps moving.
- You would have to give up evenings you currently spend learning.
Negotiate before you accept
Many students never ask. You can:
- Ask for a small stipend or travel allowance.
- Ask for the internship to be remote or hybrid to cut travel costs.
- Ask for a written end date and the criteria for a paid offer.
- Ask for a letter or certificate describing what you built, not just attendance.
If the company refuses every one of these, that tells you how it values your time.
Alternatives that build the same proof
If you decline, do not sit empty-handed. Pick one:
- Open source. A few merged pull requests in a real project show code review, collaboration and reading an unfamiliar codebase. The open source roadmap shows how to pick a project and land a first contribution, and programmes such as Google Summer of Code and Outreachy are paid.
- One serious project. Build something a real person uses, deploy it and write a proper README. The FYP ideas library has scoped problems if you need one.
- Keep applying. Watch the internships page for paid listings and keep a steady pipeline.
How to talk about it later
If you do take an unpaid role, treat it exactly like a job. Keep a log of what you shipped, the problems you solved and the feedback you received. That log becomes your CV bullets and your answers when someone asks "tell me about your experience".
If you are still stuck
Read should I accept a low-paying first job or internship in tech, which covers the paid but low version of the same decision. If you want help weighing a specific offer, join Sefism and, as a member, book a 1:1 session.
Was this answer helpful?
Read next
- How to Start Your Career as a Software EngineerHow to start a career in software engineering in 2026: pick one language, build past the tutorial, learn five fundamentals, get real feedback and apply earlier than you feel ready. With a twelve month plan and an honest market read.
- From CSE Graduate to Your First Software Engineering JobHow computer science graduates land their first software engineering job in 2026: run learning, applications and interview practice in parallel, practise DSA by pattern, train the performance part and follow a twelve week plan.
Your situation is not quite this one?
Members get written answers to their own questions, a roadmap built for them and feedback on their projects. Early access is open: sign up and your account is active shortly after. Prefer to talk? A free call works too.