This repository provides a structured set of interview questions and evaluation criteria to help software engineers assess a company’s engineering culture, technical maturity, and codebase quality before joining.
It helps identify red flags and spot positive signs in areas like SDLC, code quality, dev environment, testing practices, and team culture.
During your technical interview process, use the questions below to evaluate the company. For each, we've listed:
- ✅ Good signs – what strong answers sound like
- ❌ Red flags – what weak or problematic answers look like
Ask follow-up questions when needed to clarify vague or overly positive answers.
Question:
“Can you describe the age and state of the current codebase?”
✅ Good signs:
- Actively maintained, refactored over time
- Clear documentation
- Efforts to reduce technical debt
❌ Red flags:
- “It just works, so we leave it alone.”
- No one understands parts of it
- No documentation or refactoring plan
Question:
“Can you walk me through your SDLC—from requirements to deployment?”
✅ Good signs:
- Structured sprints (e.g., Scrum, Kanban)
- Planning, QA, peer review, staging environments
- Clear CI/CD process
❌ Red flags:
- No defined process
- Development is ad hoc
- “We’re agile-ish”
Question:
“How is testing handled? Do you have unit, integration, or E2E tests?”
✅ Good signs:
- Tests for new features and bug fixes
- Automated CI/CD pipelines
- Tools like Jest, Cypress, GitHub Actions
❌ Red flags:
- Heavy reliance on manual testing
- No CI/CD or flaky tests
- QA team handles all testing
Question:
“How easy is it to set up the project locally?”
✅ Good signs:
- Docker or setup scripts available
- New devs onboard quickly
- Local setup well-documented
❌ Red flags:
- Difficult or undocumented setup
- Requires manual configuration
- Takes days to onboard
Question:
“How do developers handle ownership of features or modules?”
✅ Good signs:
- Shared knowledge and clear ownership
- Documentation and mentorship practices
- Code reviews and rotation of responsibilities
❌ Red flags:
- Tribal knowledge only
- One person owns large parts of the system
- No formal process
Question:
“Have there been recent efforts to modernize or refactor parts of the system?”
✅ Good signs:
- Modernization projects planned and prioritized
- Technical debt is tracked
- Recent tech stack upgrades
❌ Red flags:
- No time/resources allocated
- “It’s not a priority right now”
- Management avoids refactoring
Question:
“Could you walk me through a recent feature or bug fix from planning to release?”
✅ Good signs:
- Includes planning, tracking, testing, review, and deployment
- Shows collaboration and accountability
- Lessons learned are shared
❌ Red flags:
- Untracked or undocumented workflows
- Ad hoc development
- “Just fix and push to production”
Question:
“What happens when a new engineer joins the team?”
✅ Good signs:
- There’s a clear plan for the first few weeks
- Someone is assigned to help you (mentor or buddy)
- Documentation and setup are ready so you can start coding quickly
❌ Red flags:
- No plan — you're left to figure things out alone
- No one to help or guide you
- It takes a long time just to set up your computer or tools
Question:
“How do engineers grow in their career here?”
“Do you support learning or training?”
✅ Good signs:
- Clear paths to promotions or new responsibilities
- Regular feedback and 1-on-1 meetings
- The company gives time and money for learning new things
❌ Red flags:
- No clear way to grow or get promoted
- No feedback or support for improvement
- No learning resources or time to upskill
Question:
“How are technical choices made, like picking tools or designing systems?”
“Do engineers help make those decisions?”
✅ Good signs:
- Engineers are involved in making decisions
- They have design discussions or review meetings
- Trying new tools or improvements is encouraged
❌ Red flags:
- Managers or leads decide everything without input
- "We've always done it this way" mindset
- Engineers don’t feel heard or included
Question:
“What happens when something breaks in production?”
“Do you have tools to catch problems quickly?”
✅ Good signs:
- There’s a team or schedule for handling urgent issues
- Tools are used to watch and alert when something fails
- After a problem, they talk about what went wrong and how to fix it
❌ Red flags:
- No monitoring or alerts — they only find problems after users complain
- No clear way to respond to issues
- People blame each other instead of fixing the root cause
Question:
“How do engineers from different teams work together?”
“What happens when people disagree on something technical?”
✅ Good signs:
- Teams talk regularly — through meetings, chats, or shared documents
- People listen to each other and discuss ideas openly
- It’s easy to work with other teams
❌ Red flags:
- Teams barely talk to each other
- Poor communication leads to confusion or delays
- Arguments go unresolved or cause frustration
- Ask to speak with a current engineer.
- Pay attention to honesty and transparency.
- Look for inconsistencies across interviewers.
- Trust your instincts—if it feels disorganized, it probably is.
This is a free and open resource. Use it, share it, or adapt it as needed.