A couple of pointers to help you forward. First, don't give up. Keep building up your experience and portfolio. To be honest, Fullstack Academy graduate means to me that you're completely entry level. That's fine, but when I'm hiring I almost never want entry level people. And even if I do want entry level people, I've got about 1000 CVs from people to choose from (and that is not an exaggeration). Landing that first job is really, really important.

How do you land the first job? You have to stand out. It is possible (and even likely) that your CV is not great. The first thing I would do is to make sure to attend as many meetups as you can for areas relevant to your experience. Try to find a few experienced people and see if you can get some feedback on your CV. Reassure them that you aren't looking for an interview per se, you would like some independent feedback so that you can make your CV look better.

When you get an over the phone interview, your attitude should be that the in person interview is nearly 100% guaranteed. There should only be 2 reasons for not getting the in person interview: the job is wrong for you (which you should be able to detect) or you have flubbed the phone interview. Without being too much of a pain, get to know some senior people in meetups and chat with them about technology. Try to get some honest feedback on what they think about your potential as a programmer based on those conversations. Over the phone interviews are a bit like that -- you should have the feeling of just kind of geeking out about your chosen field and chatting with like minded people. Practising conversations like that will help you a lot. Getting feedback is really important as well.

Now, here's where it gets hard. When I'm in a big city and go to a meetup, I often find myself chatting with someone who is clearly not very strong as a programmer. Usually they are looking for work and usually I'm not interested in bringing them on board for an interview where I work. However, it's hard to give good feedback because you don't know the person and can't tell how they will react. It's important to pick up on that vibe, because of the next step.

If you find that people aren't going out of their way to rush you to an interview, probably it's because you don't present yourself as being a solid enough candidate. So this means you need to figure out what your biggest weakness is and work on that.

The biggest red flags I've found with really junior people (and sometimes even senior people) are:

- they have funny ideas that they obviously haven't tried in realistic situations because they aren't going to work. e.g, "In my foobar server code I discovered that it runs faster if I name all my variables, a, b, c, etc." Maybe not quite so stupid, but often pretty close.

- they have strong opinions on stuff despite having almost no experience "Ruby is the best programming language, OO sucks, Testing is stupid", etc, etc.

- they regurgitate stuff they've heard or read and present it as gospel "Why isn't everybody using microservices? Super-programmer Sam says you are a dufus if you don't and I believe in Super-programmer Sam".

- just generally clueless without realising it "I'm good at Rails. It's the best way to write front end apps".

What I'm looking for in a junior developer is someone who knows a little bit, understands that they know only a little bit, is hungry to learn more, enjoys programming and demonstrates a knack for learning.

Things that really impress me are people who meet me one time and if we get talking about TDD, for instance, will go away and at the next meeting flag me down and say, "I did this. Can I get your feedback on it?"

Doing freelance work is great if you can manage it. However, you should also take the opportunity to build things that will help your life (even if it's just a TODO app, or even if somebody has already written something better). Use the opportunity to practice. Write it one way. Rewrite it a different way. Listen to senior people who tell you "X is amazing, you should use X" and then try it. Go back and say, "I tried X and I'm not sure that I understand how it's better. Can you have a quick look at my code and tell me if I'm doing it in a good way?"

As strange as it sounds, this is exactly what I want in a junior person at work. I want them to be eager, humble, always learning, and engaging. I want them to bug me constantly about how to improve. I want them to listen closely to everything I say and to try to integrate my advice. People like that are gold for me and I will seek them out.

But the biggest thing is that you need to be interacting regularly with people in the industries. Meetups are best. If you can't manage that (due to your location), then devote yourself to working on open source projects, hanging out on IRC, etc, etc. It sucks that you have to work so hard at the beginning of your career, but it will pay dividends!

Anyway, good luck! As long as you are always thinking, "What can I do to become a better programmer", everything will fall into place.