My advice to you is to keep up the hard work that you have been demonstrating. It will pay off eventually, even if you do not see or reap the benefits now.
You are at a dis-advantage in that you do not have your degree yet, this will be a hinderance to you. Although I know plenty of software developers who never received degrees or certification tests, most of these people have proven themselves with skills and years of project history. In my opinion, its much harder to excel as a career programmer without an education in computer science or technology. That being said, having a degree does not make you any better than the next programmer. I know plenty of over-certified, P.H.D types that cant code a lick!!
Taking a low paying job shows initiative. I did the same thing when I graduated college.
Always remember that they need you more than you need them. *
To be less nervous, try cracking a joke at the beginning of the interview. Think of something witty and make it come from left field, so they are caught off guard. Notice something strange or funny in the office or lobby and question them about it. It is usually good to break the ice and show that you are human and not a robot.
It's okay to be nervous, but you dont want to be over-nervous or on the edge of a mental breakdown. Maybe explain to them that you're nervous, in a polite way. Most employers are flexible in interviews. Some employers are more relaxing than others. Just find a medium and talk personably. Again, dont be a robot!!
I would keep this answer rather short. Keep it to the point. Dont ramble on about your previous job, or how you like your coffee, etc etc. Give them highlights or bulletin notes. I usually keep my resume handy for this very reason. I point at the job and read off the list of projects/tasks I completed. Dont go off the top of your head, you will forget important things (atleast I do). So keep your paper resume nearby for reference. There are times I go blank in an interview, and it helps to have that sheet of paper that lists your previous jobs. You built it, so use it (resume)!!!
They are looking for indication of project size, technology and the role you played. Since you are junior level, it's best to go into detail of the tasks you have listed on your resume. Dont use buzzwords or flashy tech lameness. Give them specific details about the tasks you performed. It's important to be detailed here, to demonstrate your strengths and understanding of what you have accomplished. This is where you can get a little technical and show them your aptitude. If you're a junior level programmer, and you start talking about how you architected and implemented this really cool new feature, or helped them migrate and implement a new system or whatever cool stuff you did. Dont go into unnecessary details but do highlight your accomplishments.
To me, this is the best part of the interview. They usually expect you to say "No, I dont have any questions". But you really should have a few. Ask them about their coding practices and standards. Ask if they use silly notations, or naming conventions. Ask them about their development team(s) and their sizes. Ask how long the team leads have been on the project and if they seem happy with it. Ask them if they are fully licensed to use their tools. Ask how many end users do they have and what type of customer support they provide. Also ask about the project's scope, how long the project will last. Look at the company/employer's website and gather information for asking questions from there. Look at the management team or executives, ask specific questions about them and their roles within the organization. Always look at the company's website to gather ammunition for firing back questions. Usually employers are quite unprepared to answer most of these. This can really turn a bad interview around into a good interview, if you act generally interested in their company and projects. It also shows that you did your homework before the interview.
That's easy. Dont sugarcoat. Tell them up front that you feel that you deserve a pay raise and that you are going to find it, somewhere. Employers arent afraid of people who know what they want. Explain to them that you are content with everything EXCEPT your current pay. There is nothing more an employer wants is another company's underpaid staff who's skillset is impressive. Dont be afraid to let them know you are worth the money. Explain to them that you took the low paying job for experience and for the opportunity. I did the same thing with my first job, and after three months demanded a raise or I'd walk. I got my raise, even if they did grumble about it. $27k a year is very below average, and I think McDonald's employees get paid roughly the same. Put it in perspective and work out your hourly pay. You wont be impressed with it and you can use that in your interview. Dont come off as disgruntled, but let them know you cant pay the bills or buy that cool laptop or iPhone/GooglePhone, etc to further your skills. Besides, you work hard, you deserve it!! Dont let them fool you.
How do you know you have the skills of someone with 4-6 years of experience? See, that doesnt even make sense. I know people who have programmed for 20 years and are worthless. I know people who have programmed less than 5 and could code circles around the 20 year old senior developers. It's not fair to yourself to compare against the "4-6 years of experience" guys. Regardless of THEIR experience, you have significantly LESS. What you need to prove is your motivation and drive. Since you dont have a degree, give them your GPA (hopefully its good?) and let them know what honors or activities you contribute in. If you dont contribute (since you are working full-time after all), try to get into some groups you can contribute in. There are many free groups and computer events/activities you can participate in. Take or study for certification/exams. Enroll in a training course. Show that you have some intiative to further your skillset. And most of all, show them that you can handle anything that comes your way, no matter how trivial or complex. Give them examples of how you impressed your current boss. Dont feel like you must compete with other developers for the job. Go in with an attitude of accomplishment and proven self worth. This will work to your advantage, rather than explaining why you feel like you already lost or have to compete.
I would suggest to you, that if you've been coding for 10 years, apply for mid-level positions as well as junior level positions. Even try Senior level positions if you feel comfortable with the job descriptions. It will be hard convincing them of your skillset if you dont have work experience or a software portfolio of examples to impress them with. The best thing on a resume is your experience or "time served". If you dont have much of that, I would suggest getting certifications because those will get you plenty of interviews. Then all you would need is to prove you can handle the work load.
I have had plenty of jobs (and interviews) in my 7+ years of professional programming. I recommend to you to believe in yourself, because if you dont, nobody will. At the end of the day, you employ yourself and answer to yourself. Know your strengths, know your weaknesses. Practice public speaking, maybe join a speech group if you have nervousness.
One interview experience I would like to share with you (and maybe you can think of this when you're nervous) is that I went to interview with a small credit report company, that moved from California to Texas. The CIO and technology manager gave me my interview. These guys came off as real cocky, like most Californians who migrate to Texas (they all think we are slow, which we are, we just think more clearly). Anyways, I did my "homework" the night before and went to their website. I noticed a login page, in which I clicked the "LOGIN" button. It instantly redirected me to a spreadsheet list, with all sorts of information, including 1000s of emails, phone numbers and even social security numbers. I didnt really think much of it at the time....
When I went to the interview, they started hammering me with some ASP.NET/web questions, which I had little problems answering. Then, in an explanation, I made a reference to their login page I had seen the night before. They laughed at me (being cocky that they are), and said there was no way I could have logged into their system and seen that report. I corrected them and told them exactly how I did it.
It was priceless to see these guys (CIO and Tech manager), walk out of the room into their office (which was glass by the way, I could see them attempt this)...and follow my instructions on logging in, anonymously, with no username or password. Surprisingly, and to their grief, it worked. They saw a huge bug in their login page, which apparently, their old developer left in tact for debugging purposes.
Immediately they came out of their office and apologized to me, and told me I was correct. They implemented the fix before I even walked out of the interview. It was very embarassing on their behalf. What was even worse was the lack of security around sensitive information, such as the 1000s of social security numbers I saw. I felt like emailing everyone on the list with the information I found.
Needless to say, I didnt get a job with them. Dont think I would have wanted one anyways. Sometimes it's in your interest to stay away from companies that have no idea what they are doing!! Good luck!! And dont be afraid to be yourself!!