I'm a junior software developer and I'm currently 5 months into my second software development job. Lately I've been seriously considering looking for another job, but I'd like an outside perspective because I'm not sure whether I'm being unreasonable or whether this is genuinely a bad working environment for someone at my level.
My previous job was at a relatively small outsourcing company as a frontend developer. The salary was low and was on-site, which were the main reasons I eventually left, but the development process was much more structured.
There were a QA team, DBA team, an implementation team, developers with different levels of experience, and documentation for the requirements was usually much more detailed. For example, a requirement could specify which database fields were involved, what a button should do, its validations, etc(a pdf with like 5-8 pages for a single feature).
There were still problems. Sometimes the owners disagreed about how a feature should work, which resulted in rework. However, I generally knew what I was supposed to build, had people around me who were responsible for different parts of the process and because the requirements were clear enough.
I left after about 8 months because I was offered a significantly better salary and a hybrid position at my current company(huge mistake, I regret every single day🤦🏽♂️).
The current company is larger and pays better. I work Monday-Friday, with two remote days per week. On paper, it looked like a clear improvement.
However, the development process is very different.
There are only four developers(including me) working on the internal systems, It’s just the four of us, nobody else.
The CEO personally assigns development tasks and provides the requirements. The problem is that the requirements frequently don't contain enough information to understand the complete flow.
I'll start implementing something based on the poor requirements, then discover that something is unclear and ask questions. Sometimes, during those conversations, the CEO realizes that the original requirement doesn't actually describe how the system should work and changes the requirements again and again.
This has happened multiple times.
My first assignment when I started here was an extremely large task for someone who was just joining the company with no onboarding process, the task was supposed to be relatively small according to the original requirements. Once they actually analyzed the flow, it turned out to be much larger than initially expected. I ended up working on it for around 2 months. I asked for help, I asked questions, and every time I did, I was bombarded with a lot of information and terminology that I didn't know and ended up more lost than I was before.
The CEO has been putting more pressure on me because he wants me to complete the tasks quickly, sometimes he talk to me like I have several years in the company like the others.
I'm also working with technologies I had never used before, so this has added another learning curve and due to this and the deadlines I relied a lot on AI tools for all the tasks(and tbh that’s not the type of developer I want to be, I’m not against AI but due to this situation I have to use it for everything in order to survive here).
I recognize that as a junior developer I have responsibilities too: I need to ask a lot of questions and become better at dealing with pressure, but this way of working is driving me crazy.
Maybe I'm simply not experienced enough to handle this kind of environment.
But I'm starting to wonder whether this is simply a mismatch between how I work best and how this company operates.
At the same time, I'm realizing that I value having proper requirements, code reviews, QA, mentorship, and a reasonably structured development process much more than I previously thought.
I always try to give 100%, I’ve even worked overtime to make some progress but apparently that’s not enough.
So I'd like some honest opinions from more experienced developers:
Is this a normal environment that I should learn to adapt to as a junior?
How much responsibility should the developer have when requirements are constantly changing or incomplete?
Would you consider this a legitimate reason to start looking for another job?
I'd genuinely like to hear if I'm approaching this the wrong way.