Things Most Interviewees Fail to Discover
It’s a great time to be a Rails developer. Companies left and right are turning to Rails or using it already for efficient web development. If you know Rails and the web stack well then you have the luxury of choice: let’s make sure you make a good pick!
Your future team’s code quality
Your potential coworkers should be writing code that you appreciate. Just as they evaluate your coding skills, you need to evaluate theirs.
If the team doesn’t have any publicly available code: ask for some! While you’re at it ask them for their thoughts on the latest developments in Rails. Do they have opinions on the Am I doing it wrong Rails gist? How about service objects in Rails? TDD? What gems/plugins are they using (e.g. for background processing, profiling)? Are there any test frameworks that you love to work with?
If you are happy after seeing their code and talking with them about programming trends then you have much better odds of being happy with what you find in the company repo.
Surround yourself with coworkers you like. You may think that you don’t need to like your coworkers: but this is a disservice to everyone. There are enough Rails jobs out there that you should be able to find a team that you enjoy. Work is a huge investment of your time so make it a good one.
Is the team a fun, lighthearted atmosphere of silly jokes and Internet memes or a proper and professional environment? It doesn’t matter which, as long it fits you.
What does the team do to manage tasks? How does work get assigned? How does code get deployed? You should be comfortable with all of these answers.
Work in the pipeline
What would you be working on should you join the team? What new projects or features are on the roadmap? If the company has no clear answers: be concerned. No clear direction means thrashing for the development team. If they can’t go into specific details that’s fine, but you should be able to get a general picture.
What is a typical day for a developer at the company like? Is it waking up at 3am because the application is throwing 500 errors (again!)? Is it working long hours because the company already thinks that the dev team is going too slow? Is it come in (or log in), get work done, hang out with coworkers, and go home at a reasonable hour?
It goes without saying that you should be happy with the benefits and compensation from the company. But don’t overlook perks!
Does the company send employees (and not just developers) to conferences?
For companies with a lot of remote workers: does it regularly get them all together? Does it get them together in awesome vacation spots?
Does the company provide you with a computer or do you need to bring your own? If the company provides the machine does it belong to you or the company?