43 Questions to Understand Engineering at a Startup
I recently joined a startup. As part of doing that I realized there where a ton of questions that I either wished I had asked during the interview process or needed to get the answer to pretty quickly after joining. These quesitons helped me make sense of the technical environment that I was operating in. They also make it clear where things are going well and where there are weaknesses in the current development environment.
Business Model
- How does the company make money?
- What are key drivers of profitability for the company?
- What are the key metrics that are being tracked to know that things are on track?
People
- How big is the engineering team?
- Who is the customer?
- What teams do we work with closely?
- What skills do team members have?
- How is an oncall rotation handled?
- What is your process for incident management?
- What timezones is the team in?
- How is work shared between different timezones? (if there are multiple timezones)
Code
- What do you use for version control?
- What applications are there?
- What programming languages are used?
- Where does the application run?
- Who is responsible for maintaining the application in production?
- What testing strategies do you use?
- What do the tests look like?
- Are engineers responsible for writing their own tests? (still a valid question)
Deployments
- What tools do you use for deployments?
- How often do you deploy software?
- How do you handle failed deployments?
- What steps are part of your build pipeline?
- What is the process for getting a release ready?
Security
- What are you using for authentication?
- What tools are you using for Authorization?
- Does the application handle PHI OR PII?
- Who has access to production data?
- What tools are you using for security and monitoring?
Observability and alerting
- What tools are you using for observability?
- Do you use distributed tracing?
- How many false positives do you have with your alarms?
- How do you instrument your code?
- What tool are you using for log aggregation?
- What do you currently log?
- How do you know there is a problem with an application?
Development process
- How does new feature work come about?
- How are architectural decisions made?
- Who is responsible for designing new features?
- What are the major factors that influence decision making?
- How much time is spent on new feature development vs maintenance?
- What are your current major priority areas?
- How was it decided that those areas are priorities?