There's no PTO. PTO was promised during the interview and is in my
signed employment agreement, but it's actually never approved. Same
with work-from-home, it's never allowed.
You need to log and document this behavior.
Ideally, if you ask for PTO, you (and your coworkers) should ask for it via email or via texts. You really need to memorialize this kind of crazy behavior.
Please stop recommending to just ask if it's possible to
interview outside of 9-5. I'm asking this question because I've tried
that several times and it hasn't worked.
Here are some suggestions:
Wait. The longer you stay with your first employer, the more attractive you'll be as a candidate to other employers. This is unfortunate, but it's true. The ideal is at least two years. If it's shorter than two years with your first employer, it's not great. If it's shorter than one year, it's definitely a red flag, as this is your first software developer job and other employers may just think that you couldn't cut it as a software developer. That being said, even if you can't wait one year or two years, there are other options. There are always other options.
Go to developer/technical meetups. Network. If you can make connections with live human beings during those events and explain your problem to them, they may be able to help. When people meet you in person, they're much more likely to want to help you or hire you.
Look for speed interviewing events. Many of these "speed dating"-like events also tend to be hosted at night (however, I don't know if you have those in Maryland)
Make your constraint known in your email or cover letter. Send your cover letter and resume directly to the hiring manager if you can, instead of HR. HR is more likely to work 9 to 5. Therefore, HR is more likely to filter out your resume before it gets to the hiring manager. But once a hiring manager has decided to interview you, there is really little that HR can do to stop him. I have a pretty unique perspective on this issue.
Target companies that have weird hours, or long hours. For instance, investment banks or companies like Google. Target companies that have international teams and that keep weird hours as a result. For instance, IBM. Target companies known for their remote teams. For instance, Github or Gitlab. Target small (desperate) startups.
And last, but not least, go through pre-screening interviews:
If you can get yourself pre-screened successfully (which is not easy), it will be harder for HR departments to filter you out.
And finally, if your employer is that paranoid about his employees leaving, keep in mind that he may be paranoid enough to place screenshot-taking software, keyloggers, and network-monitoring software on your work computers.
So be sure to use a completely separate gmail address for your job hunt and to use Google Voice for your phone number/voice mail as well. Personally, I actually recommend that everyone does that (not just employees with paranoid bosses). If you don't use a separate email address, you'll get a ton of spam from lazy 3rd party recruiters.
And if you use Google Voice, you don't need to check your voice mails on it, you can just glance at their transcript on your phone, or on your (secondary) email. Plus Google Voice has several other advantages like call forwarding, call filtering, call filtering by schedule, a separate phone number, plus the fact that it's free for all the features that you actually need.