Well in life you have to eventually make the choice of following the sheep herd (the employee) or becoming the sheep herder (the boss man (not a middle manager), founder, SME consultant or contractor with their own company). The latter is a very rough road and most will not be able to push through the barrier to entry but you will never know if you do go through the process of doing it.

In your situation you are apart of the herd as most of us are in the beginning and many of us will stay there for our entire lives ( Because it is easier and normally equals a nice steady, reliable paycheck). Many of us are brought up to do good in school, get great grades, go to popular colleges, go get a popular degree or degrees and land a great job.

You are getting a peak under the hood of some of the bad habits of some businesses. You are not supposed to know you are being underpaid but since you know this information (information is power) you now have the opportunity to change your career path. Also don't worry about your coworkers as I can guarantee they are not worrying about you and your pay.

Time to start a new job search and match the job requirements with your experience and skill sets. If you honestly are very good in a high demand, low supply technology/programming language you can negotiate a higher salary.

Just to give a breakdown on the potential of what you could accomplish if you have what employers are hungry looking for and you are not on the be your own boss route yet. Normally in the USA if your a junior programmer you can make $65,000+ minimum, 40 hour work week, some rare overtime, PTO, DTO, and full benefits. If you are an intermediate developer/sys administrator you can negotiate around $80,000 minimum and if your a senior developer you can demand $90,000 to $200,000 a year depending on how difficult your craft. If you are an expert $200,000 to $300,000 a year and if your a master $300,000 to many millions but at that point you should probably be running your own company and working on taking it public to increase your total earning power within a short period of time. If an employer tells you they cannot pay that type of salary, find one that will just note the more your paid the more that will be demanded from you so you have to stay on top of your game.

If your not a founder of a company, CEO or other extremely highly compensated C-Level executive or top business/tech brass you should not be putting in more than 40 hours a week on a regular basis unless you knowingly signed up for it (Military, intelligence community, NOC, on-call type work).

During your job search compare your skill sets and experience with salaries available on Glassdoor, indeed, Bureau of Labor, etc. in your area. If you have little to no experience in the technology your working in below junior (journeyman) your pay will more then likely be under $65,000/year as there would be no way to justify paying or demanding more if this is your first time using the technology.

Relying on a bonus is only OK if your already happy with your salary as the bonus is after all just a bonus. If your a core part of the business you should not be getting paid bottom dollar for your efforts and should negotiate more for your contributions. If negotiations are unsuccessful, find a company that will pay you what your worth. If your at the top talent pool in your specialty you should not have to worry about what your salary is but should be thinking about what your going to do on your next vacation, retirement planning, family and other non work related fun things.