Note: I am an entry level Web Developer in the US.
I started my current job a year and a half ago. At that time, I was right out of college and eager for a paycheck. I didn't think much of it, but now I realize that I never signed or received a contract regarding my responsibilities. The most I signed was a payment agreement but it didn't include a job description or title.
A usual day's work for me includes development and testing of new features for a web application. There are only two developers on this team (three when I first started), and we've fallen into our own niches where I primarily work on our web application and he primarily works on our standalone software.
Lately, my boss has been throwing a lot of curveballs at me. This includes being asked to go off-site during off-hours at very late notice, as well as programming in languages that I'm not familiar with to help my coworker with his tasks. We've also collectively turned into the IT department for the whole building and have been setting up new servers and Internet connections. To me, these things feel a bit out of scope for what I was hired for, and I definitely don't feel like I am being paid enough to tackle so many things.
For even more context, I was originally hired under the impression that I was going to be doing QA and Tech Support, but within a month I was given more and more development tasks (unfortunately without an increase in pay). So I feel like I was hired to do one thing, currently do another, and am being asked to do something different still.
So my questions are: How should I handle this situation and am I even legally allowed to turn down out-of-scope tasks? Is it appropriate to ask to sign a job description or renegotiate pay this far into the game? Should I consider this entire thing a big red flag?
Edit: A lot of people are suggesting other previous questions about how to decline work outside of scope or how to negotiate pay if I'm doing too much work. And while those are all incredibly useful resources, my issue is more centered around the fact that I don't have a job description at all. I negotiated my pay assuming I would be QA, my usual workflow has always been development, and my boss likes to throw IT, Tech Support, and the occasional road trip to work with physical machinery my way. No one in my company has ever actually told me "You are a programmer." or "You are a field grunt." I would really like to have someone tell me exactly who I am to the company and what I should be doing, but I don't know how to initiate that conversation.