Hopefully as a co-founder of a startup I can shed some light.
Start ups tend to move a lot faster than larger companies, so there's no need to start applying a year in advanced. I'd say within a month would be too late, maybe two months. Just because they may have already filled the position and it could take a while to setup meetings/coding tests etc.
You're definitely not in a rush. I would probably suggest start looking this side of christmas then start to go for the startups just after christmas. There's no definitive times or dates that you should apply between though. It's mainly about you, and your process of just continually looking until you find the one you want/feel good about. At the very earliest I wouldn't start until september. You also have to take into account the processes of job applications and it can take up a decent chunk of your time, so if you spread it out in good time then it won't negatively impact your studies.
Few tips for the process and interview though:
- Research the company you're applying for. Show some interest in it, and see if it's tech stack and history is something you want to be a part of. (Researching the company you're applying to is a ball-ache but it does actually matter).
- Don't lie, if you don't know something - say. They aren't looking to trip you up or make you look stupid, they wanna know your knowledge base.
- Have a short and sweet CV, that includes any public repos you have or links to previous works.
- Be confident, but not cocky.
- The interview is a process that identifies if you are right for them but also if they are right for you. Remember this, it's a conversation and two-way. So be sure that you feel comfortable with their culture.
- Chill, it's only an interview - worst they can do is say no. Which means you just move onto the next one.
- If it's been a while (like 2-4weeks) since you heard from the company about your application then chase them. They are people, and people make mistakes and forget so don't sit there and wonder - chase.