First of all, I want to clarify that I am talking purely about Turkey office and re-clarify that I don't have personal issues with anyone nor I have had one while I was working.
- Communication Issues
People are really friendly and genuine, but that doesn't necessarily translate to being a good professional. Some actions may be taken with emotions, with no logical foundations. After a certain point this results in a working environment with no trust between actors. Towards the end of my time here, it became so toxic and rotten that there wasn't a single smile from anyone.
- Micromanagement
I have previously been in support of this for personal reasons. However, since professionalism is basically non-existent in the company, this line of thinking results in different treatments of people for smallest of actions. Micromanaging someone shouldn't be a thing at all, for anyone in any job.
- Lack of structure and organization
This is a broad criticism that I will examine further in my points below. In general, company itself doesn't have a clear vision (Technology-wise). Since the main approach is to just "get it done somehow", there is not a discernible hierarchy or well-defined structure. This was somehow compensated by the previous technical lead, but it had became more and more obvious as time went on.
- Interference from the CEO
Since the CEO was very hands-on with the development at one point, most employees were under heavy pressure by him. This resulted in a unhealthy environment where previous technical lead, project manager had no real meaningful input. Most of the time, ideas coming from the top were missing the big picture.
- Legacy Codebase
It is normal for a company to have technical debt. However, considering the relative simplicity of the final product, the codebase was incredibly convoluted. Most of the technologies used are archaic and there's no real attempt to improve on this. Any new developer would feel overwhelmed by the whole tech-stack. It is also noteworthy that documentation and unit tests are non-existent
- Slowness of Processes
The company defines its development process as "agile", but it most certainly isn't. Calling something agile doesn't make it agile. Since the previous technical lead was not really qualified, and the fact that there wasn't even a technical lead for the past year, it is a miracle that the system even works at all. One of the worst offenders in this topic was the lack of dev-ops team for a really long time. Everyone was aware of this shortcoming and basically delayed a solution until it started harming the company.
- Lack of automation
Connected to my previous points, as codebase is old and fragile, so is deployment and monitoring processes. There is not a single reputable company where the developers are also responsible of testing, deployment, database management, and dev-ops actions like monitoring.
- Development Cycles
Most of the time the final version released was immature and needed more care. However, for some reason, release cycles were really short, and combined with lack of planning, it resulted in terrible releases.
- Repetitiveness
Even though the job itself was easy, it was unbearable most of the time due to the sheer amount of repetitiveness. Majority of the development was about fixing a previously encountered bug, and trying to disambiguate the aim of the future implemented.
- Lack of learning experiences
I don't think any developer with any future goal could progress themselves in any technical aspect here. Even if we ignore that the technology is bad, features implemented are not challenging. They are just tedious. Job itself doesn't satisfy anyone. Unless you started working here 5-6 years ago, no developer would stick around more than a year.
In conclusion, technology being used is just old, and there is no effort to make it at least manageable. Communication is basically non-existent and it got worse over time. All in all would definitely not recommend working here.