Upper management does not have a good understanding of technology and software development in particular, thus not really able or willing to fully commit to the related long-term investments.
Too formalized performance evaluation process, probably in an attempt to make it accurate and unbiased, even at the cost of depriving it of the real substance.
Being a large and not-so-attractive company anymore, the quality of employees can sometimes make collaboration more challenging and inefficient.
Project planning and task scheduling can make one feel just as a relatively expensive piece of equipment that needs to be "optimally" deployed. Immediate managers do not pay enough attention to the individual needs and strengths. Further on, the excessive movement from one software task/module to another sometimes leaves no one directly in charge of the software quality and its conceptual/architectural integrity, and can make developers feel too distanced from the results of their work, and consequently less passionate and responsible for the future of that software.
The actual software development process is too much controlled by project managers, with a tendency to micromanage and put a premium on hitting sometimes arbitrary and/or inconsequential deadlines over engineering concerns.
Very feature-centric and fragmented software development, with insufficient attention to the inherent software development issues, and lacking the adequate processes and resources for general software improvements – from simple refactoring to infrastructure upgrades.
Being empowered as an individual contributor is a mixed blessing. Sometimes there are too many "distractions" from getting the most important things done, and a lack of support from a software manager with enough clout, will, and attention to step in and argue for your side when really needed.
Some of the cons mentioned contribute to the insufficient software quality, making the software hard to fix, maintain, and evolve, with too much time spent on dealing with production issues. This often leads to a vicious cycle of not having enough time to spend on vital improvements and technology upgrades.
Lower management, although technically competent, mostly lacks the clout and/or backbone to make significant changes to the prevailing software development culture.
In spite of opportunities to work on some interesting things, the cons mentioned make the job of a software developer less satisfying and impede professional growth as well.
Phone interview: 45 minutes. Start by discussing your experience, then a coding question, and finally you can ask one question to the interviewer. The conversation was friendly, open, fast-moving, and fluid.
I was sending a link to a platform similar to Leetcode. The interview was joined on a video call, and she basically described the problem we were trying to solve. I had to type it into this IDE. She was kind, clear, and helpful.
The hiring manager met with me, and then I had a technical interview with other developers and technical personnel. The hiring manager asked me many questions about myself and my teamwork abilities. This conversation was primarily focused on getting
Phone interview: 45 minutes. Start by discussing your experience, then a coding question, and finally you can ask one question to the interviewer. The conversation was friendly, open, fast-moving, and fluid.
I was sending a link to a platform similar to Leetcode. The interview was joined on a video call, and she basically described the problem we were trying to solve. I had to type it into this IDE. She was kind, clear, and helpful.
The hiring manager met with me, and then I had a technical interview with other developers and technical personnel. The hiring manager asked me many questions about myself and my teamwork abilities. This conversation was primarily focused on getting