Pros
- Remote role with no micromanagement. - Working in an interesting, niche space with unique problems. - Working on a small dev team results in strong influence in high-level decisions and codebase ownership. - You'll be wearing many hats and working across the entire stack since this is a small team, which results in a quicker path to seniority. This can also be a very bad thing depending on who you are. - Good work/life balance. - Friendly teammates. - Decent benefits (401k match, health/dental/vision, etc.)
Cons
- Customer service/sales team slowly became non-existent over the years (they all eventually resigned) and management didn't hire anyone to replace them, which led to a drop in revenue, which ultimately led to layoffs across the organization. - Layoffs year after year in the engineering team means more work spread across less people. New engineers have not been hired and will likely be the cause of collapse for this team, or result in burnout for the remaining handful of engineers at the very least. - Accomplishments consistently receive an “attaboy” instead of meaningful compensation or any tangible recognition. - Compensation is lacking and is below market rate for software engineers. Don't expect any bonuses, large raises, or promotions. You'll likely only receive the 3% "cost of living adjustment" each year in lieu of a proper raise/promotion. For future candidates: negotiate as high as possible before accepting an offer. - There is a very severe lack of diversity within my branch of CACI. - Will also list wearing many hats/working across the entire stack here.