Pros
Interesting technical problem space and complex systems Some highly skilled engineers and supportive peers Opportunities to learn independently if you are proactive Exposure to secure-environment and high-assurance software domains
Cons
Structural and leadership issues: Projects are often sold or scoped without engineering input, leading to unrealistic deadlines and delivery pressure. Risk logs and concerns raised by engineering can be downplayed or hidden, preventing proper mitigation. Engineering is frequently treated as a reactive delivery function rather than a stakeholder in planning. Governance and process failures Requirements and specifications are often missing or vague, forcing engineers to define them themselves. Work is sometimes discarded due to unresolved contractual issues, wasting development effort Technical delivery environment Documentation and deployment processes can be incomplete or fragmented, creating reliance on tribal knowledge. Lack of secure, structured pipelines increases delivery risk. Junior engineers are quite often unsupported and untrained yet expected to work with full autonomy Culture and morale Low morale and disengagement were widely reported across teams. Engineers often feel unheard or discouraged from raising concerns High attrition and frustration have impacted stability and continuity Compensation Pay is significantly below industry norms and inconsistent across similar roles Raises are inconsistent or reactive rather than structured.