I joined a startup mainly because I want to startup myself and I thought the experience would help me.
But in the few weeks since I joined, I have been just understanding my team's code and done some maintenance.
The company also has another product that I'd like to work on instead of the current one and I want to take up a marketing/product role in addition to the programmer role. But that product is pretty much stable and there isn't as much to code as in the other one.
Essentially, my question is what should I do to take up a role with more responsibility that would help me better prepare for the eventual startup.
You are being impatient. You have only joined a few weeks ago. Working for a startup offers many opportunities, but you need people to trust and respect your judgment.
Offer some suggestions, ask questions about this other product, how it's doing, what the future plans are. Listen and think hard first, don't start talking right away.
Startups have a very open culture. If your suggestions are good, you can take on new responsibilities very quickly. Just remember one thing: it's easy to say how things should be, but actually doing them is where the value is. Can you deliver?
One of the most important things about working with any organization is learning how to work with other people -- on a team. It is learning how to listen, to advise, to influence, to accept, to motivate, and follow.
The best programmer may not be the best person for a job -- or for a start-up because while they know code, they may not know people. the most creative designer must know how to sell their design to people. The best engineer maybe the one that can facilitate a team of people to solve a problem.
I would expect that a start-up would find the intern that has learned all they can learn after a couple weeks from a specific assignment to be rather impetuous. As Alain says -- impatient. I would find it to be a reflection of an individual who had much to learn about how people work together. What a great opportunity for you in your desired and eventual role in your own start-up.
What to do? In any good internship situation , you should have scheduled regular meetings with your direct supervisor to review your learning goals and progress. If you do not have such a meeting scheduled-- get one on the calendar now. Articulate your expectation that you will have an opportunity to review your performance, and more specifically your progress toward reaching your goals for the internship. If you have not laid out goals for the internship-- then make an agreement upon those the desired result of your first meeting. Within the context of reviewing with your supervisor the progress on the learning goals -- if you can present that you have learned what you can from your current assignment and engage your supervisor in exploring other potential projects to work on (like the one you have your eye on) then you will be very successful in both learning about that project-- and how working in an organization . . .well, works.
I think that you are wasting your time. If you have an idea backed up by some realistic business plan - go for it! Otherwise you will most likely end up loosing the game to the routine (working for your current employer) or someone else will implement your idea (and belive me, no idea belongs to a single man and probably as we speak here somebody is working hard to get the job done)...