##Development Process
-
What will be my day to day responsibilities?
-
What source control do you use? Can you explain why you chose it?
-
Are your repos hosted in-house or on a third-party service? GitHub?
-
What is your workflow currently, with regards to developers pushing changes. Do you do pull requests, or does everyone just merge to a central repo?
-
Are you using a ticket system or is it more play it by ear?
-
Do you have a code review process?
-
Do you have established code style rules?
- Tabs or spaces?
- Allman or BSD braces?
-
What are your development environments like?
- Virtual Machines? Local (VirtualBox) or Remote (ESXi)?
- Does everyone have an identical development environment?
- Are you using vagrant and/or puppet/chef?
- How closely do the dev environments mirror your production environment?
-
What is your release schedule like?
-
Do you maintain separate release and dev branches? (git-flow?)
-
Will I be provided with a new laptop?
- Windows, Mac or Linux? Do I get a choice?
- Am I allowed to install anything I want on that laptop?
- Will it have an SSD?
- How hard do I have to justify software purchases?
-
Which comes first, bugs or features?
-
Single product, or will I be regularly working on different projects?
-
How frequently does your company start a new project?
-
Will I communicate directly with clients on a regular basis, or does this typically happen through an intermediary?
-
Do developers make estimates on deliverables, or are due dates normally decided upon ahead of time?
-
What can I expect to see in terms of project specifications and/or mock-ups prior to beginning a new project?
-
How do you track development time?
##Remote
-
Will the company pay for home office equipment such as monitors or furniture?
- If yes, will that equipment be considered company property?
- Would I have to return it if/when I leave the company?
-
Do you have a team chat setup such as IRC or Jabber? Do your developers actively use it, is it their primary communication channel?
-
Do your developers use video chat software such as Skype or Google Hangouts?
-
If a portion of the team works in-office, do you have a dedicated computer to be used for video chat with remote employees?
-
Will I have to work over a VPN?
-
How frequently will I be expected to visit the office?
-
Will my visits be reimbursed?
-
How flexible are my hours? Can I take time off during the day if needed and make up for it in the evenings?
##Codebase
-
How old is your codebase?
-
Do you unit test? If so, what libraries do you use?
-
Do you regularly correct technical debt?
-
On a scale of 1 to 10, how much spaghetti code do you have?
-
What is the current state of your code documentation and testing coverage?
-
Pure CSS, or compiled middleware (LESS, SASS, etc)?
-
What is your minimum supported version of IE?
-
Does your codebase require a build process, and is it automated?
-
Do you use MVC or similar code structuring?
-
What is your primary backend language, including version?
-
Do you use open source libraries, and are you aware of the licensing on those libraries?
##PHP
-
Do you use a public framework or is it an in-house environment?
-
Do you use PHP driven html templates, or a third-party template engine such as Smarty or Twig?
-
Do you use Composer?
##JavaScript
-
jQuery, Prototype, Underscore, Zepto, Dojo, or other?
-
Do you use a templating engine, such as Mustache or Handlebars?
-
Coffeescript? (If yes, is it required?)
-
Does your code follow Crockford code conventions?
- Semicolons?
- camelCase variables?
##Developer Coordination
-
How many developers do you currently have?
-
How large are your teams?
-
How frequently do team members find themselves in meetings?
-
Do your developers pair program on a regular basis?
-
Do you have a methodology for project management (Agile, scrum, etc?)
-
Do your developers use screen sharing or collaborative coding tools?
-
Are teams seated together?
-
Do teams have isolated areas from the rest of the staff / other teams?
##Culture
-
What would my role at the company be?
-
Where would I be inserting into the organization?
-
Am I allowed to take my work home with me?
-
Am I expected to take my work home with me?
-
What are the expectations with regards to hours worked, deadlines, and overtime?
-
How much vacation time do you provide? How much lead time is expected on vacation requests?
-
Open office, personal offices or cubicles?
-
Is there a dress code?
-
What relationship does your dev department have with your sales department? Who sets the deadlines?
-
Does the company provide snacks and/or drinks?
-
What are your expectations productive hours a developer will have per day?
##Company
-
How many non-developer staff members does the company have?
-
Who is your healthcare provider?
-
What percentage of insurance does your company pay?
-
Is your company currently profitable?
-
Does your company release open source code?
-
What is your company policy with regards to me releasing open source code (personal projects)? If there is an approval process, how lengthy is it?
-
What is your company policy with regards to side projects? Am I allowed to work on my own sites?
-
Do I own the code I make in my own time on my own hardware?
-
Will the company pay for training programs / certifications / conferences? What is the approval process like?