How it works
We publish the pattern, not the person.
WhyDidILeave collects structured answers about why people left IT companies. The point is not to host complaints — it is to make the reasons countable, and to do that without exposing anyone who tells us.
What we ask
A submission takes about a minute. You choose your function, level, country, the years you were there, how the job ended, and the main reason. Then, optionally, what might have made you stay — the question employers understand least and the one we find most useful.
Writing something in your own words is optional. A submission with no narrative is complete and counts exactly the same. If you skip it, your answers publish immediately; if you write one, a person reads it first.
If you were laid off or dismissed, we do not ask why you left, because you did not leave. We ask what you were told — and “I was never given a reason” is an answer we record, because in large layoff rounds it is usually the true one.
What we never ask for
- Your name, email address, or any way to contact you
- An account — there is no sign-up, and no way to create one
- Your employer’s name for you, your team, or your manager
- Your city, or your exact start and end dates
How a story is generalised before it is published
This is the part most sites skip. Publishing “Engineering Manager, Germany, 2022–2025” identifies one person at a sixty-person company, however anonymous the submission was. So before anything appears, we widen every detail until it describes a group rather than an individual.
How much widening depends on how many people your description could plausibly cover — mostly, how large the company is. At a company of three hundred thousand, “Engineering, Senior, Portugal” describes thousands of people and is safe to show. At a company of forty, the same words describe one person, so instead we show a role group, a region, and roughly how long you were there.
Some details get widened further regardless of company size: senior leadership roles, small departments, and dismissals, because each is rare enough to point at somebody. If a story is specific enough to identify its own author, we widen everything.
You see exactly this before you submit. The final step of the form shows the card as it will publish — not a description of it, the real thing.
Once published, a story can only ever become vaguer. We never go back and add precision to something already public.
Why some pages have no percentages
A percentage drawn from four answers is not information, it is decoration. So we show individual stories from the first one, and aggregate figures only from 5 onwards. Filters unlock at 10, and finer breakdowns at 20.
Where a figure is small, we draw it as one mark per person rather than a smooth bar, so you can see it rests on five people rather than reading it as authoritative. And when most of a company’s stories come from one region, the page says so — a global percentage built from a lopsided sample is not a global answer.
Moderation
Every written story is read by a person before publication. Automated checks run first and flag contact details, names and other risks, but they only ever raise concerns — nothing automated can decide that a story is fine to publish.
We remove names, contact details, and anything that identifies a private individual. When we remove something, the published story says so. We do not rewrite your words; we only take things out.
Written stories are between 40 and 1500 characters. See the guidelines for what we will not publish.
What we refuse to do
- No company can pay to remove a story. There is no mechanism for it and there never will be.
- Employers never learn who wrote anything. We do not know either.
- No star ratings. A company is not a restaurant, and a one-to-five score hides more than it shows.
- No fabricated stories, ever — including as examples or to make a new page look busy.
Positive exits count too
“I loved it but got an offer I could not refuse” is as useful to us as “I left because I stopped trusting the leadership”. A site that only collects grievances produces a distorted dataset and deserves to be distrusted.