43 Questions to Understand Engineering at a Startup - jrott

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

  1. How does the company make money?
  2. What are key drivers of profitability for the company?
  3. What are the key metrics that are being tracked to know that things are on track?

People

  1. How big is the engineering team?
  2. Who is the customer?
  3. What teams do we work with closely?
  4. What skills do team members have?
  5. How is an oncall rotation handled?
  6. What is your process for incident management?
  7. What timezones is the team in?
  8. How is work shared between different timezones? (if there are multiple timezones)

Code

  1. What do you use for version control?
  2. What applications are there?
  3. What programming languages are used?
  4. Where does the application run?
  5. Who is responsible for maintaining the application in production?
  6. What testing strategies do you use?
  7. What do the tests look like?
  8. Are engineers responsible for writing their own tests? (still a valid question)

Deployments

  1. What tools do you use for deployments?
  2. How often do you deploy software?
  3. How do you handle failed deployments?
  4. What steps are part of your build pipeline?
  5. What is the process for getting a release ready?

Security

  1. What are you using for authentication?
  2. What tools are you using for Authorization?
  3. Does the application handle PHI OR PII?
  4. Who has access to production data?
  5. What tools are you using for security and monitoring?

Observability and alerting

  1. What tools are you using for observability?
  2. Do you use distributed tracing?
  3. How many false positives do you have with your alarms?
  4. How do you instrument your code?
  5. What tool are you using for log aggregation?
  6. What do you currently log?
  7. How do you know there is a problem with an application?

Development process

  1. How does new feature work come about?
  2. How are architectural decisions made?
  3. Who is responsible for designing new features?
  4. What are the major factors that influence decision making?
  5. How much time is spent on new feature development vs maintenance?
  6. What are your current major priority areas?
  7. How was it decided that those areas are priorities?