One thing to note with these is that they seem to target companies/jobs where you will work on a single product/suite of products. A lot of these questions would be out of place in many agencies or the interviewers would not have answers or the answers would just not be as good as you would expect from a more focused team. Of note:
- What does the onboarding look like?
In large part because of how rapid development is in agencies, how often you change projects, and how small agencies tend to be, onboarding is often non-existent beyond showing you the software they use and showing you how to set up your Vagrant or Docker. Most of it is on an as-needed basis and you'll be given the information you need for each project you work on, thanks in large part to how ad hoc each job can be. I've experienced this myself at all three agencies I've worked at, I have friends at two others who say the same thing, and it's what I was told to expect in school.
- How do you test code?
This will almost always be "put a dump in the code and see what's wrong". Agencies don't often unit test and because of how often they switch projects, having a consistent debugging environment is often more trouble than it's worth. You should still ask this, just don't expect the greatest answer.
- How do you integrate and deploy changes? Is it CI/CD?
Due to the quantity of projects, this will often be "no" unless the agency primarily focuses on larger, months/years-long projects. For the most part, clients don't want to the time it takes to pay for automated tests/deployments and often don't host with you anyway, so it's usually either "run a git pull and compile assets" or "package the code in a zip and send via Dropbox".
- How do you prepare for disaster recovery?
Disaster recovery is often an after thought at agencies. Usually the disaster recovery is "spend a few days restoring backups and eat the costs". Unless you are interviewing for a security or senior position, this question doesn't really make sense to ask at an agency anyway as you are unlikely to be involved in any recovery.
- How quickly can you respond to security issues in the code or dependencies?
Because everything is paid for by the clients, if they don't pay for it, they don't get it. Don't expect much more of a response from your Agency interviewer. If you get an intricate response, I would suspect it's exaggerated. There are exceptions, but agencies don't make money making sure the sites and apps they build are up to date, unless the clients want them to be (and most clients do not see the value in it)
Again due to how many projects you work on regularly, this may not get a good response. Maybe a "Our Wordpress sites take 2-3 weeks to build, 1 week to test and fix, and 1 week for client review" type response, but anything more standardized than that likely isn't happening.
- What are some ongoing challenges the team is experiencing that you are yet to resolve?
This one also likely won't get much of a response due to how many projects there are and given that most of the team is working on different things than their neighbor.
- What's the promotion process? How are requirements / expectations communicated?
- Is there a separate tech and management career path?
Agency structures are generally really flat. 1 guy at top, maybe a few seniors below him, then everyone else (but everyone, including the seniors, report to the 1 guy at top). Don't expect promotions, but raises will happen regularly. You can ask this one, but you'll probably be more interested to hear when/what to expect from your raises (agencies are often generous in this respect)
- Are there any company-wide resources for learning available, like ebooks subscriptions, or online courses?
Regardless of company type, know that this will depend entirely on company size. If you're interviewing with a 300 employee company, you should expect it. If it's a 10-40 person company, you probably shouldn't and it may not be worth asking and may make the interviewers think you're looking for something they aren't providing.
- Can I contribute to FOSS projects? Are there any approvals needed?
This is a GREAT question to ask during the interview if you are hoping to work on FOSS. Agency rules on this vary greatly and it's one I personally like hearing from candidates.
- Are there any non-compete or non-disclosure agreements I'll be asked to sign?
Another great one to ask simply because you will work on so many different projects from so many different clients from so many different industries. My previous employer tried to get me to sign one saying I wouldn't work with any competitor of their customers for 3 years after I left. That would have killed my ability to find a job at another agency afterward. It was part of the reason I quit there. My current agency is basically "Don't talk about specifics that may be confidential during development, don't steal our customers after you leave" which is more reasonable and acceptable.
- Are you profitable? (+ the other financial questions)
If your interviewers are developers at an agency who don't also own the company, they likely will not know any financials specifics
- Remote Work
If this is important to you, make sure to ask about it in the interview. It varies greatly from agency to agency. I interviewed at a place that only expected you be in the office once a week and work from home 4 days a week. My current place prefers if you keep the remote work to a few days a month at most.
- What does the onboarding look like?
In large part because of how rapid development is in agencies, how often you change projects, and how small agencies tend to be, onboarding is often non-existent beyond showing you the software they use and showing you how to set up your Vagrant or Docker. Most of it is on an as-needed basis and you'll be given the information you need for each project you work on, thanks in large part to how ad hoc each job can be. I've experienced this myself at all three agencies I've worked at, I have friends at two others who say the same thing, and it's what I was told to expect in school.
- How do you test code?
This will almost always be "put a dump in the code and see what's wrong". Agencies don't often unit test and because of how often they switch projects, having a consistent debugging environment is often more trouble than it's worth. You should still ask this, just don't expect the greatest answer.
- How do you integrate and deploy changes? Is it CI/CD?
Due to the quantity of projects, this will often be "no" unless the agency primarily focuses on larger, months/years-long projects. For the most part, clients don't want to the time it takes to pay for automated tests/deployments and often don't host with you anyway, so it's usually either "run a git pull and compile assets" or "package the code in a zip and send via Dropbox".
- How do you prepare for disaster recovery?
Disaster recovery is often an after thought at agencies. Usually the disaster recovery is "spend a few days restoring backups and eat the costs". Unless you are interviewing for a security or senior position, this question doesn't really make sense to ask at an agency anyway as you are unlikely to be involved in any recovery.
- How quickly can you respond to security issues in the code or dependencies?
Because everything is paid for by the clients, if they don't pay for it, they don't get it. Don't expect much more of a response from your Agency interviewer. If you get an intricate response, I would suspect it's exaggerated. There are exceptions, but agencies don't make money making sure the sites and apps they build are up to date, unless the clients want them to be (and most clients do not see the value in it)
- What's the product/service schedule? (n-weekly releases / continuous deployment / multiple release streams / ...)
Again due to how many projects you work on regularly, this may not get a good response. Maybe a "Our Wordpress sites take 2-3 weeks to build, 1 week to test and fix, and 1 week for client review" type response, but anything more standardized than that likely isn't happening.
- What are some ongoing challenges the team is experiencing that you are yet to resolve?
This one also likely won't get much of a response due to how many projects there are and given that most of the team is working on different things than their neighbor.
- What's the promotion process? How are requirements / expectations communicated? - Is there a separate tech and management career path?
Agency structures are generally really flat. 1 guy at top, maybe a few seniors below him, then everyone else (but everyone, including the seniors, report to the 1 guy at top). Don't expect promotions, but raises will happen regularly. You can ask this one, but you'll probably be more interested to hear when/what to expect from your raises (agencies are often generous in this respect)
- Are there any company-wide resources for learning available, like ebooks subscriptions, or online courses?
Regardless of company type, know that this will depend entirely on company size. If you're interviewing with a 300 employee company, you should expect it. If it's a 10-40 person company, you probably shouldn't and it may not be worth asking and may make the interviewers think you're looking for something they aren't providing.
- Can I contribute to FOSS projects? Are there any approvals needed?
This is a GREAT question to ask during the interview if you are hoping to work on FOSS. Agency rules on this vary greatly and it's one I personally like hearing from candidates.
- Are there any non-compete or non-disclosure agreements I'll be asked to sign?
Another great one to ask simply because you will work on so many different projects from so many different clients from so many different industries. My previous employer tried to get me to sign one saying I wouldn't work with any competitor of their customers for 3 years after I left. That would have killed my ability to find a job at another agency afterward. It was part of the reason I quit there. My current agency is basically "Don't talk about specifics that may be confidential during development, don't steal our customers after you leave" which is more reasonable and acceptable.
- Are you profitable? (+ the other financial questions)
If your interviewers are developers at an agency who don't also own the company, they likely will not know any financials specifics
- Remote Work
If this is important to you, make sure to ask about it in the interview. It varies greatly from agency to agency. I interviewed at a place that only expected you be in the office once a week and work from home 4 days a week. My current place prefers if you keep the remote work to a few days a month at most.