How many years are you talking about being employed? Because doubling your salary every 3-5 years is completely unsustainable. If this occupation is so leveraged that 10% annual salary gains are "average", and 20% are "expected", there is going to be some heartache at some point. That isn't happening anywhere else on the planet.
I don't think "leveraged" is the word you want.
Obviously, it stops at some point. I think most people get to a point where they care more about autonomy and control over their own time than they do about money. Once you can afford to buy a house, raise a family, and take vacations, how much more do you need? I think most people focus on doing more interesting and meaningful work at that point, not pushing up their salary.
But as long as I am going to be following orders and putting my time into others' ideas, I want either (a) a 20%-increase track or (b) enough autonomy to get the skills that will help me along that curve.
For note, I graduated in 2005, and have averaged about 8% increase per year since then. First 6 years with a Fortune 500 then changed employers, but the average applies even before my employer change.
At the Fortune 500, yearly inflation raises were averaging 2 to 3% but when you're fresh from school you get promoted on a 1 or 2 year cadence for the first few years and each promotion comes with a 5% raise. Promotions don't have to mean your job changes, just your paid grade goes up.
I'm 0 for 2 in picking startups. The first just didn't have legs (our CEO had no idea what people actually wanted and would pay for) but my mistake was to spend almost 3 years trying to make it work. The second had unethical management who (a) tried to use my engineering credibility to justify dodgy personnel moves, attempting to force me to sign affidavits claiming my colleagues were incompetent (they weren't, but they had "too much" equity) and (b) after I resigned, did all sorts of disgusting stuff to try to fuck with my career.
You're right that if you don't change employer or get a promotion, you're unlikely to get a substantial raise. I assume that anyone who isn't promoted after 2 years is, unless they have essentially full autonomy to direct their work, going to start looking elsewhere. You'd be insane not to. Your future is your real boss, because the future is what actually pays us.
I've been interning here for a few months, and they've already asked me to stay when I graduate, so that I can lead the IT team (around 4) on two products, handling software architecture, development process, performance optimisation, etc, etc and basically replacing him and hinted at offering a more than average graduate salary. They were apparently very impressed at my software engineering abilities. (I had done some freelancing work before) I've asked them why don't they consider hiring someone experienced in their 30's instead and they said that's what they're going to do if I reject their offer.
I know how to do what they want me to do more because of what I've studied at university than from my experience, and I feel nervous being given such a large responsibility. I want to work with people who write good code, with projects that already have a good architecture in place. Is that possible or are most companies in similar shape? I also feel that it won't be easy to advance this fast at another company and I could be missing a great opportunity. My friends who recently graduated and are working at large companies tell me they're lucky to write >10 lines a day and that they are always stuck in meetings. There are other startups here but I don't think I'll get offered a salary that's any good.
What should I do?
Here's what you need. Get a VP-level title so you can hire people better than you and not push yourself down, because that's what will happen if you don't have a title. At this stage of the company, titles mean nothing, but at 40 employees, they will.
Now find at least one technical person who's better than you and try to recruit him. He'll be your mentor. He'll possibly want a title once he learns that you have one. That's fine. Make sure the founders are willing to make him VP as well, so you're equals. (You don't want to be the boss of someone better than you, so mandate that the people you hire answer directly to founders/the board).
Thanks for the advice, I have a clearer idea of what I want to do now. :)